CSC 329: Introduction to Game Programming



Last update: 02/09/12

 

Lecture slides:

1. Introduction slides (1/17): Introduction.pdf

  1. 2.Game genre slides (1/19): Genres.pdf

  2. 3.Threads/Concurrency (1/24, 1/26): Games-Threads.pdf, Concurrency-Threads.pdf

  3. 4.2D Graphics and Animation (1/31, 2/2, 2/6): 2DGraphicsAnimation.pdf

  4. 5.Interactivity (2/6): Interactivity.pdf


Assignments:

  1. 1.Assignment: CSC329-Assignment-1.pdf

  2. 2.Assignment: CSC329-Assignment-2.pdf

  3. 3.Assignment: CSC329-Assignment-3.pdf

  4. 4.Assignment: CSC329-Assignment-4.pdf


Presentations for assignment 1:

  1. 1.MaddenPP.pdf (1/26): Jeff

  2. 2.Caution Seaman (1/26): Bruno

  3. 3.World of Warcraft (2/2): Olivia

  4. 4.RezHD (2/2): Oscar

  5. 5.Alone in the Dark (2/9): Alex

  6. 6.SimCity (2/9): Justine

  7. 7.Night Trap (2/16): Joseph

  8. 8.L.A. Noire (2/16): Dany

  9. 9.Virtua Fighter (2/23): Matt

  10. 10. Kings Quest (2/23): Sean

  11. 11. Asteroids (3/1): John

  12. 12. Chronicles of Riddick (3/1): Antonio

  13. 13. Super Mario (3/8): Roman

  14. 14. Final Fantasy (3/8): Bo

  15. 15. Doom (3/8): Joel


Source code:

1. Text book sources: http://www.brackeen.com/javagamebook/, also here: allsrc.zip

  1. 2.Java 2 Standard Edition SDK version 1.4.1 or newer: http://java.sun.com

  2. 3.J2SE documentation: http://java.sun.com


Initial handout:

as PDF-version: CSC329-Initial-Handout.pdf


Introduction

The game industry is a multi-billion dollar industry and is still growing. Years ago, the technology forced games to have simple designs. Programs could often be developed by a small team of pure hackers with the major requirement being a good idea. Back then, formal training and education was not considered that important. Now, it is almost essential.


Games are so complex these days that they require months if not years to be developed, usually by a large team of programmers, designers, artists, testers, and producers to organize and develop them. Games are now as complex as, if not more than, the latest blockbuster movie. It is an interactive entertainment, pure and simple.


The tools and training needed for game development are enormous, and the complexities warrant academic education beyond a single course. In fact, an entire undergraduate curriculum could be designed and justified for game development.


This course is still experimental and evolutionary in nature. It was offered and shaped in the past by Dr. Christian Duncan and carried out by Dr. Uttam Sarkar. The present structure is from scratch and new at this University, however, it inherits some good ideas from Christian and Uttam. I am grateful to my colleagues for their contributions. 


Course objective

Ideally, it would be worth looking at the entire area of game development including story boarding, 3D modeling, sophisticated sound effects etc. but that would take years! Realistically, we would instead take this class as an opportunity to explore the basics behind game programming and related issues befalling game development and gaming industry. While the course is expected to incorporate interests and game development skills from the students, one must not carry the unwanted hope of mastering all it takes to develop a commercial quality game in a semester.


However, the course will focus on necessary topics for creating 2D games. Instead of dealing with existing game engine API’s and unwanted infrastructure issues we will explore the available development tools using Java. With Java, we can make fast, full-screen (or applet), hardware-accelerated games while having the benefits of programming in Java with known and sophisticated IDE’s (e.g. Eclipse) and lots of open-source libraries.


Pre-requisites and Preparation

The only pre-requisite this course is CSC120 and CSC220 with a strong preference for CSC322 (C programming). The course would best fit students who love programming and who also like do a lot of study and net-searching of game related resources.


Teaching Assistant

Muhammad Nassar

Email: muhammad.m.mansour@gmail.com

Click here to see Adam McMahon’s page containing game programming related resources


Contact Hours

Each week there are two 75 minutes sessions (Tuesday, Thursday 11:00 -- 12:15 pm)

Classroom: UB 426


Recommended Text Book

There are a lot of books available with regard to game programming. However, I haven’t found a good textbook yet that covers what I would like to do in the course. Thus, I have decided on a Java game programming book rather than a traditional textbook:


Developing Games in Java by David Brackeen, 2003, New Riders Publishing. ISBN-10: 1-5927-3005-1


Course Content

Course material contains material from various sources reflecting the contents of the recommended book.


Grading
TBA


Scoring of Homework Assignments
TBA


Class attendance and participation

Class attendance is not mandatory, although my exams will depend heavily of my lectures. Not all of the material will come from the text. Class participation is also important. Active interest in lectures is the easiest way to learn.


Plagiarism

The penalty for copied homework of any kind can be immediate failure in the course. My policy on programs is as follows: There is no reason for two (or more) people handing in identical or nearly identical programs. I will regard such programs as either group-written or simply copied. If I have no hard evidence of copying, such programs will receive NO credit. More serious actions will be taken in cases where there is evidence of cheating.


Late programs

Unless otherwise stated, programs will lose 20% of their value for each weekday (Monday through Friday that they are late, down to a minimum value of 20%. The due date of a program is the latest date on which it can be run to get full credit.


Dropping the course

Unless there are extreme extenuating circumstances, I will not allow anyone to drop a course after the drop date. Poor academic performance will never be an acceptable reason for a late drop. The drop date for this course is April, 1st.


Incompletes

Unless there has been a documentable illness that caused you to miss substantial amounts of class and computer time, I will not give an incomplete grade in this course. Therefore, please do NOT waste my time asking about an incomplete grade unless you have a remarkably good reason.


Make-up exams

I do not give make-up exams. You simply must show up and take them at the specified times.

Source: TopLeague, an AI-Soccer game by aitainment GmbH, Germany