Revised April 6, 2010

CMPUT 620 - Programming Languages and Environments for Computer Games

January 2010

 

CMPUT 620 IconUnder Construction

Instructor

Duane Szafron

Description

This course studies programming and scripting languages used in commercial computer video games to manage game content during game play. These languages are used by game developers to control the interactions between the player character and the game objects, to define the behaviors of the game objects, to determine how the story unfolds and to determine which dialogs occur and when. These languages are not used to implement game engines. This course will study the capabilities, utility, ease-of-use and run-time attributes of a variety of these languages, along with the programming environments in which they are deployed. It will assume some knowledge of the run-time structure of programming languages (activation records/stack frames, recursion, variable scoping, byte-code interpretation) some knowledge of compilation (programming language syntax, simple parsing, parse-trees). Some experience playing commercial computer games would be useful in reducing the learning curve for the terminology used, understanding the programming capabilities required of the languages and in evaluating which language features are effective and which are not. This course will use a variety of real languages that are used in real commercial games.

Learning Environment/Strategy

I will give a short series of general lectures to orient students about the topic of scripting computer games. Questions and discussion during these lectures are highly encouraged. During this time, students will be researching and preparing presentations on 8 or 9 specific topics of interest. Students will then deliver this series of presentations. The remaining class time will be spent in a discussion format. During the term, students will learn about various aspects of computer game scripting by doing practical exercises. The exercises are intended to introduce students to various concepts and students are encouraged to explore beyond the exercises and to share and discuss their experiences with me and the other members of the class. Students will design and complete a major group project to extend the ScriptEase II programming environment during the term.

Academic Integrity

The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour ( http://www.uofaweb.ualberta.ca/gfcpolicymanual/content.cfm?ID_page=37633, especially sections 30.3 Offenses Under the Code) and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University.

Class Recording

Audio and video recording is permitted only with the prior written consent of the instructor or if recording is part of an approved accommodation plan.

Class Times and Location

Tuesday and Thursday 2:00 to 3:20 in CSC B 41 from Tuesday January 5 through Tuesday January 19 and then in CSC B02 from Thursday January 21 through Thursday April 8, except no lectures during reading week (Tuesday February 19 and Thursday February 21).

Laboratory Locations

We are using an undergraduate teaching laboratory CSC 167 which contains 20 Windows workstations. We are sharing this laboratory with some undergraduate courses. In addition, CMPUT 620 students can use the Unix/linux workstations in their research laboratory (if they have a supervisor), office, or in the graduate student laboratory, CSC B-23. To use a computer in CSC 167, you can use your graduate login id. However, graduate and ugrad passwords are stored separately, so you must first go to the Help Desk, CSC 1-45, and register a password. Note that if you change your password on your grad account, it will not change on your ugrad account and visa versa. To access the internet from the ugrad machine, use putty, select gateway, press load and open, enter your login id and password and leave this window open or iconified, while you use the internet. You can use the laboratory during scheduled undergraduate laboratory sessions, but during those sessions you must yield your seat to any undergraduate student who wants it . We have no scheduled laboratory time in CSC 167, so at all other times, undergraduate and CMPUT 620 students have equal priority.

Tentative Office Hours for CMPUT 620 Students

Tuesday and Thursday 1:00 to 2:00 in ATH 358

Tentative Session Outline (subject to continuous change)

Student Presentation/Discussion Sessions

Exercises

Project

Final Exam

Assessment and Grades

Your final mark for the course will be based on the following weights:

  • Presentation - 20%
  • Exercises - 20%
  • Project - 30%
  • Final Examination - 30%

Your letter grade will reflect my judgment of your achievement. This judgment will be based on a combination of absolute achievement and relative performance in the class. I will assess each of the four class activities and provide you with a score for each activity. I will rank the weighted cumulative scores of all class members in order of merit, and assign an appropriate letter grade to each student that is consistent with that ranking.

View my current course marks

Resources

You can find many articles related to this course in the books Game Programming Gems (Volumes 1 to 6) and AI Game Programming Wisdom (Volumes 1 to 4). An index of the articles in the Gems 1-4 and Wisdom 1-2 volumes appears here. Unfortunately I cannot figure out how to search this site by keyword to discover which book has which article.