Programming for Designers
AbstractThe course is an introduction to the basic theoretical and practical approaches to programming and game engine functionality using a general-purpose language. The course is intended for a general audience with no prior programming experience, and taught with an emphasis on small programming exercises.
Beyond the designated role of a programmer or a developer, also the other roles in a game development team benefit from a basic understanding of programming. This is particularly true to designers whose ideas need to be not only clear and well communicated but also, eventually, implementable. Understanding the basics of programming offers designers some of the vocabulary needed to communicate with programmers as well as an insight into how programmers work and why they make certain decisions. Moreover, programming as an exciting and empowering tool for creative expression offers new possibilities for designers. It is beneficial that a designer can create their own prototypes and software modifications even without a programmer.
The course addresses these needs by facilitating multiple hands-on exercises together with addressing their theoretical underpinnings. The students will learn the core concepts related to game programming (e.g. game engines, OOP vs. Entity-Component Architecture, game loops, 2D physics) as well as the key features, tools, and structures of modern game engines (e.g. game object composition, scene graphs, shaders, game loops, events). While Unity game engine will be used in class, the concepts are explained in a way that makes them transferable to other contexts. During the course, the various hands-on programming exercises will help the student to build their own portfolio of development projects.
Formal prerequisitesThe course is intended for a general audience with no prior programming experience, and taught with an emphasis on small programming exercises. As an introductory course, there are no prerequisites.
Intended learning outcomes
After the course, the student should be able to:
- Design and implement simple programs using a modern domain-neutral programming language
- Write documentation of their own code
- Select and integrate existing code and libraries
- Apply a range of basic algorithms
- Use version control systems
Ordinary examExam type:
D: Submission of written work with following oral, External (7-point scale)
D22: Submission with following oral exam supplemented by the submission.