Introduction to Game Development (Summer 2020/21)

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

Lectures: Due to Covid will consist of videomaterials created by lecturers plus combined with Unity video tutorials

Labs: Doodle!


Course Exam

The exam will have the form of discussion over the three projects you will create during the course.

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.

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

Also each project have delivery deadline.

PROJECT A

Delivery deadline: 5.4.2021, 23:59 (CET)

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

Points: up-to 20

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 Content Slides
1. 1.3.2021 Introduction to Game Development Introduction to the field… showing you how vast and fruitful field it is! PDF, YT
2. 8.3.2021 Course structure
Introduction to Unity
Details about the goals and the structure of the course.
Unity game object / components / prefabs fundamentals.
3. 15.3.2021 Game design introduction View into fundamentals underlying any reasoning about game design
Plus one-page-design
PDF
MP4 (at OneDrive)
Links
4. 22.3.2021 Bonus: Game Engine Architecture Game engine components / layers
Game loops (single/multi processor)
Gameplay system
Development, debugging, optimizations
PDF, YT
5. 29.3.2021 One-page design feedback session Happened online, see OneDrive folder for the video
5.4.2021 Easter holiday
6. 12.4.2021 Rendering & GPU Pipeline GPU Pipeline, respective stages
All-kinds of shaders
PDF, YT
7. 19.4.2021 Game Programming Patterns, Part I Self-study: chapters from Game Programming Patterns book (free)
Chapters to read (with understanding):
1. Introduction (~30min), Architecture … in particular
2. Command pattern (~20min)
3. Flyweight pattern (~20min)
4. Singleton pattern (~20min)
5. State pattern (~20min)
8. 26.4.2021 Project C – Onboarding Project C terms, instructions, project plan and GIT PDF
MP4 (at OneDrive)
9. 3.5.2021 Level design implementation feedback
and showcase sessionGame Programming Patterns, Part II
Happened online

Self-study: chapters from Game Programming Patterns book (free)
Chapters to read (with understanding):
6. Sequencing patterns (all, ~60min)
7. Dirty flag pattern (~20min)
8. Object pool pattern (~20min)

10. 10.5.2021 Game Programming Patterns
Online discussion, Q&A
Examples in Unity
Happened online
11. 17.5.2021 Introduction to Music and Sounds in Games
by Adam Sporka
Happened online
12. 24.5.2021 Cancelled
13. 31.5.2021 Open-consultations Will happen online
Ask questions through this FORM.

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 self-studying of Unity editor from “user perspective”, i.e., learning how to use it for creating games. Later on, you can enroll to NCGD008 Practical course on managed game development that explores Unity engine in depth (to certain extent). Unity comes with a lot of tutorials and example projects you can learn on. 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.

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 be given a one-page game design document to implement. 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 it has done well and what’s not. Unfortunately there is so many of you, we cannot feedback you 1:1 ;-(

Labs & Project Schedule

No. Date Topic Tutorials Project Workload
1. 8.3.2021 Self-studying Target: install Unity and have the (wrestling) round
one with Unity Editor. Have a peek into
the code of (prepared) components you will be using
throughout the Platformer microgame tutorials!
Just double-click their names!0. Either install Visual Studio Community, or
install Unity Tools into your Visual Studio Pro/Enterprise version [20 min]1. Install Unity [30 min]
— use Unity 2019.4 preferably
— as microgame, use Karting for the first project2. Explore Karting microgame [30 min]3. Watch tutorials about fundamental Unity concepts [20 min]4. Create project with Platformer microgame [15 min]5. Mod the platformer!
— 5.1 Billboard Face [15 min]
— 5.2 Name the game [15 min]
— 5.3 A splash of colors [10 min]
— 5.4 Add trails [10 min]
— 5.5 Tinted world [10 min]
— 5.6 Animate your world [10 min]
— 5.7 Add trigger [15 min]
— 5.8 Paint your level [10min]
— 5.9 Bouncy sparkly [10 min]
— 5.10 Add Speed and Bounce [10 min]
— 5.11 Decorate the world [10 min]
Create a profile on itch.io, create a game page for your Project A.
Add one tag to it “mff-gdintro-2021-a” (without quotes of course).You will use that page for your journal entries as well publishing states of your project.Project A – Journal Entry 1

  • Document: Date – Activity – Invested hours – Outcome
  • As an outcome, you should upload the state of your game project
  • Tutorial on how to make PC build
  • You might need to use some online storage for that purpose
0.5h setting up VS
4.0h tutorials
15 min setting up itch.io page
15 min journal entry
2. 15.3.2021 Self-studying Target 1: continue with tutorials

Work with 2D Game Kit, and complete the following tutorial: 2D Game Kit Walkthrough [3.0h]

Target 2: start thinking about some cool one page (level) design

Seeing 2D Game Kit, start thinking about
one small level you can fit in about one A3 paper.
Ideally, for every feature you want to use in your design, you should be reasonably sure it’s achievable with 2D Game Kit building blocks.

Start drafting the description, respect the one-page design concept, your target is to have a level that can be finished in about 2-3 minutes by an experienced player. [1.5h]

Continue with Unity tutorials.

Project A – Journal Entry 2.1
— about the tutorial

Create one-page game (level) design.

Project A – Journal Entry 2.2
— about the one-page design

3.0h tutorials
1.5h design
30 min journal entries
3. 22.3.2021 Open consultations Target 1: continue with tutorials

Creating and Assigning scripts [10 min] [Unity 2019.4]

Beginner scripting [40 min] [any Unity 2019+ version most likely]
— you are programmers, so do not waste much time on known constructs (such as loops :D), focus on Unity API like Awake/Start/Update/FixedUpdate, Translate, Look At, DeltaTime, etc.) trying them out in an empty Unity project.

Go through a couple more basic stuff [30min]
Change Object Position, User Input, Simple Movement, Collectibles

Roll-a-Ball [75 min] [Unity 2019.4]
— you probably won’t have time to go through it completely, see how far you can get… previous tutorials are actually primers for this one!

Target 2: revisit your one-page design

Having more information on how to script your own behaviors
and basic manipulations with things, revisit your one-page design
and try to assess whether it can be adapted somehow to reflect your new knowledge. [60min]

Continue with Unity tutorials.

Project A – Journal Entry 3.1
— about the tutorials

Update one-page game design.

Project A – Journal Entry 3.2
— about the one-page design

3.25h tutorials
1.0h design
30 min journal entries
4. 29.3.2021 Feedback day! One-page design feedback session; you’ve received tips what kind of things might have been missing in your designs and why. Given those insights, update your one-page designs! Hearing feedback to several one-page game designs, adapt yours.
Project A – Journal Entry 4
3.0h design
15 min journal entry
5. 5.4.2021 Easter holiday You have been sent an email with instructions about Project B. In a nutsheel:
1. create a Project B page at your itch.io account, do not forget to fill the form
2. locate and download one-page design you have been assigned with
3. start implementing it!
You receive one-page game design to work on along with free resources to use.
Start implementing the game.
Project B – Journal Entry 1
1.0h design study
3.5h implementation
15 min journal entry
6. 12.4.2021 Self-studying, implementation Continue with the game implementation.
Project B – Journal Entry 2
2.0h tutorials
2.5h implementation
15 min journal entry
7. 19.4.2021 Implementation “Finish” implementation of your game.
Project B – Journal Entry 3
4.0h implementation
1.0h final game export
15 min journal entry
8. 26.4.2021 Feedback day! Create another one-page game design.
Project C – Journal Entry 1
2.5h design
2.0h assets
15 min journal entry
9. 3.5.2021 Implementation Continue working on the design and the second game.
Project C – Journal Entry 2
4.5h tutorials
15 min journal entry
10. 10.5.2021 Implementation Continue working on the design and the second game.
Project C – Journal Entry 3
4.5h implementation
15 min journal entry
11. 17.5.2021 Implementation Continue working on the design and the second game.
Project C – Journal Entry 4
4.5h implementation
15 min journal entry
12 24.5.2021 Implementation Continue working on the design and the second game.
Project C – Journal Entry 5
4.5h implementation
15 min journal entry
13. 31.5.2021 Implementation “Finish” implementation of your game.
Project C – Journal Entry 6
3.0h implementation
1.5h game export and upload
15 min journal entry
And that’s all folks!

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