
Games Programming III TGP2281
Trimester 1, 2010/2011
Lecturer/Tutor: John See
This course focuses on two main objectives. It aims to introduce game programming in a console-based environment and also teach the fundamental techniques of creating game artificial intelligence (AI).
Students will be using XNA Game Studio (with C# as language) to create games for console/PC. Console/PC game development necessitates the need for attractive game design, effective engagement of controls and interactivity, optimized rendering, and all other skills students have learnt thus far.
Artificial intelligence (AI) is an important, and often neglected element of any computer game. This course aims to equip students with the knowledge of various game AI techniques, including movement and behavioural AI, pathfinding, decision-making, tactical and strategic AI. Some advanced AI topics such as neural networks and learning-based algorithms will also be discussed.
Classes: Every Mondays (2pm-4pm) and Fridays (10am-12pm)
My consultation hours are on Thursdays: 2pm-6pm
All other meetings are by appointment (unless pre-arranged/fixed)
Note: In certain weeks, lecture and tutorial classes may be combined or interchangeable.
[Reed] refers to Aaron Reed's "Learning XNA 3.0" book| Week | Monday Session | Friday Session | Coursework Matters |
| 1 | [Class cancelled] | Introduction to Console Gaming and Development | |
| 2 |
Introduction to XNA Game Studio
[Reed] Chapter 1 & 2 |
[Reed] Chapter 2 & 3 | Project Guidelines |
| 3 | [Reed] Chapter 4 & 5 | [Deepavali Holiday] | |
| 4 | Game Proposal Presentation | Chapter 6 & 7 [Reed] | Game proposal deliverables to be handed up before presentation Proj Checkpoint 1 Mark Distribution |
| 5 |
Game AI Fundamentals
|
Movement AI (Part 1) - Basic Techniques |
ai_fundamentals.ppt movement.ppt Movement AI Demos |
| 6 |
Tutorial 1 (Movement) |
Movement AI (Part 2) - Delegated Steering Behaviors & Flocking |
|
| 7 | Tutorial 2 (Movement & Pathfinding) | Pathfinding AI (Part 1) - Basic Techniques | pathfinding.ppt Game AI Seminar Topics |
| MID-TRIMESTER BREAK | |||
| 8 | Pathfinding AI (Part 2) - A* & Other Advanced Methods | Tutorial 3 (Pathfinding) | Seminar Schedule Interim Progress #1 on Friday |
| 9 | Decision-Making AI (Part 1) - Decision Trees (DT) | Tutorial 4 (DT) | decisionmaking.ppt Seminar presenters: Cadrick & Cham |
| 10 | Decision-Making AI (Part 2) - Finite State Machines (FSM) | Tutorial 5 (FSM) | Seminar presenters: Sadegh & Edvinn |
| 11 | Fuzzy Logic (for decision-making) | Tutorial 6 (Fuzzy Logic) | Seminar presenters: Hsin Jo, Faisal, Li Xuan |
| 12 | Tactical & Strategic AI | Tutorial 7 | tactical-strategic.ppt Coursework Marks (as of 10/1) |
| 13 | Term Test (Monday, 2.00-3.30pm, GVGD Lab) | [no class] | Term test covers all AI topics only. |
| 14 | [no class] | Final Project Submission | Proj Final Submission Mark Distribution |
Required: TGP2271 Games Programming II (pass or taken once)
Desired: Good programming fundamentals (TCP1241, TCP1311), Above-average delivery in past game projects (TGP2261, TGP2271)
5% Class Hand-ups
10% Seminar
15% Test
70% Game Project
Participation marks may be given at instructor's discretion.
- Microsoft Visual Studio 2008/2010 (free; run it once after installation before proceeding to install XNA Game Studio)
- Microsoft XNA Game Studio 3.1/4.0 (free)
Class Hand-ups
To be conducted on ad-hoc basis. Class hand-ups can be in the form of programs/code, short assignment, etc. Please attend the classes if you do not want to miss out on them.
Seminar
All students are to give a short seminar (10-15 mins) on the summary of a specific game AI paper. List of papers TBA. The seminars will start from Week 8 to Week 10. Method of presenting is freeform - you can use slides, notes, codes, video demos, the board, or just, talk.
Written Test
The written test (compulsory to attempt) will be conducted near the end of the trimester. Covers all AI topics taught.
- Learning XNA 3.0, Aaron Reed
Publisher: O'Reilly Media (2009) / Google Book link
We will use this book as a good training guide to get you started with XNA game programming. We will follow this book intensively for the first 4 weeks, and after that, you'll be on your own. If you find it too basic and you want more bite, you can consider Carter's book (see references below).
- Artificial Intelligence for Games, Ian Millington
Publisher: Morgan Kaufmann (2006) / Google Book link
We will use this book for the AI topic weeks (Week 5 till Week 13). I may provide some simple slides or maybe nothing at all, though I may opt to give handouts when needed. Unfortunately, the library has only 1 copy and it's with me (sorry!). But I could lend you to make a copy of parts you find interesting.
- Microsoft XNA Game Studio 3.0 Unleashed, Chad Carter
Publisher: SAMS (2010) - Microsoft XNA Unleashed: Graphics and Game Programming for Xbox360 and Windows, Chad Carter
Publisher: SAMS (2008) - Programming Game AI by Example, Mat Buckland
Publisher: WordWare Publishing (2005) - AI for Game Developers, David Bourg, Glenn Seemann
Publisher: O'Reilly (2004) - Core Techniques and Algorithms in Game Programming, Daniel Sanchez-Crespo Dalmau
Publisher: New Riders Publishing (2003)
- How To: Writing a AI library for XNA - Conkerjo's write-up on creating his own AI library called BRAINS, mainly for his own game development work. Check out his other articles too.
- Simple AI Engine for XNA - Open source codes for some basic pathfinding AI and behavior logic
- SharpSteer - Autonomous AI library for XNA