Course details

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.

Guarantor

Deputy Guarantor

Vaněk Vojtěch, MgA. (GMS FFA BUT)

Language of instruction

Czech

Completion

Classified Credit

Time span

26 hrs lectures, 12 hrs exercises, 14 hrs projects

Assessment points

100 projects

Department

Game Media Studio (GMS FFA BUT)

Lecturer

Instructor

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.

Learning objectives

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.

Study literature

  • 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.).

Fundamental literature

  • 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

  1. What is a Game: Introduction, History Overview, Terminology, Serious Games
  2. Game Design: Systems Design, Game Genres, Mechanics, Designing a Game
  3. Game Engine: Architecture and Systems, Game loop, The Unity Engine
  4. Unity as a Platform: Data Orientation, Entities and Components, Execution Logic
  5. User Input: Control Styles, Hardware Specifics, Input in Unity
  6. Space and Bodies: Scene in 3D, Transformation, Physics in Unity
  7. Visualization and Rendering: Camera, Effects and Shaders, Materials in Unity
  8. Assets and Models: Formats and Tools, Rigging, Skinning, Assets in Unity
  9. Scene Dynamics: Animation, Interpolation, Skeletal Animation, Timeline
  10. Visual Interface: Elements, Events, Feedback, UX, UI Toolkit in Unity
  11. Sound System: Sound design, Sources and Listeners, Scene Influence
  12. Idea to Realization: Game Mechanics, Experimentation, Blockout, Assignments
  13. Game Development: Development Process, Publication, Monetization Systems, Marketing

Syllabus of numerical exercises

  1. (3.) Tools and the Unity Platform: Unity C#, Game Loop, Exercises and Projects
  2. (5.) Prototypes and Input: Prototypes and Debugging, User Input, Control Styles
  3. (7.) Forms of Visualization: Materials, Shading, Shader Graph, Shader Effects
  4. (9.) Physical Interaction: Keyframe animation, Bounding Volumes, Physical Simulation
  5. (11.) Game Interface: Events, UI Builder, Mockup, Sound Feedback
  6. (12.) Development Assignment: Prototyping of Game Mechanics, Game Logic

Syllabus - others, projects and individual work of students

Practical exercises:

  1. (2.) Analysis of Mechanics: Selected (even serious) game, Design, Style, One page A4
  2. (3.) Unity Project: Environment Preparation, GIT repository, C# script, Web export
  3. (5.) Entity Control: Combination of Entities and Components, User Control
  4. (7.) Materials and Effects: Material Editor, Material Shaders
  5. (9.) Animation in 2D: Asset Creation, Keyframe Animation, Time
  6. (10.) Inventory Interface: Drag & Drop, Sound Feedback
  7. (12.) Mechanics Tuning: Assignment, Prototype Enhancement

Progress assessment

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.

Controlled instruction

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.

Exam prerequisites

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.

ASSESSMENT POINTS
58 project, 42 practical exercises

Schedule

DayTypeWeeksRoomStartEndLect.grpGroupsInfo
Monlecturelectures A112 14:0015:50 2BIA 2BIB 3BIT xx Polášek
Monexerciselectures M104 M105 18:0019:50 2BIA 2BIB 3BIT xx Polášek

Course inclusion in study plans

  • Programme BIT, 2nd year of study, Elective
  • Programme IT-BC-3, field BIT, 2nd year of study, Elective
Back to top