Computer Science (COMP) 369
Status:
Temporarily closed, effective October 18, 2023
Delivery mode:
Credits:
3
Area of study:
Science
Precluded:
None
Challenge:
COMP 369 is not available for challenge.
Faculty:
Notes:
Students who are concerned about not meeting the prerequisites for this course are encouraged to contact the course coordinator before registering
Overview
COMP 369 is designed for students to learn how to develop platform-independent computer games using C/C++ with Allegro, an open-source, cross-platform library which is both powerful and versatile. Allegro can be used on Windows, Linux, and Mac platforms. Although the focus of this course is on practical game programming skills, students will also be exposed to game design, and have the opportunities to learn the basics of game design and practice their game design skills throughout the course.
Outline
COMP 369 consists of the following eight units:
Unit 1. Introduction to Game Programming
- Unit 1 covers chapters 1, 2, and 3 of the text. It introduces the world of game programming. After successfully completing this unit, students should have set up a programming environment—have chosen an IDE and a version of Allegro game library and have both properly installed—and should be ready to program in C or C++, with the Allegro game programming library.
Unit 2. Get Started with Game Programming
- Unit 2 covers chapters 4, 5, and 6 of the text. In this unit, students learn to program what is probably their first computer game; learn how to interact with players through keyboard and mouse; and learn how to play sound and music in computer games. After successfully completing this unit, students will be able to develop interactive computer games with sound and music.
Unit 3. Game Design Basics
- Unit 3 covers chapter 17 of the text. From this unit, students will learn the importance of game design, including the basics of game design, phases of game development, the types of game design, and requirements for game design and design documents. After successfully completing this unit, students should be able to create a game design and write up a proper game design document by following the game design basics and phases.
Unit 4. Programming Sprite in Games
- Unit 4 covers chapters 7, 8, 9, and 10 of the text, and it is all about sprite programming. From this unit, students learn how to handle bitmaps and how to use various blitting functions to manipulate bitmaps. After successfully completing this unit, students will be able to put live figures into games, and that is the most wanted skill in game programming and development.
Unit 5. Timing in games
- Unit 5 covers chapter 11 of the text, and it is about how to put all the game actions in a perfect game loop. As we know, many games can be played for a long time. Fortunately, game developers do not need to write that much more game code to keep the game running. The trick is, as all computer programmers would know, that programmers can put a number of game actions/codes in a loop and set up conditions for that loop to terminate or to be terminated by the player. After successfully completing this unit, students will be able to use timers, and interrupt handlers and timed game loops in game development.
Unit 6. Scrolling backgrounds
- Unit 6 covers chapters 12, 13, 14, 15, and 16 of the text, and it deals with creating and handling backgrounds in computer games. After successfully completing this unit, students will be able to program tile-based backgrounds; use Mappy to create and edit tiles, levels and maps; use native Mappy files in their games; and program vertical scrolling arcade games and horizontal scrolling platform games.
Unit 7. Using data files in game programming
- Unit 7 covers chapters 18 and 19 of the text. Students learn how to use Allegro datafiles to store game resources, and how to use Allegro datafiles and FLI animation files in games and game development.
Unit 8. Advanced topics for game programming
- Unit 8 covers chapters 20, 21, and 22 of the text. It touches on some Artificial Intelligence concepts and technologies, and their uses in computer games. It also teaches the basics of multi-threaded programming, a technique that can be used to enhance the performance of computer games by utilizing the power of multi-core processors that most modern computers have today. In this unit, students will also learn the fundamentals of how to market a computer game they may have developed during the study of this course, or may soon develop in their profession or as a hobby.
Learning outcomes
Upon successful completion of this course, you should be able to:
- Set up a C/C++ based environment for game development.
- Explain game design basics and design games with learned principles by following the suggested procedure and phases.
- Develop computer games using C/C++ and the Allegro library.
- Write interactive computer games with sound and music.
- Create sprites and use them in computer games.
- Install and remove timers in games, program perfect game loops, and properly handle events in computer games.
- Explain what scrolling is and create and manipulate scrolling backgrounds using tiles and map files.
- Use data files, multi-threads, and some AI technologies in game development.
- Develop a plan to market computer games.
Evaluation
To receive credit for COMP 369, you must achieve a course composite grade of at least D (50 percent), consisting of a grade of at least 50 percent on the final examination and a grade of at least 50 percent on each assignment. The weighting of the composite grade is as follows:
Activity | Weight |
---|---|
Assignment 1 (Unit 1 - 3) | 15% |
Assignment 2 (Unit 1 - 5) | 20% |
Assignment 3 (Unit 1 - 6) | 20% |
Assignment 4 (Unit 1 - 8) | 25% |
Final Exam | 20% |
Total | 100% |
The final examination for this course must be requested in advance and written under the supervision of an AU-approved exam invigilator. Invigilators include either ProctorU or an approved in-person invigilation centre that can accommodate online exams. Students are responsible for payment of any invigilation fees. Information on exam request deadlines, invigilators, and other exam-related questions, can be found at the Exams and grades section of the Calendar.
To learn more about assignments and examinations, please refer to Athabasca University’s online Calendar.
Materials
Harbour, J.S. (2006). Game Programming All in One (3rd ed.), ISBN-10: 1598632892 ISBN-13: 978-1598632897, Course Technology PTR (eText)
eText
Registration in this course includes an electronic textbook. For more information on electronic textbooks, please refer to our eText Initiative site.
Other Resources
All other materials needed to complete the course are in the online course site.
Important links
Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized study counterparts.
Opened in Revision 2, June 2, 2016
Updated October 18, 2023
View previous revision