Organization of the course

Czech technical University in Prague
Faculty of Information Technology
Department of Software Engineering
© Adam Vesecký, MI-APH, 2019

Motivational Quotes

Nobody in this industry knows what they are doing. We just have a gut assumption.Cliff Bleszinski
There's a belief in the game industry that working in it is a privilege, and that youshould be willing to do whatever it takes to stay there.Emily Grace Buck
Games are great to work on because they are as much about art as they are science.Mike McShaffry

Purpose of this course

  • Understand the difference between games and applications
  • Understand the architecture of game engines
  • Understand the ECS pattern
  • Understand the basics of math and physics used in games
  • Understand the basics of AI used in games
  • Understand the issues of multiplayer experience
  • Understand why do we create games (or why we should)

  • Have a motivation to create a simple game that might be fun to play

Course history

2017

  • Establishment of the subject
  • OpenFrameworks engine, C++, 4 homeworks
  • 47 students, 25 finished the course
  • Average score: 1.48

2018

  • All slides rewritten into 16:9 ratio
  • PixiJS library and TypeScript instead of C++
  • Semestral work instead of homeworks
  • All examples reimplemented into TypeScript
  • 50 students, 30 finished the course
  • Average score: 1.50

2019

  • 😱😱😱 Slides rewritten into HTML
  • 50 students

Organization

Slides and materials

Public Page

Lectures

  • Tuesday, 16:15, TH:A-s135

Labs

  • Tuesday, 18:00, T9:301

Lectures

  • 01:     Introduction to the World of Games
  • 02:     Architecture of game engines
  • 03:     Component Architecture I
  • 04:     Component Architecture II
  • 05:     Game programming patterns
  • 06:     Math and dynamics
  • 07:     Physics
  • 08:     Graphics
  • 09:     Game AI
  • 10:     Scripting languages
  • 11:     Day off
  • 12:     Multiplayer
  • 13:     Indie Game development

Labs

  • 01:     Introduction to the environment
  • 02:     PixiJS basics
  • 03:     Component architecture
  • 04:     Animation, physics
  • 05:     Game AI
  • 06:     Multiplayer

  • Day off on 3.12.

Assessment

Labs

  • Semestral work (a simple web game in PixiJS lib)
  • Total: 50 points (+6 bonus points) -> 56 max
  • To pass: 25
  • Deadline: 31.1.2020

Exam

  • Simple tasks and single-choice questions
  • Maximum points: 50, to pass: 25

Importance markers

Green bulb

An information that craves for attention

Orange bulb

An important information, may appear in the test

Red bulb

An information whose acknowledgment is imperative

Example

y1y?y2x1xx2

CSAA (Coverage Sample Antialiasing)

  • NVidia's optimization of MSAA
  • new sample type: a sample that represents coverage

Game Mechanics

  • Set of rules governing the behavior of a single game element

Linear interpolation

  • y=y1+(y2y1)xx1x2x1

Literature

GDS 2019