SWE 6753: Computer Game Design and Development
Instructor: Dr. Andy Ju An Wang
School of Computing and Software Engineering
Southern Polytechnic State University
Course Description
This course covers computer game design methodology and implementation techniques. The focus of this course is hands-on development of computer games with latest game programming languages and development environments. Students will learn how to create computer video games with object-oriented and component-based approaches. A variety of topics will be covered in this course including game engines, game programming environments, performance and optimization, collision detection, 2D and 3D graphics and animation, sound effects and music, interactivity and user interface, multiplayer games, and AI approaches to game development.
Course Objectives
The course covers a wide range of skills for computer game design and implementation. Upon completion of this course students should be able to
- Design and implement a complete 2D computer game.
- Evaluate a game, game proposal and game design with reference to published games, game genres, and game play mechanisms.
- Understand core element of a 2D game engine.
- Develop skills in problem solving, system integration and interface design.
- Build a working knowledge of principles and practices in computer game design and implementation.
- Communicate (written and verbally) about a complex, technical topic simply and coherently.
- Work and interact collaboratively in groups to examine, understand and explain key aspects of computer game development.
Course Outline
- Introduction to Computer Games
- What is computer game
- What is game design
- What is game programming
- History of computer/video games
- The role of game programming in the game industry
- The definition, features and requirements of a game
- Good games vs. bad games
- Computer game genres
- Assessment and evaluation
- Legal and ethical issues in computer games
- Fundamentals of Game Design
- Design principles and game theory
- Strategy design
- Level design
- Modeling physics
- Fun factors
- Sound and music
- Gender issues in games
- Software Engineering Aspects of Game Development
- Game project management
- Requirements for playable games
- Dimensionality and intelligence of games
- Requirements and specifications
- Object oriented approaches: OOA, OOD, and OOP
- Component oriented approaches: Encapsulation, Composition, and Deployment
- Game software life cycles
- CASE tools for game development
- Working in teams and presentation
- Fundamentals of Game Programming
- Data structures and algorithms for games
- Control structures and methods for games
- Two-dimensional graphics and animation
- Three-dimensional graphics and animation
- Search algorithms, path-finding algorithms, shortest-path algorithms, A* algorithm, application of AI in computer games
- Object-oriented programming for games
- Component-oriented programming for games
- Design patterns and code patterns
- Animation, simulation physics, critters, sprites, and collision-handling
- User interface design and implementation
- Handling I/O devices for games
- Specific Technologies in Game Development
- Game development with Macromedia Flash MX
- Game programming in ActionScript 2.0
- Game development with Java
- Game programming with J2ME and JWT
- Game programming with DirectX
- Online game development
- Mobile game development
- 3D game development
- Computer games supporting VR (Virtual Reality)
Note: Each semester will probably emphasize a specific technology while go through others briefly.
Student Comments
At the end of each semester, students were asked to provide their feedbacks on this course by answering the question "What do you like most and what do you dislike most about this course?" Below is a list of some comments from students.
- "As it is my first semester and first SWE course, I really liked the knowledge and design concepts for developing computer games by this course, which has really helped my creativity and understanding of what goes behind a game design. At least now when I see a game I can think about the design aspects and the challenges the game designer was involved with. This course also helps open up career opportunities for people who want get into game industry. I only wish I could have spent more time working on the different platforms to more extent and discovered the capabilities of game development software. There is nothing to dislike in this course. It is fun, creative, and an engaging course for anybody who is ready to have fun and be creative."
- "I like this course very much, it opened my eyes to the computer game design world. I like this course most about it introduced to the students with variety of game design techniques, some are very basic, some are pretty complicated."
- "I'm not a huge game fun but chose to take this course to gain insight and exposure into the world of game playing, design, and development. To my surprise, I highly enjoyed the content of the course and it enabled me to see how intricate and detailed it can ultimately be when developing a game. What I liked most is that we were given the opportunity to experiment with several game development tools (Game Makers, Flash, POP, Java, DirectX, etc.). What I disliked most is that it was a condensed semester therefore it felt as though things were a bit rushed. Overall, I would recommend this course to students and would take the advanced course if it were available."
- "The labs provide a good foundation for each of the development tools we planned to use. The discussions concerning technologies was very relevant especially since these technologies will affect not just game programmers, but other people in different computer sciences, IT, and software engineering fields. By far the best part of the course centered on the projects. This provided the best hands on experiences."
- The thing I like most about this course is lab practices, because it gives you hands on experience in developing computer games and all the lab practices are very interesting. But sometimes, there are too many theories and statistics in the lecture notes, which of course I like to read them and become aware of them, but I don't like to memorize them."
- "I enjoyed the development of my own games. I tried not to reinvent other's games buto to come up with original designs for games. I would like to see more time spent on the more complicated game design techniques like 3D games. This course is a great addition to the curricula and I hope that it expands to a major on day. This class is well worth taking even if the student doesn't intend on making video games because it also teaches how to develop, design, and flavors to an ordinary program."
Projects and Demos
Some projects and demos related to this course can be found here.
Course Web Site
The web URL for this course is: http://webct.usg.edu. Please log into your course web site following these directions exactly:
- Go to http://webct.usg.edu.
- Click on the "Log in to myWebCT" link (DO NOT CLICK ON CREATE myWEBCT).
- When asked, put in your user name and passwd following the format below:
- username: Firstname_Lastname_last4digits of SSN
(Example: John_Doe_1234)
- password: SSN (no dashes or spaces)
Or if you are a previous user with this ID, the password that you have been using.
Please note that these are case sensitive.
Note for Students:
- If you have registered to this course but have problems to log into the course web site, please let the instructor know immediately.
- If you registered later than the scheduled registration time, your web account will be created after the "Add-Drop" deadline.
- Your WebCT account is managed by the USG (University System of Georgia).
[Course Description] | [Course Objectives] | [Course Outline] | [Student Comments] | [Projects and Demos] | [Course Web Site]
© 2004 Andy J Wang
Last modified: Tuesday August 3, 2004