CS494/594 -- Networked Games

Jian Huang --- Fall, 2009


CS494/594 LINKS

  • General Information
  • Lecture Notes
  • Timeboxes

    INTRODUCTION AND CLASS GOALS

    This course is primarily intended for undergraduate students close to finishing up their degree. In a way, this is a capstone course for students to pull everything they have learned together and do something fun and challenging. This course is also co-listed for graduate students who would also like to have an opportunity to practice their skills.

    It is likely that you have studied the many specialized areas of the CS curriculum in an isolated manner. While doing well in each, the big picture still remained fuzzy and somewhat foreign. Concepts from artificial intelligence, operating systems, networking, distributed computing, high performance computing and graphics, etc., indeed can and should be put together in order to develop a successful and compelling application. In this course, we use networked games, multi-player games in particular, as a medium for such a systematic training. There are also several important, but somewhat intangible, skills that the you were taught. Those include communcation and personal interaction, the usages of various tools essential to professional developers. This course will also serve as a grand test of all those precious skills.

    Over the past decade, the movement of open source software has become a trend, and now, the norm. It is essential for all CS graduates to gain the important experience in working with open source software, and possible contribute to open source development. Let's use that as yet another grand exit test before you leave the temple.

    The following are a few concrete goals that represent what I would like you to get out of the class.


    Prerequisites and Assumptions

    CS302 and CS360 are required. CS494/594 Computer Graphics is a big plus but not imperative. We would like to assume that you are a decent C++ programmer as well. Let me make a special note that using cin, cout and g++ does NOT make you a C++ programmer. You need to be familiar with the following: subclassing (inheritance), virtual pointers, operator overload, and exception handling via "try ... catch". If not, please get prepared with true C++ programming before January.


    Class Organization

    Human brain learns by doing. This course is heavily project driven. Working in a small team (e.g. two to three people) in a short semester, you are expected to create a fully functioning networked multi-player game, in a true real-world open source development environment. During the first eight weeks, we will have regular lectures during class hours. As time progresses, class time gradually becomes group meetings to discuss issues with on-going projects.

    A wiki site will be provided for detailed organization of projects. Each team is responsible for coming up with their own game design, i.e. whether your game is about searching for a ring or the life cycle of a bubble :-). It would be great for you to seek and form 3-person teams before class starts next semester. You teammates will be spending a lot of time and sharing a lot of responsibilities with you. So, you should try to find qualifited people who you are comfortable with.


    FAQ

    1. Can the game development project under this course be used as a senior thesis project or a honor's project?

    2. How will each person on a team be graded?