Developed and Taught by: John Pile Jr
Offered: Fall Semester
Official Course Description:
Students learn the architectural, design and implementation strategies used to develop online games. They develop and stress test reliable and efficient protocols to address network latency (game lag), security and scalability requirements. Students will utilize distributed object caching along with these protocols to implement registration, authentication, server discovery and game lobby systems.
In this course we build a series of networked games including peer-to-peer and server-client (session based_, as well as turn based (persistent state) architectures. Network systems include server discovery, pre-game lobbies, main game loop, and leaderboards. We then stress test the networked systems, showing their faults and inefficiencies. Students are required to fix their networking code to address problems by implementing various common techniques including packet compression, prediction and smoothing, intersecting auras, and various other data reduction approaches.
Various other network programming fundamentals are covered and/or reviewed throughout the course as appropriate including network topology, web services (REST and SOAP), authentication and authorization, and data types (XML and JSON). In addition, security, hacking, cracking, and various issues and solutions related to online cheating are discussed.
Students leave the course with the knowledge to appropriately implement networking in games.