Instructor: | Prof. Chris GauthierDickey |
Class Times: | Mon, Wed from 8:30am to 9:50am |
Room: | John Greene Hall, 205 |
Prerequisites: | COMP 3621: Computer Networking or equivalent, C/C++ and socket programming, or permission by the instructor. |
In this course, we will investigate current multiplayer game technology and compare it to the current research in the area. Graduate students will implement a peer-to-peer library for networked games while undergraduates will implement a client/server architecture for a simple game. In addition, all students will read scientific research papers in this class and prepare summaries of them.
As computer science students, you are expected to think and write both critically and scientifically. As such, you will be expected to analyze research papers, write scientific summaries, and discuss these papers in class. While games are a fun topic to study, we must strive to be as scientific as possible. Graduate students will be expected to present the papers in class.
Multiplayer computer games are some of the most complex applications designed, requiring real-time rendering, networking, artificial intelligence, physics simulations, and careful game design in order to be both popular and playable by humans.
In this course, we will look at one important aspect of games: networking. Ever since IBM coined the term "client/server", this architecture has been the dominant paradigm for most networked applications, including games. The client/server architecture is fairly easy to program, can scale reasonably well, though it must be typically overprovisioned to handle peak demands.
The main question we must ask is whether the client/server architecture should continue to be the primary technology that enables multiplayer games. To answer this question, we will evaluate current multiplayer game technology, read current game research papers, and implement both client/server and peer-to-peer networking for a multiplayer game.