Video Game Structure and Development

Dr. J.R. Parker

Summary

Computer games are a serious industry, worth thousands of advanced technology jobs all over the world. An argument can be made that games actually plays a large role in driving PC development, especially graphics and audio devices. In addition to the entertainment aspects of video games, they are now being pressed into service as educational and training tools, the so-called "serious games" initiative. We need to know more about how games work internally and what they can do, as parents, educators, multimedia designers, artists, and programmers.
This 1/2 day tutorial will describe the architecture of a modern video game, showing how the basic components combine to create an interactive multimedia entertainment. A game is actually an interactive real-time simulation with graphical and audio interfaces, a narrative, and a goal. Most sub-disciplines of computer science are represented in the construction of a game, and the degree of sophistication needed to create one is very high. This tutorial proposes to describe the essential components of a video game - the game loop, AI, graphics, audio, and the front end - and how they are implemented and how they relate to each other.
This tutorial does not deal with game design, which is not a technical issue, nor with the creation of artistic assets. The intent is to imbue the attendees with enough information that they could embark on a game development project of their own, or at least begin the technical design and find out what other information they required.

Audience

The target audience is eclectic: engineers and computer scientists, interested in knowing how to design and construct the complex software of a game; artists and musicians keen to know how their skills can be used in the creation of a highly technical multimedia work; students who are interested in a career in game programming; teachers interested in using game technology for teaching. The audience may be interested in creating their own games, in teaching others to make games, or in using games to teach their particular subject.
The audience should have basic programming skills (first year University), and should have a basic mathematical fluency (high school physics, calculus, geometry). A knowledge of computer graphics and/or audio would be useful. It would be useful also if the audience had played a PC game and a console game in the previous year.

Syllabus

  1. Game architecture - General structure of the software and how the components communicate with one another. Discussion of the main/real-time loop. Dealing with the passage of time. Programming. Documents.
  2. Game Artificial Intelligence - Keepin track of objects; contact and tracking, collisions. Chasing, patrolling.
  3. Graphics - Real-time rendering: Introduction; OpenGL, 3D, Texture maps; Art and the "pipeline".
  4. Audio - Audio display and OpenAL. Positional audio and sound synthesis. Music and mood
  5. Front end and user interface - PC games - the keyboard, mouse, USB interfaces. A complete game for the PC.
  6. A Game Walkthrough - A guided tour through a commercial game showing some of the effects discussed. Evidence of flaws in the system or of artifacts of the algorithms will be seen. A question and answer session will accompany this section.

Dr. J. R. Parker - Bio

Dr. Jim Parker is an academic, researcher and teacher, and an enthusiastic proponent of computer games in education. Dr. Parker created the first University course in Computer Game Programming in Canada, along with industry partner Radical Entertainment. This course was Computer Science 585, a senior class in games programming requiring that the students create a video game as the major project. The course is the capstone of a specialization in computer games at the University of Calgary.
Originally a researcher in both the areas of digital simulation and pattern recognition/ computer vision, Dr. Parker now works in areas related to non-traditional interfaces of games, such as gaze, gesture, and audio.
Dr. Parker has also taught courses in games for teaching and computer animation, and is the author of two books, and of over a dozen research papers and talks related to video game technology. He has been lead designer of educational games, and most recently was a speaker at the Computer Game Technology conference in Toronto, Canada. His current book project is "Developing Racing and Driving Games: A Programmer's Perspective" for Paraglyph Press, which should be out in March 2005..

Links and Stuff

Games course at U of C
The 2004 version
of the University level course in game programming at the University of Calgary.

OceanQuest
The OceanQuest game trailer
These games were built in the Digital Media Lab by Dr. Parker's group. A goal was to teach issues surrounding ocean floor ecology.

OceanQuest
The OceanQuest game itself
can be found here. There are two versions, a Flash version for the web and a downloadable PC game. Both can be gotten from this page.

Dr. Parker can be reached by Email