This course introduces students to the fundamentals of computer simulations in the context of interactive media. Students are exposed to tools and techniques for modeling physics, agents (behaviors) and visual effects, in order to design expressive interactive media. This course also covers the foundations of game design, including history, technology and theories that drive the process of making interactive games. Moreover, students learn programming in Lua with LOVE2D, which is a game engine used for all the homework assignments.
This is a studio based course, so students are expected to produce a working prototype (with graphics, sound and controls) for each topic covered in class in addition to a final project. The final project is a creative interactive simulation fully designed and implemented by them. Students are encouraged to work in groups so they can simulate a creative working environment (like a game studio), where they share knowledge and develop their communication skills. At the end of the course, each student play/experience all the final projects and provide feedback.
CSIM was designed for students with no prior experience in programming. However, due to time constraints, there are only two lectures focusing specially on this topic. Thus, it is very helpful if students have some notions of computer programming.
This course has substantial elements of physics and mathematics, so students should be prepared to review Classical Mechanics and Trigonometry on their own if it is not fresh in their heads.
Programming assignments are done in LOVE2D, which is a framework for making games in Lua.
This course includes eleven programming projects and one creative project. Assigments are expected to be completed in 3h.
No textbook is required for this course. However the material presented here heavily references the following:
- Shiffman Daniel, Shannon Fry and Zannah Marsh. The Nature of Code. 2012.
- Millington, Ian. Game physics engine development. Morgan Kaufmann Publishers. 2007.
- Millington, Ian, and John Funge. Artificial intelligence for games. CRC Press, 2016.
- Shaker Noor, Togelius Julian and M. Nelson. Procedural Content Generation in Games. Springer. 2014.
- Lerusalimschy, Roberto. Programming in Lua. 2006.