Game Design and Development 2 is an in-depth course about Game Development. It covers selected topics such as AI in Games, the Game Design Process, Game Assets and Photogrammetry, Procedural Content Generation, Data Analytics and more. We recommend attending Game Design and Development 1 before this course.
The course consists of interactive presentations, guest lectures, individual assignments and a group assignment where you design and implement your own game.
This semester, most of the theoretical lectures will be held on-site in the i11 lecture hall. There is no mandatory attendance except for the course introduction lecture, the tutoring interviews and presentations.
This table shows when lectures are held and submissions are due. This semester’s schedule is subject to change, some dates will be updated based on current circumstances.
Green highlighted dates are mandatory!
|2023-03-10, Fri||[Lecture] Course Introduction and Recap (Slides)|
|2023-03-17, Fri||[Tutorial] Unreal Engine|
|2023-03-17, Fri||[I-00] Say Hello (Submission)|
|2023-03-24, Fri||[Lecture] Photogrammetry (Slides)|
|2023-03-31, Fri||[Lecture] Game Design Ideas and Juiciness|
|2023-03-31, Fri||[G-01] Group Registration, Game Idea (Submission)|
|2023-04-21, Fri||[Students] Game Idea Pitch and Discussion|
|2023-04-21, Fri||[I-01] Photogrammetry (Submission)|
|2023-04-28, Fri||[Lecture] VR Games|
|2023-05-05, Fri||[Lecture] AI for Game Design, Pathfinding|
|2023-05-05, Fri||[G-02] AI Topic Group Summary Slides (Submission)|
|2023-05-12, Fri||[Students] AI Topic Presentations|
|2023-05-26, Fri||[G-03] First Prototype (Submission)|
|TBA||[Tutoring Interview] First Prototype|
|2023-06-02, Fri||[Lecture] Advanced Game Design 1|
|2023-06-02, Fri||[G-04] QA Feedback (Submission)|
|2023-06-09, Fri||[I-02] Juiciness (Submission)|
|2023-06-16, Fri||[Lecture] Advanced Game Design 2|
|2023-06-23, Fri||[Lecture] Story and Puzzle|
|2023-06-23, Fri||[G-05] Full Game (Optional Submission)|
|TBA (September)||[Final Presentations]|
|TBA (September)||[G-05] Full Game (Submission)|
[I-00] Say Hello
Say hello on Discord! Let us know who you are on Discord by telling us your username in TeachCenter. Don’t forget to update your info in TeachCenter if you decide to change your Discord username during the semester. Please change your Discord nickname on the server to your first or full name so we can recognize you at a glance.
Create a 3d-model from a real object using photogrammetry. Preferably find a statue or other cool object at or around campus inffeld or a landmark of Graz. If you find another interesting object somewhere else, you may create a model of that object. Create a document that contains screenshots of your object, you may also include info about your 3d-scanning-process, or pictures of funny failed attempts.
Here are some nice models from the last years:
Succulent (by Upsitesdown)
Turtle (by Tmist3r)
Mini octopus (by hanamii)
Bird on a flower (by hofi_10)
Ancient statue (by thet0ast3r)
Stone (by CommodoreEU)
Photogrammetry is a technique that enables us to create 3D models based on photos of the object (usually a lot of photos). The used software can be freely chosen, most of the commercial packages feature trial versions which you can use for this task. Here’s a list of software we can recommend:
- Agisoft Photoscan/Metashape (trial available)
- Zephyr3D (free version available)
- visualSFM (free)
- MeshRoom (open source)
Since you’re supposed to take photos, a camera will also be needed. Luckily everything ranging from a DSLR to a smartphone camera works pretty well. However, we recommend the use of a DSLR camera. These articles compile a lot of useful advice on how to take great photos for photogrammetry: GDC Talk, Autodesk, Agisoft, Sketchfab
Most of the time photogrammetry creates very dense models, which aren’t very performant in a realtime/gaming/vr environment, so it is best practice to optimize the 3D models before using them in games. Depending on which software you decide to use you can either take a look at the built-in optimization tools (if applicable) or use external tools like MeshLab or Blender for optimization.
We will check your models for face count. We also expect your models to not have holes and to not include surroundings that are not part of your model.
A zip containing:
A document that contains 3 screenshots of your 3d-model, showing the model from front, top, and side respectively (i01-<your-matriculation-number>.pdf) and your 3d-model (i01-<your-matriculation-number>.[blend/obj/fbx]) in a format that can be opened by Blender 3.x to TeachCenter within the deadline in the schedule. Don’t forget the texture file if needed!
Optional: Upload your model to Sketchfab, a place to upload and view 3D models in your browser (or VR) without any additional plugins. Tag it with ‘tugamedev’, make sure to enter a few sentences of meaningful description and submit a link to it in TeachCenter.
Have a look at the talk Juice it or lose it by Martin Jonasson & Petri Purho and get inspired. We prepared a (rather minimal and barren) game inspired by classic arcade games. Your task is to make it juicy. You can add a selection of effects mentioned in the talk, such as color, easing (movement, scaling, …), animation effects, sound, particles, or camera shake. Feel free to get creative, you are not limited to the options in the talk, turn the game upside down, make a controller rumble, you name it! But remember, while you are allowed to change almost anything in the game, don’t change the fundamental mechanics of it, the game should still be recognizable as the same game. The goal is to make the game very juicy, but still keep it playable, in other words: Try to find a great amount of effects, but don’t overdo it!
Optional (bonus points): Overdo it! After finding and selecting effects that make the game very juicy but let the player stay sane while playing place a button that says “Overdo it!” in your game. A press of said button should juice things up to the next level.
Note: The quality settings of the project are set to ‘Ultra’ to make sure that rich effects stay visible in the final build. If you add a lot of effects and run into performance issues in the build you can try to update the quality settings to balance visual quality and performance.
Here are some juicy games from the last years:
Display your name or matriculation number somewhere in the game or on the page (at least for a few seconds in the beginning).
Once done implementing your game create a WebGL build, create a zip (i02-<your-matriculation-number>.zip) and upload it to TeachCenter within the deadline in the schedule.
Create a page hosting a playable build of your game. You’re responsible for uploading and hosting your WebGL build, we recommend using itch.io or github pages (create a user site if not done already and then create a project site for your game). Share the link to your page in TeachCenter.
Feel free to share your link (and test other games) in the public gdd2-2023 channel on Discord.
[G-01] Group Registration, Game Idea
- Form a group of 5 people and decide on a game idea that satisfies the details below. If you haven’t found a group yet you can find group members on Discord.
- Create a repository (e.g. on gitlab.tugraz.at) and add the tutors as maintainer.
- Create a document where you describe your idea and tell us about which technologies you plan to use in a few paragraphs. Create a rough effort estimate for your idea to make sure it is possible to implement the idea in this semester. You can also add some sketches. The document can later be used as a basis for your game design document.
- Also, decide on a fancy name for your group.
Your game idea must be based on a 3d-environment and the game must integrate the 3d-models of the photogrammetry assignment in the environment (creative integrations are allowed). Furthermore, an AI Concept (a list of concepts will be published for G-02) must be part of your game. Include some achievements that can be unlocked within your game.
Your game should include one of the concepts outlined below this section. If you can not integrate any of these concepts or if you have a different unique feature that you want to integrate in your game, contact the tutors before submitting your game idea.
Implement a virtual reality game. Most likely, we will be able to provide access to our VR equipment at Campus Inffeldgasse. Design your game with VR in mind. Depending on the regulations, we will be able to provide testing possibilities during summer.
If you have your own VR equipment, let us know for which VR platform you plan to develop in your game idea document.
Note: Take care that your game does not induce motion sickness (i.e. take care of locomotion design, stuttering, framerate, etc.), include interactions tailored to VR and make it as intuitive as possible.
Add networked multiplayer functionality. Ideally, think of an interesting concept for your multiplayer setup, such as asymmetric multiplayer. Keep scope in mind, especially certain types such as battle royale come with a lot of optimization and synchronization tasks. Try to come up with a concept that is implementable by your group given the time available.
Create a game that does not just use standard input hardware (keyboard, mouse, controller) in standard ways. Instead, design and use an alternative control mechanism. This option can also include some basic networking to connect your alternative inputs to your game. Crafting, DIY know-how and electronics tinkering skills are an advantage for this option. Your creativity is the limit, but here are some examples to give you a feel for what is meant by alternative inputs:
- Phone: Connect a phone via wifi or bluetooth and use the touchscreen in combination with some of the sensors (gyroscope, accelerometer, …) to control the game.
- Repurposed peripherals: Use other peripherals such as a microphone or a drawing tablet to control the game.
- Custom inputs: Disassemble an old keyboard and build a custom controller, or use some components from the maker toolbox to create custom input devices. Raspberry Pi, Arduino, mircropython and esp8266 are good platforms you can use as a starting point for your device.
- Make your game controllable via a sofa, house plant or banana.
The FabLab and E-Lab are great places for tinkering with custom hardware. Feel free to consult with electrical engineering students for this option.
Topics & Inspiration
You are free to choose the topic and genre of your game.
Keep important aspects such as race, gender, culture etc. in mind, should they be relevant for your game.
Motor (e.g. more than one type of input device), Cognitive (e.g. contextual in-game help), Vision (e.g. color blindness safe colors), Hearing (e.g. subtitles), General (e.g. difficulty levels). You can look up more details here.
Share the link to your repository on TeachCenter.
Create a PDF with the naming convention:
## is your group number, hence group 5 sends the file
First, enter your group in TeachCenter, then upload your file and enter your group name within the deadline in the schedule.
[G-02] AI Topic, Group Summary
As a group pick one of the topics and select it in TeachCenter (first come first serve, the start of the selection will be announced on Discord) and create a short presentation (max 5 slides) about how this concept can be applied in a game project and give examples. Create a short presentation (max 5 minutes) presenting and describing the concept (showing the slides). Every game project has to include at least one of the concepts. The descriptions of the other group members should help you choose which one you want to include (it is okay if several groups include the same topic in their game).
- Bayesian Networks
- Blackboard Architecture
- Command Hierarchy
- Decision Tree Learning
- Emergent Behavior
- Filtered Randomness
- Fuzzy Logic
- Genetic Algorithms
- Influence Mapping
- Level-of-Detail AI
- NGram Statistical Prediction
- Neural Nets & Perceptions
- Obstacle Avoidance
- Player Modeling and Reputation System
- Production and Trigger Systems
- Reinforcement Learning
- State Machines and Stack-based State Machines
- Smart Terrain
- Subsumption Architecture
- Terrain Analysis
Create a slide set for your presentation. Use the naming convention:
## is your group number, hence group 5 sends the file g-02-group-05.pdf.
Upload the video to TeachCenter within the deadline in the schedule.
[G-03] First Prototype
Create a prototype according to the topics and guidelines. The prototype should show what your game will look like (e.g. blockouts of levels) and it should demonstrate the core mechanics of your game.
Create a page for your game on itch.io, you do not need to upload a build yet, but add a short description and screenshots that promote your game.
Upload a zip file (
g-03-group-##.zip, is your group number) containing the build to TeachCenter and add a link to your itch.io page within the deadline in the schedule.
[G-04] QA Feedback
Test a game from another group. The QA Strategy section below outlines what to look out for during testing.
Provide a small report (.txt or .pdf file) with a list of issues you’ve found:
[ID / Type of issue (1-3) / Description of issue / Severity of this issue (A extremely bad – C nice to have) / Tips for improvement]
#4 / 1 / The game controls are not clear / B / Explain the controls on the start screen
#5 / 3 / Driving into a tree for 100 times crashes game / C / Find root cause for the crash
You should test the player experience, the usability, and QA (alias bugs).
Type 1: Player Experience (Game Design)
- Design good?
- Idea clear?
- Level too long/short?
- Do you understand the game?
Type 2: Usability
- Interface intuitive?
- Easy to use?
- Controls understandable?
Type 3: Quality Assurance (Severe Bugs)
- Test intensively
- Find bugs
Create a submission file with the naming convention:
## is your group number, hence group 5 sends the file
Upload the report to TeachCenter and send it to the other group via e-mail or Discord within the deadline in the schedule.
[G-05] Full Game
Fully implement your game and create a presentation for the final exhibition.
Short “pitch” (max. 4-5 minutes!) – try to “sell” your game/game idea. You can show your video or play the game live (or both if time).
Please bring your own equipment for the exhibition. In case you are missing hardware contact the tutors in advance.
Note: If the exhibition cannot be held at the university, all games will be collected in an itch.io game jam so that you can play all of the games.
readme.mdin the root of your repository with the following information, so that we can feature your games on the website:
(1) Game title + short game description
(2) Who worked on this game (all names + matr. nr)
(3) Technologies used
(4) Credits (don’t forget to also mention if you made anything by yourself!)
(5) Link to build for feature on website (such as on https://gamelabgraz.com/games/)
- Build and source code of your game
- Final Game Design Document
(don’t forget to mention which AI Topic you chose and how you implemented it in your game)
- 4-6 screenshots
- a small video of the gameplay (ca 2-3 minutes)
- The presentations will be held in person. Please create a trailer video which you can also use as part of your presentation.
Don’t forget to add your itch.io page to the game jam!
Upload all deliverables within the deadline in the schedule.
Update the details about your game on your itch.io page and join this year’s game jam. Don’t remove the prototype – just add the final build! We encourage you to upload the video and a build of your game to itch.io to make it available to a broader audience.
If you want to develop your game further and publish it not only within the scope of this lecture, we are happy to help and answer any remaining questions.
Links & More
Grading and Fine Print
Game Design and Development II is a lecture with integrated exercise (VU, continual assessment). If you do not submit any assignments (partial course requirements, Teilleistungen) you will be deregistered from the lecture. The examination is considered to have started when the assignment [I-01] Photogrammetry or any following assignment has been submitted.
You need to submit all assignments to receive a passing grade. Empty or zero-effort submissions do not count for this rule and will result in a failing grade.
Each assignment will be graded based on how accurately you fulfill the tasks of the assignment description. For game assignments the game design document, game elements, game design guidelines, usability, polishing, balancing and the presentation can be taken into account as well. For written assignments, the readability, formatting, and how precisely the topic got addressed can be additional decisive factors. For some assignments you might be able to earn bonus points, this is designated in the assignment description. The assignments are weighted according to the weighting table.
A total of 100% (excluding bonus points) can be achieved. Upon receiving 50% and more, the student receives a passing grade. The grading key denotes which percentage corresponds to which grade.
Partial course requirements are corrected after all partial course requirements have been completed.
Late submissions are not considered by default and will result in a point deduction. Contact the tutors (preferably before the deadline) if you cannot submit an assignment in time, we might be able to find a solution.
If you decide not to finish the course after submitting the first assignment considered in the examination contact the tutors so that the grouping can be updated. If there are any open questions feel free to contact us.
If you cannot attend on mandatory dates, contact the tutors beforehand.
If unauthorized aids are used or cases of plagiarism occur (e.g. a written assignment contains parts copied from another source or referencing is not done properly, any part of an assignment is copied from another student or group, or a game contains 3rd-party assets without proper attribution) a grade of “U (Ungültig/Täuschung)”, meaning that the grade is invalid, is given for the course (§5 TU Graz Statute Part Plagiarism). The student is then requested to attend a hearing, where they are confronted with the incident.
|>= 75||< 87.5||2|
|>= 62.5||< 75||3|
|>= 50||< 62.5||4|
Some lectures where recorded in the last years:
A collection of games created in previous GameLabGraz lectures
Your game goes here.
2022 GDD2 Games
2021 GDD2 Games
2020 GDD2 Games
2018 GDD2 Games
Johanna’s personal book recommendations and books the lecture draws inspiration from.
Jane McGonigal – Reality is Broken (+++)
One of my favorite books. Jane McGonigal gives some inspirations and ideas of how to use games in different contexts. Reads like a novel and avoids theoretical aspects.
Jesse Schell – The Art of Game Design (+++)
This is the book I am using a lot for my lecture. Very good summary of the most important design aspects from different points of view (technical aspects, player psychology, all different design things).
Scott Rogers – Level Up (2nd Edition) (+++)
Also a very good design on game design. I’ve especially enjoyed the bonus chapters with inspirational lists for environments, game mechanics, and different templates as an inspirational resource for your games.
Jeremy Gibson – Introduction to Game Design, Prototyping, and Development (++)
This book gives also a very nice introduction to game design techniques, but in a more practical manner. The main part of this book is a unity and C# tutorial.
Raph Koster – A Theory of Fun (++)
I simply love the style of this book. It has comics and sketches 😉
Flow – Mihaly Csikszentmihalyi (+)
Wonderful book (THE book) about the flow experience with neat examples from all different fields.
Katie Salen & Eric Zimmerman – Rules of Play (+)
Very interesting book on game design with a lot of practical examples.
[I-00] Photo by Tim Mossholder on Unsplash
[I-01] Photo by ShareGrid on Unsplash
[I-02] Photo by Daniele Levis Pelusi on Unsplash
[I-02] Fireworks effect based on work by Heather Allen (Wilcox)