I love games. Games are not (always) dumb. Games can be innovative, interesting, and fun. Playing games in part has shaped my way of thinking. Somewhere deep inside me there's a little bit of Space Invaders, River Raid, Mega Man, Castle Wolfenstein, Doom, Civilization, StarCraft, The World of WarCraft, Katamari Damacy, Fallout, League of Legends, and Angry Birds. When I started teaching here at Stony Brook, Universities around the country were just starting to look at game development as a serious academic discipline. Now there are Game Dev programs at nearly every University.
My love for games and my interest in Computer Graphics as a graduate student is what led me to leading the department's effort to incorportate more game programming into our curriculum. In so doing, I have revamped the format and content for what was an existing, but discontinued course, CSE 380, Computer Game Programming, and introduced a new course, CSE 381, Advanced Game Programming. In addition, I created the Game Progrogramming Specialization, which operates within the requirements of the Computer Science Major for undergraduate students. The specialization is for a Computer Scientist who may wish to translate ones skills into a career as a game programmer.
I also advise student research in gaming, and founded and coordinate our annual Game Programming Competition. Studying games is a great way to learn about technology because modern games are complex real-time systems that incorporate cutting edge graphics, networking, artificial intelligence, memory management, concurrency, and just about every other sub-field of Computer Science. If you're interested, visit the Stony Brook University Game Programming YouTube Channel to see entries from recent competitions. Or, try playing the sampling of past entries below.
The primary objective of our game programming courses is for our students to learn the algorithms, languages, and techniques for building modern gaming systems. This means an emphasis on the C and C++ programming languages as well as the methodologies behind memory management, program efficiency, game physics, graphics, AI, etc. In addition to C and C++, students are exposed to many other langauges, including C# and scripting laguages like Lua. In recent semesters students have been creating original games using the Unity3D platform as well. Below are some of those projects.
Note, you will need to use a browser that supports the Unity plugin (Chrome does not). I recommend using Firefox. Just download and install the plugin when prompted.