Introduction to Game Development (Summer 2023/24)

Contents

This course is oriented on practical game development. It is designed to give students the sense of game development cycle accompanied with (selected + non-exhaustive) probes to various areas like 2D, pixel art, parallax scrolling, game design, game development process, keeping the gamedev spirit up by writing gamed journal entries, etc. It is designed around making your first game in Unity, which will serve us as the gateway to all mentioned topics. We will build upon the knowledge of computer graphics, general programming and C#. By the end of the course, you should have your small game implemented (as something to put into your gamedev CV) and a gist of what the game development is about. The course is taught at MFF UK as NPGR038. Beware, if you do not like “open assignments”, this course (and game development) will probably not be for you.


News

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


Dates

Lecture: Mondays 17:20 in S4

Labs: Monday 9:00 SW1 (Czech) & Wednesday 17:20 SW2 (English)


Course Exam

The exam will have the form of discussion over the three projects you will create during the course. In addition, you can be asked about anything from lectures.

Each project will have some kind on interim report and clear tasks / feedback / concerns you should address, which will make the ground for the discussion.

For each project, you can score certain amount of points (20/30/50 respectively). You can score 100 points max. Each project’s grading includes the developer journal you’re required to maintain on itch.io, adding an entry each week.

Grading: 100-85 -> A, 84-75 -> B, 74-65 -> C, less then 65 -> F

Also each project have delivery deadline.

PROJECT A

Make a fabulous 1-page level design, that will be implemented using platformer toolkit. It should aim for about 3 minutes of gameplay, be clear and be easy to understand.

Delivery deadline: 19./24.3.2024, 23:59

Delivery instructions: itch.io project format (beware, itch.io is tracking your edit time)

Points: up-to 20

PROJECT B

Delivery deadline: 3.4./8.4.2024, 23:59

Delivery instructions: Build uploaded to the itch.io (beware, itch.io is tracking your edit time)

Points: up-to 30

PROJECT C

Delivery deadline: before last lecture (19.5.2023 23:59)

Delivery instructions: Build uploaded to the itch.io (beware, itch.io is tracking your edit time)

Points: up-to 50

Exam dates:

TO BE DECIDED


Workload

This course will require quite a lot of time of you. Each week will consist of: 1.5h lecture, 1.5h labs (either self-study or online), 3h of homework = 6h per week, in total that’s 13 x 6 = 78 man-hours. Which is fair for 5 ECTS credits considering that 30 ECTS credits per semester means 1 ECTS credit is 1.3h/week approx., so 5 ECTS credits is roughly 6.6h workload per week.


Lectures

Lectures consist of various videos both in-house made and (video) tutorials from the wild. Note that the aim of this course is NOT to go into details of various topics connected with game development (50 shades of game design, low-level engine development, audio programming, gameplay programming, monetization, user research, etc. etc.) but let you experience solo development of a small game. Details to certain techniques will be given accompanied with links for further studies (which are not required to pass the course) and links to master courses where those topics are covered in much greater depth.

No. Date Topic Lectured by Content Slides
1. 19.2. Introduction to Game Development
Course structure
Vojta Černý Introduction to the field… showing you how vast and fruitful field it is!
How this course works and details about its goals and structure.
PPTX, PDF
2. 26.2. Intro to game design Lukáš Kolek Introduction to the field of game design
3. 4.3. Intro to Unity Jiří Pelc Key systems and components in Unity compressed into 90 minutes
and less than 100 slides!
PPTX, PDF
4. 11.3. Game engine architecture Jiří Pelc We are going to get into details how a game engine works internaly. And secondly, we will look into the workload for each frame and how to get a stable framerate. Every one hates low-FPS games! PPTX, PDF
5. 18.3. Game programming patterns Jiří Pelc I am going to show which standard programming patterns are useful in game development and how to bend them according to our will. PPTX, PDF
6. 25.3. Project A Feedback Vojta Černý Global feedback on your 1-page design documents.
Starting project B. (feel free to some last tweaks to your project A, but make sure to upload it to itch.io in the following days)
PPTX, PDF
7. 1.4. cancelled   cancelled – Easter Monday
8. 8.4. GameFeel / Juiciness Jiří Pelc What it takes to juice-up your game! M GDoc
9. 15.4. Development Methodologies in Gamedev Vojta Černý Talking about dev. methodologies used in game studios, mainly Agile & Scrum.
10. 22.4. Project B Pitch Session the students You pitching your Project B as a game!
Also, introducing Project C.
PPTX,
PDF
11. 29.4. Introduction to Procedural Content Generation Vojta Černý Definitions, history and interesting applications of PCG
Terrain generation – Diamond-square algorithm and noise functions
Maze generation
Dungeon generation
PPTX,
PDF
12. 6.5.
13. 13.5.
14. 20.5.

Labs & Projects

Labs are going to be quite different from what you might know elsewhere. As the target for you is to develop a small game (actually games), you will be gradually working exactly on that. We will show you, how to go about that asking you to maintain a) game development journal, b) work with one-page game design, c) practice iterative development. Labs will have the form of studying of Unity editor from “user perspective”, i.e., learning how to use it for creating games, where several lesssons will be up to you to study on your own. Unity comes with a lot of tutorials and example projects you can learn from. You will be given a list of (curated) tutorials and tasks to work through every week.  These tutorials will serve you only as examples what can be done in Unity, so you can design your games accordingly.  Every third week there will be “open consultation” lab, to which you will be able to send your questions and we will be providing answers.

Afterwards, you can enroll to NCGD008 Practical course on managed game development that explores Unity engine in depth (to certain extent).

Then there are projects, three of them. Semester will roughly be split into 3 parts. During the first, you will be asked to create only one-page game design document for a game prototype. During the second, you will implement a one-page game design document. During the third, you will be asked to design and implement the third game prototype. There is one big rule of the thumb, you are not allowed to design a game you technically do not know how to implement yet. This means, that your game cannot rely on features you have not walked through yet. This will be your constraint to every game design (which is actually very healthy to have in game development, constraints are great, remember, you can always design a game around constraints).

During this course, you will be working on three prototypes in total. The first will be “game design only”, the next two will actually be real playable prototypes.

Week after “open consultation” lab, there will be so-called “feedback day”, in which we will be showing examples of your work (anonymized) explaining what was done well and what was not.

Labs & Project Schedule

No. Date Content Homework Workload Links
1. 21.2./26.2. Preparation of the environment (Unity + Visual Studio)
Basic terminology (Scenes, Game Objects, Components, Prefabs)
2D Platformer Microgame template + tutorial
Building a game
Creating an itch.io page
Follow the instructions to end up with a build published on your own itch.io page and a devlog entry.
Deadline: Before your next labs (22./23.2.).
0.5 h setting up VS
4.0 h tutorials
15 min setting up itch.io page
15 min journal entry
Prep
PDF
SLIDES
2. 28.2./4.3. Non-code game development
Level desing, rule tiles
Q&A + Resolving issues with first run
Follow the instructions to end up with a build published on your own itch.io page and a devlog entry.
Deadline: Before your next labs (6./11.3.).
0.5 h setting up VS
1.0 h tutorials
3 h level design
15 min journal entry
SLIDES
3. 6.3./11.3. Project A Q&A
Intro to scripting
Follow the scripting walkthough 1 and 2 and publish devlog entry. SLIDES1
SLIDES2
DOC1
DOC2
4. 13.3./18.3. Project A Group Feedback Fix your Project A usign collected feedback. Upload new version of Project A and write Project A – Second devlog.

Deadline: Before next lab (19.3./24.3.)

5. 20.3./25.3. Intro to scripting (Part II.) Sequel to third lab with new chalenges SLIDES
DOC3
DOC4
6. 27.3./8.4. Scripting Q&A and Project B Q&A Questions related to scripting homeworks and implementation of Project B Skeleton
7. 3.4./15.4. Practice of concept design in Unity We will together spent some time with Draw IO pacticing a game object design and script design on official Unity example No homework, work on project B AteraX

BUILD(key:038)

DrawIO

Cinemachine

8. 10.4./22.4.
9. 17.4./29.4.
10. 24.4./6.5.
11. 15.5./13.5.
12. 22.5./20.5.

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)


Acknowledgement

https://gamedev.cuni.cz/wp-content/uploads/2018/10/logolink_OP_VVV_hor_barva_eng.jpg