LUMS – CS 5602 – Game Design and Development

Fall 2024 – Course outline

LectureTopicWeekDayDateUnity assignmentAssessment/ Milestone%
1-1M2024-Sep-02
2Introduction, game design vs development, industry structure, social issues1W2024-Sep-04
3Unity essentials 12M2024-Sep-09
4Unity essentials 22W2024-Sep-11
2Su2024-Sep-15Assignment 12%
5Game design document, ideation, story and narrative3M2024-Sep-16Team formation
6World and level design3W2024-Sep-18
1 - makeupCombat mechanisms3F2024-Sep-20
3Su2024-Sep-22Assignment 22%
7Player and enemy character design4M2024-Sep-23Game concept overview document
Task division document
5%
8Camera projection and perspective, control4W2024-Sep-25Quiz 110%
4Su2024-Sep-29Assignment 32%
9Gameplay challenges and actions, game loops5M2024-Sep-30
10Core mechanics, progression and emergence5W2024-Oct-02
5Su2024-Oct-06Assignment 42%
11Game economy, game balance, feedback loops6M2024-Oct-07
123D models and textures, rigging and animation, user interface6W2024-Oct-09Draft game design document
Task division document
5%
13Unity optimizations7M2024-Oct-14
14Vectors, matrices, transforms7W2024-Oct-16Quiz 210%
7F2024-Oct-18Final game design document
Task division document
10%
15Polar coordinates, rotations, quaternions, curves, splines8M2024-Oct-21
16Coordinate spaces, lighting, graphics render pipelines, shaders8W2024-Oct-23
17-9M2024-Oct-28
18Rays, planes, collisions, projectiles, springs9W2024-Oct-30
17 - makeupKinematic and dynamic movements9F2024-Nov-01Game prototype 1
Task division document
5%
19Graphs, Dijkstra pathfinding, A* pathfinding, heuristics, navigation meshes10M2024-Nov-04
20Decision tree, FSM, behavior tree, goal-oriented behavior, goal-oriented action planning10W2024-Nov-06
21Influence map, coordinated behavior, game tree11M2024-Nov-11
22Perlin noise, binary space partitioning, cellular automata11W2024-Nov-13
11F2024-Nov-15Game prototype 2
Task division document
10%
23Diamond square, maze generation12M2024-Nov-18Quiz 310%
24Buffer12W2024-Nov-20
12Su2024-Nov-24Assignment 52%
25Buffer13M2024-Nov-25
26Buffer13W2024-Nov-27
13Su2024-Dec-01Final game submission
27Game demos14M2024-Dec-02Final game demo
Task division document
15%
28Game demos14W2024-Dec-04Final game demo
29Buffer15M2024-Dec-09Quiz 410%

FAQ

Will students be assigned random project teams?

Students are expected to form their own teams.

How many students can form a team?

3 students per team should allow for a decently-scoped game project to be developed.

Will we choose from a given set of game projects or can we make whatever we want?

Teams will implement a limited-scope game of their own choice. The project should be a game that is small enough that it can be finished within the semester with good quality, but should have enough depth to understand how to make an appealing product using the tools available in Unity. Examples are a single level of a platformer such as Mario, a Tetris-like puzzle game, a Candy Crush-type matching game, or a single level of a physics game such as Angry Birds. A few others are mentioned in the lecture slides, but these suggestions are by no means close to being an exhaustive list.

Inspiration can come from games you are playing these days or have played in the past, but it is expected that an original game will be developed, not a direct clone. Other good sources of inspiration are global game jam entries and past winners. 

To prevent plagiarism and use of pre-written or AI-generated code, students will be required to hand in the entire project folder, including assets and C# scripts.

I don’t have experience with Unity; will I be able to make the project?

We will spend 2 lectures on Unity basics; self-study via YouTube tutorials or other sources will be required. Once you are past the initial learning curve, you’ll be quite comfortable with Unity.

Please note that Unity is a tool, but Computer Science is about learning ideas and techniques. Tools help increase our productivity when applying ideas to specified problems. It is not the goal of a CS education to teach students specific tools that might or might not be relevant in 5 years’ time.

You may have to study specific Unity systems for the type of game you want to make; for example, tilemaps and related systems are used to make platformers, spring joints are useful for physics games, ragdoll physics systems are useful to simulate character death when 3D character models feature prominently in a game.

Unity overview: https://www.youtube.com/watch?v=pwZpJzpE2lQ

New input system: https://www.youtube.com/watch?v=Yjee_e4fICc

I have experience with C++ but not C#; will we be taught C#?

In the Unity lecture, we will see basic usage of C#, but due to time constraints, the language can’t be taught in class. It’s a fairly simple language to pick up if you know object-oriented programming concepts from C++, and Unity tutorials will cover it well.

Will the final game demos be held in the final exam period?

Teams will demonstrate their game to their fellow students in the last couple of classes. This will allow students to get comfortable with presenting their work to others, fielding any questions that their peers may have, and also rate themselves against their peers’ games.

Sample game design document

Software

Documentation

Asset providers

Related reading and videos