Introduction to Game Development
IZHV FFA BUT 1ZHERV Acad. year 2021/2022 Winter semester 4 credits
The ever-increasing impact of computer games, simulators, and "serious games" applications undeniably shows their future potential. However, their development requires a comprehensive overview of a wide range of topics and creative approaches used in solving various and unconventional problems. In the course Game Design Principles (IZH), we introduce participants to the issue of game development both in terms of theoretical algorithms and procedures, as well as practical experience using the Unity platform.
Language of instruction
Subject specific learning outcomes and competences
Students will learn the basic terminology of game design set in the contemporary game development process.
Students will gain an overview of algorithms and techniques used in the implementation of interactive and passive multimedia applications.
Students will learn to solve common problems in game development using the Unity development platform.
Students will be able to transform concepts and ideas into real-world applications using prototypes and hands-on development processes.
Generic learning outcomes and competences
Students will learn to solve simple programming problems through regular assignments.
Students will become proficient in the practical use of programming, debugging and modelling tools.
Students will practice scripting and programming in C# and HLSL.
The objective is to provide the students with an overview of game application development. We present the practical implementation using the Unity platform, focusing on both game and serious applications. Students will get acquainted with individual game systems, their relevance in the whole, and finally, how to implement them. Specifically, we focus on game development issues concerning communication with the user, rendering, physical simulation, sound, and modeling. Further, we introduce the participants to frequently used game development tools. Ultimately, the acquired knowledge enables the students to transform their ideas into real interactive and passive applications, providing the necessary groundwork for further development.
Why is the course taught
The course offers participants an introduction to the development of computer games. However, this knowledge can be applied in a broader context. Thanks to the massive demand for visualizations and prototypes, the so-called "serious games" are frequently utilized in many applications. Their uses range from games for entertainment, architectural designs, product prototypes, visualizations, and presentations to film prototypes. The theoretical part of the course takes the form of lectures, introducing the general concepts, algorithms, and procedures of game design. Further, the practical exercises allow the students to deepen their abilities through regular demonstrations, practical exercises, and a project focused on the Unity development platform.
Prerequisite kwnowledge and skills
Necessary prerequisite knowledge includes:
- Basics of Algebra and Geometry: matrices, vectors, transformations, projections.
- Basics of Programming: troubleshooting, any programming or scripting language.
- Basics of Computer Graphics and Multimedia: 3D rendering, forms of multimedia data.
- Raph Koster; Theory of Fun for Game Design; O'Reilly Media; 2013 (2. ed.).
- Jesper Jull; The Art of Failure: An Essay on the Pain of Playing Video Games; The MIT Press; 2016 (2. ed.).
- Simon Egenfeldt-Nielsen, Jonas Heide Smith, Susana Pajares Tosca; Understanding Video Games: The Essential Introduction; Routledge; 2019 (4. ed.).
- Ian Millington; Game Physics Engine Development; CRC Press; 2010 (2. ed.).
- Ian Millington, John Funge; Artificial Intelligence for Games; CRC Press; 2009 (2. ed.).
- David H. Eberly; 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics; CRC Press; 2018 (3. ed.).
- Jason Gregory; Game Engine Architecture; A K Peters/CRC Press; 2018 (3. ed.).
- Jesse Schnell; The Art of Game Design: A Book of Lenses; A K Peters/CRC Press; 2019 (3. ed.).
- Robert Nystrom; Game Programming Patterns; Gennever Benning; 2014 (1. ed.) + online.
- Unity Manual; https://docs.unity3d.com/Manual/index.html
- The Book of Shaders; https://thebookofshaders.com/
- Materials from lectures and demonstration exercises
Syllabus of lectures
- What is a Game: Introduction, History Overview, Terminology, Serious Games
- Game Design: Systems Design, Game Genres, Mechanics, Designing a Game
- Game Engine: Architecture and Systems, Game loop, The Unity Engine
- Unity as a Platform: Data Orientation, Entities and Components, Execution Logic
- User Input: Control Styles, Hardware Specifics, Input in Unity
- Space and Bodies: Scene in 3D, Transformation, Physics in Unity
- Visualization and Rendering: Camera, Effects and Shaders, Materials in Unity
- Assets and Models: Formats and Tools, Rigging, Skinning, Assets in Unity
- Scene Dynamics: Animation, Interpolation, Skeletal Animation, Timeline
- Visual Interface: Elements, Events, Feedback, UX, UI Toolkit in Unity
- Sound System: Sound design, Sources and Listeners, Scene Influence
- Idea to Realization: Game Mechanics, Experimentation, Blockout, Assignments
- Game Development: Development Process, Publication, Monetization Systems, Marketing
Syllabus of numerical exercises
- (3.) Tools and the Unity Platform: Unity C#, Game Loop, Exercises and Projects
- (5.) Prototypes and Input: Prototypes and Debugging, User Input, Control Styles
- (7.) Forms of Visualization: Materials, Shading, Shader Graph, Shader Effects
- (9.) Physical Interaction: Keyframe animation, Bounding Volumes, Physical Simulation
- (11.) Game Interface: Events, UI Builder, Mockup, Sound Feedback
- (12.) Development Assignment: Prototyping of Game Mechanics, Game Logic
Syllabus - others, projects and individual work of students
- (2.) Analysis of Mechanics: Selected (even serious) game, Design, Style, One page A4
- (3.) Unity Project: Environment Preparation, GIT repository, C# script, Web export
- (5.) Entity Control: Combination of Entities and Components, User Control
- (7.) Materials and Effects: Material Editor, Material Shaders
- (9.) Animation in 2D: Asset Creation, Keyframe Animation, Time
- (10.) Inventory Interface: Drag & Drop, Sound Feedback
- (12.) Mechanics Tuning: Assignment, Prototype Enhancement
Practical exercises up to 7 x 6 = 42 points.
Game Jam project up to 58 points.
Minimum to pass the course according to the ECTS assessment is 50 points.
Teaching will be in the form of lectures followed by tutor-led exercises and independent work on projects.
The practical exercises are assigned and evaluated during the semester.
The Game Jam project takes place during the final weeks of the semester, ending with the time limit expiration.
Each student is required to obtain at least 2 points from each practical exercise. Submission and presentation of the Game Jam project are mandatory, with no less than 24 points required to pass the course successfully.
58 project, 42 practical exercises
Course inclusion in study plans