Gameplay Programming (Winter 2021/22)


This course is oriented at gameplay programming. Something that is usually masked as mere “game programming”, which is a wrong term (coding a game engine is also a part of game programming). We will be visiting tips and tricks how to make better games by implementing various game mechanics. Done in WebGL game engine Phaser using JavaScript or TypeScript language. The course is taught at MFF UK as NCGD003.


Follow the appropriate channel at Gamedev Discord!


Lectures + Labs: Tuesdays, 9:00, SW2 (we start 5.10.2021)

Note that each week, we will spend approx. 90 minutes of both lectures and labs (no clear distinction between those ;-).

Course Exam

There will be an oral examination done during the examination period. Find the list of topics for the oral examination in this document.

Exam dates:



No. Date Topic Content Slides
1. 5.10.2021 What is Gameplay Programming? Introduction to the field… if a bit confusing. PDF
2. 12.10.2021 Game Object Model Component-based architecture for game objects that are making a game world PDF
3. 19.10.2021 Cancelled, I’m in Turkey teaching Unity!
4. 26.10.2021 Setting up Phaser 3 development environment Step-by-step guide how to start developing with Phaser 3 Step-by-step Guide
5. 2.11.2021 Course (Phaser 3) Tech Stack Technology stack behind Phaser3-based games, including JavaScript and TypeScript PDF
6. 9.11.2021 Tweening Curves of all sorts PDFYT
7. 16.11.2021 Second setup attempt Let’s deal with the unbound breakpoints bug
8. 23.11.2021 Physics I Introduction to physics systems PDF
9. 30.11.2021 Phaser 3 and Arcade physics Practical lecture on how to work with Arcade physics in Phaser 3
10. 7.12.2021 Physics II Collision detection PDF
11. 14.12.2021 Phaser 3 and MatterJS physics Practical lecture on how to work with MatterJS physics in Phaser 3
12. 21.12.2021 Game Programming Patterns Window to OOP design patterns especially ones suitable for games.
Read about frequently used patterns in video game(play) code.
Focus on chapters: I, II, III, VI
13. 4.1.2022 Uncertainty and Randomness Learn about the randomness in games and how to work with it technically
Sort of bonus lecture 🙂


You are expected to work at home on the following stuff; some of homeworks must be formally delivered, some just serve as guidelines for you what you should try out or prepare.

Labs Schedule

No. Date Topic Content
1. 5.10.2021 Play your favorite game! HOMEWORK 1
Play your favorite game about you can say
it has an appealing game mechanics
and see them through the lens of playability
(see the lecture).
Find some section and comment technically
on how the game respond to user inputs.
Send email to:
Email subject: GGP 2021 – Homework 1
26.10.2021 Setup up Phaser 3 development environment at home Phaser3 Examples (GitHub)
Shooter example (TypeScript – Single .ts file)
Shooter example (TypeScript – Multiple .ts files)
2.11.2021 Experiment with WebGL and GLSL through examples and playground
Great introduction to shaders: The Book of Shaders
WebGL Samples
WebGL Playground 
2. 9.11.2021 Develop Tweening library ground up, create juicy Break out! HOMEWORK 2.1 + 2.2
See the slides from the lectures!
Tweening project stub (TypeScript)
Breakout project (TypeScript)
Send email to:
Email subject: GGP 2021 – Homework 2.1
Email subject: GGP 2021 – Homework 2.2
3. 30.11.2021 Angry Birds Like Game HOMEWORK 3
Download TypeScripted Phaser 3 Arcade physics examples
Extends Canon-ts to at least one Angry Birds-like level.
4. 14.12.2021 Ninja Rope! HOMEWORK 4
Download TypeScripted Phaer3 MatterJS physics examples
See the GDoc
Send email to:
Email subject: GGP 2021 – Homework 4

Extra links

Example Job Offers

Check some old job offers from various (even well known) gamedev companies, especially check “Requirements” sections, informative 😉

Yacht Club (July, 2020), Remedy (April, 2020), Sucker Punch (January, 2020), Insomniac Games (December, 2019), Snowcastle (December, 2019), Evening Star (November, 2019)