Gameplay Programming (Winter 2023/24)

Contents

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 the game engine Godot 4 using GDScript. The course is taught at MFF UK as NCGD003.


News

Follow the appropriate channel at Gamedev Discord!
https://discord.gg/c49DHBJ


Dates

Lectures: Fridays, 8:10, S5.

Labs: Wednesdays, 12:20 / 14:00, SW2.


Course Exam

The course exam will be practical!

You will be given a Godot implementation task. This task will be loosely based around stuff from the lectures / practicals, and you might also get asked some questions about Gameplay Programming, so make sure to study the materials!

In general, you should be able to talk about the topics in this document.

Lab Credit

There will be (approximately) 4 homeworks over the course of the labs. The points will be given out as such:
3 points – submitted solution within deadline
2 points – submitted within 2 weeks from deadline
1 point – submitted within 2 months from deadline

You need to submit all of the homeworks successfully and get at least maximum_possible - 3 points to successfully pass the labs. Additionally, each point missing will give you requirement on passing the final exam. Depending on the points, you will need to:
max : At the exam, you need your solution to “basically work”, but it can have minor flaws.
max – 1 : At the exam, your solution can have minor flaws.
max – 2 : At the exam, your solution can only have small “cosmetic” flaws.
max – 3 : At the exam, your solution needs to work flawlessly.


Lectures

No. Date Topic Content Slides
1. 5.10.2023 What is Gameplay Programming? Introduction to the field… if a bit confusing. [ PDF ] [ YT 2020 ]
2. 13.10.2023 Game Object Model Game object / Component-based approach to the game object model [ PDF ] [ YT 2020 ]
3. 20.10.2023 Tweening – Part 1 Introduction to curves and in-be-tweening [ PDF ] [ YT 2020 ]
4. 27.10.2023 Tweening – Part 2 All sorts of splines [ PDF ]
[ video sent by email]
5. 3.10.2023 Physics – Part 1 Introduction to Physics Systems, revisiting Newton physics. [ PDF ]
6. 10.10.2023 Physics – Part 2 Collision Detection – Ideas, Algorithms [ PDF ]
7. 24.10.2023 Uncertainity Role of randomness in games [ PDF ] [YT 2020 ]

Homeworks

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. 3.10.2022 Godot Intro

HW1 – Play your favorite game!

Introduction to Godot.
Make a game from scratch in Godot 4!Use these assets.HOMEWORK 1Play your favorite game about which you can say
it has an appealing game mechanics
and see them through the 7 lens of playability
(see the lecture).
Find some section and comment technically
on how the game respond to user inputs. Expected length: ~3 pages.DEADLINE 24th of October, 2023SUBMISSION
Submit via this form.
2. 10.10.2023 GDScript DeepDive + RPG Start A more detailed rundown of GDScript.

If you missed this practical, study this page, carefully and rigorously. Watch out that it is Godot 3, so some things may be different, (onready/export are now annotations, we have typed arrays).

3. 17.10.2023 RPG Project Start Starting with a tiny RPG project in Godot!
Follow the instructions in this document. Make sure to fork the repository (it will be necessary for a later homework submission).
4. 24.10.2023 RPG Project Continue Continuing where we left off.
Follow the instructions in this document!
5. 31.10.2023 RPG Project Finish The last part of the RPG project task, focusing on tweening! Follow the instructions in this document.

HOMEWORK 2 – Finish up the RPG project to be a true tiny RPG!

Add: Combat, Quests and something original (see the tasks document).

Submit via this form.

DEADLINE – 14.11.2023

6. 7.11.2023 Custom Tweening Create your custom tweening library.
Follow instructions in this document.
(will be needed in a following HW)
7. 14.11.2023 Intermezzo Create a simple space shooter.
Follow the instruction in this document.
(knowledge from this will be needed in a following HW)
8. 21.11.2023 Platformer Project Start Starting with a Platformer project in Godot!
Follow the instructions in this document. Make sure to fork the repository (it will be a start for a later homework submission).
9. 28.11.2023 Ninja Rope Continuing with the Platformer – adding a ninja rope
Follow the instructions in this document. You should be working on your own fork of the platformer repository.
10. 5.12.2023 2D Animation Looking into 2D animation capabilities in Godot! Follow the instructions in this document.

HOMEWORK 3 – Finish up the platformer project to be a true platformer (demo)!

Add: Ninja Rope, Animation, Tween, Dynamic Camera, Parallax Scrolling and something that makes it your own!

Submit via this form.

DEADLINE – 19.12.2023

11. 12.12.2023 Audio How to approach audio from the side of gameplay programming?
Follow the instruction in this document.Don’t forget to keep working on your HW!
12. 18.12.2023 3D Animation A brief outlook on the 3D animation capabilities in Godot! Follow the instruction in this document.


Extra links