We will explore most of the game implementation concepts using Java. The textbook comes with a Java compiler from Sun, but it is somewhat out of date and not very friendly to use. I recommend using one of the following:
As something of an experiment, we are going to try to allow you to complete some of the projects using either Java or C++ (with the OpenGL graphics library and perhaps Microsoft's DirectSound for audio). This will be your choice. Ray Mazza is going to become the resident expert on OpenGL, so see him if you want to try this route. If there are other languages or graphics and sound packages you want to use, that may be okay but the burden will be on you to get everything working. See me if you have interests along those lines.
We have a new Linux lab this year. If you want to try developing any of your projects under Linux, we should be able to arrange that.
For your final project you can use whatever language and hardware platform you like. Many types of games will be fine using Java. However, if you find Java doesn't give you the performance you need, you may want to try using C++ (or C if you have to).
If you want very high performance, your best choice is probably to use C++ on a Windows (or possibly Lnux) machine. We can get you a copy of Microsoft's DirectX Software Development Kit, which is currently the state-of-the-art toolkit for developing high performance multimedia applications (like computer games). As mentioned above, another possibility for games with heavy 3-D graphics is to use the OpenGL graphics libraries.
This course emphasizes the hands-on development of computer games, as well as the study of computer games from the perspectives of technology, science, and art.
Designing good computer games requires knowledge of
I hope to cover (at least) the following general topics during the course
For technical lectures, you will need to read appropriate sections of your textbook or possibly handouts I will give you. Throughout the course, you will also be assigned readings on game design and some history of computer and video games. We will not always cover these readings in class, but we should try to include them in our class discussions. In any event, you will be responsible for the material in the readings for the midterm exam, and you should use what you learn from the readings to help guide your final project design.
Projects will involve the implementation of all or part of a computer program, using principles of design covered in class, and using modern tools for game development.
Students will complete final class projects in groups of up to three people. Each student group will create a complete computer game, generating a concept, design, storyboard, software specification, implementation, documentation, and system evaluation.
Final projects will be demonstrated during the last day of class. They will also be part of the Computer Science Festival at the end of the Spring 2001 semester.
The mid-term exam will take place approximately two-thirds of the way through the semester. There will be no final exam.
Assignments will generally receive a score on a 100 point scale. These will not map directly to letter grades until everything is tallied at the end of the semester. However, as a rough guide, I generally consider 90 points or more to be ``A'' work, 80 points or more to be ``B'' work, 70 points or more to be ``C'' work, and 60 points or more to be ``D'' work.
My current grading philosophy is that if you do exactly what I ask you to do, and do it perfectly, that should be worth about a low A or A-. To receive an exceptional grade, you should do exceptional work, above and beyond the strict project requirements. Thus every assignment will be graded on a 90-point scale, with an extra 10 points reserved for me to reward extra effort, innovation, industriousness, etc.