GDD 1


Overview


About

Game Design and Development 1 is an introductory course about Game Design, Game Mechanics, Game Art, Game Engines, Gamer Psychology, and more.

The course consists of interactive presentations, guest lectures, individual assignments, and a group assignment where you design and implement your own game.

There is no mandatory attendance except for the course introduction lecture, the tutoring interviews and the final presentation.

DateEvent
2024-10-04, Fri[HS i11] Course Introduction (Slides)
2024-10-11, FriDefinition of Games, Play GameDevDojo
2024-10-11, Fri[I-00] Send Discord Names (Submission)
2024-10-18, Fri[HS i11] Game Engine Overview & Unity I (Slides) (Unity Game)
2024-10-18, Fri[I-01] GameDevDojo (Submission)
2024-10-25, Fri[HS i11] Unity II and I02 Framework
2024-11-08, Fri[HS i11] Game Design Overview
2024-11-08, Fri[G-01] Group Registration + Game Idea (Submission)
2024-11-15, Fri[HS i11] TBA
2024-11-22, Fri[HS i11] GIT Workflow + Project Management
2024-11-22, Fri[G-02] Game Design Document Draft (Submission)
2024-11-22, Fri[itch.io] Jam opening
2024-11-29, Fri[HS i11] Gamer Psychology
2024-12-06, Fri[HS i11] Game Art Overview
2024-12-06, Fri[I-02] Pokemon Game (Submission)
TBA[Tutoring Interview] Individual Assignments
2024-12-13, Fri[HS i11] Game Design Selected Topics I
2024-12-13, Fri[G-03] First Prototype (Submission)
TBA[Tutoring Interview] Development Progress
2024-12-20, Fri[HS i11] Testing of Games
2025-01-10, Fri[HS i11] Game Design Selected Topics II
2025-01-17, Fri[HS i11] Game Design Selected Topics III
2025-01-17, Fri[G-04] QA Feedback (Submission)
2025-01-24, Fri[HS i11] Game Design Selected Topics IV
2025-01-31, Fri[G-05] Full Game (Optional Submission)
2025-02-28, Fri[G-05] Full Game (Submission)
2025-02-28, Fri[itch.io] Jam closing
TBAFinal Presentation

Schedule

This table shows when lectures are held and submissions are due. This semester’s schedule is subject to change, some dates and locations might be updated based on current circumstances.

Green highlighted dates are mandatory!

You also have the option to submit your group game to our itch.io jam. While there’s no obligation to publish your group games there, we would be thrilled to see many of your creations featured! 🙂

You may also take a look at our game collection, featuring our previously hosted game jams.


Individual Assignments (40%)


[I-00] Say Hello (required)

Say hello on Discord! Let us know who you are on Discord by telling us your username in TeachCenter. Then we can assign you the according role for the current semester. You can also use your first or full name as a nickname for the Discord server if you want to. Discord will be our primary announcement source, as well as a forum for asking and answering questions. You can find a link to our Discord server on TeachCenter.

[I-01] Game Dev Dojo (5%)

Task Description

Play the educational game GameDevDojo. The game is designed to guide users through key principles of game development by interacting with predefined game objects, adding components, and adjusting settings to solve challenges. This process offers a hands-on experience with real-time feedback to enhance your understanding of game development mechanics.

The GameDevDojo-Application can be found and downloaded here.

Instructions:

  1. Start the Game
    • Launch GameDevDojo and enter your matriculation number to begin.
    • You must complete lower levels to unlock higher ones progressively.
  2. Level Progression
    • For each level, manipulate the predefined game objects by adding components or adjusting settings according to the level objectives.
    • Upon completing a level, you will receive an individual code that you must submit as proof of completion.
  3. Game Components and Interactions
    • The game provides a separate view for selecting new components to add to game objects.
    • Access descriptions of components by clicking the help icon (?) next to each option.
    • To add a component:
      • Click on a game object to open its settings in the component view.
      • Select a component from the dropdown and press the “add” button to attach it to the object.
    • Modify settings by selecting/unselecting or enabling/disabling components in the component list.
  4. Feedback and Subtasks
    • If you correctly configure a component, the game will provide visual feedback (a confetti effect near the help button) to indicate that you’ve completed part of the task.
  5. Help and Guidance
    • Click on the “help” button in the lower-left corner to open a help view that provides additional guidance.
    • The help view displays the accomplishment status of each game object and its required components:
      • A green indicator shows a fully configured object.
      • A red indicator means components are missing or misconfigured.
    • Use the help feature to check for missing components, or incorrect configurations, or to get more information about specific components.
  6. Level Completion
    • Ensure that all necessary components are added and configured accurately to complete the level and receive your unique completion code.

Submission

In TeachCenter, submit the code you received upon completing the highest level you solved (e.g. level 5). This is required in order to receive the assignment points.

[I-02] Pokémon Game (35%)

Task Description

For this task, you have to create a Pokémon-like game in Unity. Working with a provided framework (that can be found in TeachCenter), you must extend the project by implementing the features listed below. This will give you a better understanding of working with an already existing project and how to expand it.

The framework given to you is based on this YouTube playlist. Feel free to add further content besides the given tasks. In case you need general help with the basic functionality of Pokémon and its content, you can visit this site.

As a sidenote, if you want to progress with the dialogue or confirm a selection the ‘Z’ or ‘Y’ key must be pressed, depending on your keyboard settings. The framework can be found on TeachCenter.

Before you start…

Note that it is mandatory to list credits in your game! Even if you made all (or some) assets yourself, put yourself on the list. We should be able to locate all the assets you used online through the credits you provide (do not just reference a website). You may bind a key to open a seperate canvas listing all credits.

Before you start, create a private repository on gitlab.tugraz.at and add the tutors as maintainer. (Florian R. Wohlmuth, Emma Stettner)

Game Design and Development is a Master’s course within the field of computer science, so we expect everyone to be proficient with Git. Please be aware that points will be deducted if the following criteria are not met:

  • ) Meaningful commits: The repo should show multiple commits, which also indicate the progress that was made along the way. A minimum of five commits is expected.
  • ) Invalid project: Furthermore, we expect the repo to be a functional Unity project at all times.
  • ) Maintainer assignment: Make sure to set an appropriate duration for the role of maintainers. For the entirety of the course, we (the tutors) need to be able to access your repository.

Game Implementation (30%)

The following three features must be implemented (12% in total):

  • ) New Pokémon and Moves (4%): Choose your favorite Pokémon and the most interesting attacks you know and bring them into the game. The Pokémon, as well as the moves, can be taken from newer or older game generations (- you can find all the sprites here). You can also come up with your own ideas. Make sure to create two new Pokémon, and two new moves.
  • ) Additional Pokéball (3%): Some Pokémon require special Pokéball in order to catch them more easily. Implement three new Pokéball. In case you need an overview, here is a list of all known Pokéball in the games. In this task, you may also use your creativity and come up with your own designs and purposes. However, please ensure that each creation delivers a meaningful input to the game. We cannot give you points for this task if we cannot figure out, what purpose the Pokéball serve or if we cannot test it. Every Pokéball must be in the inventory and ready to use from the very beginning.
  • ) New Area (5%): Adding new areas will introduce an explorative aspect to the game, making it more distinctive and therefore more fun. With this task, you have to implement one unique area of your liking. This can be a desert, a new city, a snow area, or whatever you can come up with. Here it is important to use a different tileset (different textures). The Pokémon spawning must also differ. Different region – different Pokémon encounter. You can either use the ones you created or opt for existing ones. It is also very important that the new area is not too small. It should be at least as large as a full screen. Furthermore, the user should be able two switch between the two regions at any given time and must not be stuck in one.

Additionally, you need to choose three of the following features to implement (18% in total):

  • ) Gym and badge (6%): To make your game more challenging, implement one gym. Like in the original games, you must also be able to earn a badge, once the gym leader is defeated. Thus, an implementation of a showcase of the user’s badge is needed and should be available at all times (out-of-combat only). The gym leader may only be defeated once and you only gain the badge in case you win. The gym itself must be an indoor-area. There’s no requirement to include a labyrinth, puzzle, trainers, etc. before the gym leader battle, but you’re welcome to add them if you’d like.
  • ) Map (6%): The bigger the map, the more confusing orientation can become. To help the player out, you can implement a map showing the current position of the player in a top-down view. The player should be indicated in some form, e.g. sprites. The map should also display the names of the routes and different areas. It is up to you, if you want to create a static map which is always shown in the corner of the game, or create a functionality to show it full-screen via a button click. Make sure the map has an appriorate size and is reasonably zoomed in on the player (do not just show the entire map). However, don’t zoom in on the player too much, as that would defeat the purpose of the map. There is also no need to show the map during combat or indoor regions – so don’t.
  • ) Weather (6%): Add one dynamic weather condition (e.g., rain, snow) that affects the battle mechanics. Some Pokémon perform better in specific conditions (like Water-type Pokémon in rain), while certain moves might be stronger or weaker. Implement region-specific weather conditions that change over time – sometimes sunny, sometimes rainy, sometimes nothing special is happening. The weather should not affect the entire map but rather a single region or parts of it. Furthermore, there must also be full-screen visuals (like in the original games) out-of-combat, as well as in-combat. You may want to consider particles. Weather in-combat should only show when the text message stating its effect is displayed (like in the original games). If you are unfamiliar with the original weather design of Pokémon, you may want to check out this video. Especially the first few minutes can be very helpful to get a grasp of the idea. It is not required to implement a move that changes the weather condition during a fight, but once again, you are welcome to implement such a move nevertheless.

    DEBUG MODE: Implement the possibility to toggle this feature (e.g. via button click). The tutors should be able to test the functionality without the need to wait for it. This debug mode must only be available in the debug build. You can take the already implemented debug mode as a reference.
  • ) Day/Night Cycle (6%): Add a day/night cycle with some additional features . You are required to introduce special events at specific times. Some trainer battles, as well as the spawning of certain Pokémon, must only be available during the night. The map should also visually indicate wheater it is night or not by making every outdoor region slightly darker. Lastly, also add a clock which shows the current in-game time (may differ from real time). Based on that set the day/night-cycle accordingly. The clock may be visible at all times (except in-combat) or be viewable via button-press; similar to the map. If you want to get some inspiration, you may want to check out the clock from Stardew Valley. Note that for this task, it is only required that the clock shows the time (not the current weather or such).

    DEBUG MODE: Implement the possibility to toggle this feature (e.g. via button click). The tutors should be able to test the functionality without the need to wait for it. This debug mode must only be available in the debug build. You can take the already implemented debug mode as a reference.
  • ) Following Pokémon (6%): Some of you may know that there are some generations out there, where the first Pokémon in the team used to follow the user. Now this will be your task to implement. The sprite of the very first Pokémon is supposed to follow the steps of the player. The Pokémon must have some kind of running animation (use of animation / different sprites) and must follow the steps of the player. It is NOT sufficient, if it simply floats behind the player or even moves diagonally. The player can’t do this, so their Pokémon can’t either. The Pokémon is also supposed to stop behind the user and not run into them. This follow-procedure must be done with every in-game available Pokémon (also self-added one). So, any Pokémon which is first in the team and has more than zero HP must be able to follow the player.

Report (5%)

In addition to two Windows builds, you must also submit a report of the game. This report should cover all the features you implemented, including some pictures for each one. Also give a short description of the implementations. Only features mentioned and descriped in this report will be count as completed (e.g. special features of Pokéball). It is not necessary for this report to be done exceptionally well. However, it should be logically structured, well-organized, and easy to understand.

Submission

Once done implementing your game, create two Windows builds. One release version, one debug version and upload two independent zip-files containing the builds and the report on TeachCenter within the deadline in the schedule.

The zip-files should be called i02-pokemon-release-########.zip and i02-pokemon-debug-########.zip. The report shall be named i02-pokemon-report-########.pdf.

######## is your matriculation number, for example i02-pokemon-release-12345678.zip, i02-pokemon-debug-12345678.zip and i02-pokemon-report-12345678.pdf.


Group Assignments (60%)


[G-01] Group Registration, Game Idea (required)

Task description

Form a group of four people and decide on a game idea that satisfies the topics and guidelines. If you don’t have a group already, you can find group members on Discord.

Create a repository on gitlab.tugraz.at and add the tutors as maintainer. (Florian R. Wohlmuth, Emma Stettner). Consider the criteria which were mentioned before (also in terms of listing credits).

Describe your idea in a few sentences, you can add a small sketch if you want to. Also, decide on a fancy name for your group. The description should provide a general overview of your game, offering enough detail to give readers a clear sense of its core concept, gameplay mechanics, and overall theme. Please don’t forget to also state your topic in the report.

Topics & Inspiration

This year the main topic is Shift of Perspective. Your game should include this topic in some way. You are free to interprete it to your liking. However, if you are unsure whether your idea fits the narrative, don’t hesitate to ask the Tutors for confirmation.

Besides the main topic, you must also choose one of the topics listed below. The game should be based around your selected topic. If any questions regarding the topics arise, feel free to ask during lectures or directly on Discord. This semester’s topics are:

  • ) Science
  • ) Nature
  • ) Mental Health
  • ) Astronomy

Note: Every topic can only be picked by a certain amount of groups. Here counts – First Come, First Served. The selected topic is determained by the selected group on TeachCenter.

Guidelines

Your game must cover the following topics in some way:

  • ) Diversity: Keep important aspects such as race, gender, culture etc. in mind.
  • ) Accessibility: 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 draw inspiration from here.

Submission

Create a PDF with the naming convention:
game-idea-##.pdf

## is your group number, hence group 5 sends the file game-idea-05.pdf.

First, join your group on TechCenter, then upload the file and enter your group name within the deadline in the schedule.

[G-02] Game Design Document Draft (5%)

Task Description

Use the Game Design Document Template to create the first draft of your game design document. Keep the topics and guidelines listed above in mind. Don’t forget to change the title page and add a short abstract as well. This document should be adapted the further you progress in the project, e.g. usage of new tools. Doing so during developement will heavily decrease the needed effort at the end of the project. The Game Design Document must represent the final state of the game at the end of the course (see [G-05] Full Game for more information).

It is also mandatory to track your time. You must be able to compare the estimated time with the actual needed time at the end of the course.

Submission

Create a PDF with the naming convention:
game-design-doc-draft-##.pdf

## is your group number, hence group 5 sends the file game-design-doc-draft-05.pdf.

Upload the file to TeachCenter within the deadline in the schedule.

[G-03] First Prototype (15%)

Task Description

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.

We don’t expect a fully fletched game, however, we do expect that every prototype shows the core mechanics in form of a playable level. You may want to focus more on the mechanics than on textures for this prototype.

Create a page for your game on itch.io, and add a short description and screenshots that promote your game. If you want to make it private, make sure to submit a link that can view the game nevertheless.

Submission

Upload a Windows build to TeachCenter and add a link to your itch.io page within the deadline in the schedule. The zip folder of the build should be called prototype-##.zip.

## is your group number, hence group 5 sends the file prototype-05.zip.

[G-04] QA Feedback (10%)

Task Description

Test a game from another group. The QA Strategy section below outlines what to look out for during testing. You should test the player experience, usability, and QA (alias bugs).

Provide a small report (.pdf) 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]

You should list at least 10 findings.

Example:
#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

Your group will be assigned to another group. This will happen via an announcement on Discord. Once you know your partner group, it is your duty to get in contact with them and trade games. You may use the corresponding GDD channel directly on Discord. If your partner group should not respond, please contact the tutors.

QA Strategy

Type 1: Player Experience (Game Design)

  • Fun?
  • Confused/bored/frustrated?
  • Design good?
  • Idea clear?
  • Mechanics?
  • 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

Submission

Create a PDF with the naming convention:
qa-##.pdf

## is your group number, hence group 5 sends the file qa-05.pdf.

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 (30%)

Task Description

Fully implement your game and create a presentation for the final exhibition. There are (almost) no concrete requirements of what the final game must include, since every game varies.

HOWEVER, every game must include sounds (SFX) and music. All in all, the game should be well-rounded. If during development, you realise that time is becoming short, you must leave features behind. Logically, core mechanics MUST remain.

Presentation
Short “pitch” (max. 4-5 minutes!) – try to “sell” your game/game idea. The presentation should contain 4-6 screenshots and a video of the gameplay. The video should only show the most crucial parts of the game (max 1 minute). For the submition on TeachCenter, the video should be 2-3 minutes long showing a short gameplay section (also including the crucial parts).

Exhibition
Please bring your own equipment for the exhibition. In case you are missing hardware, contact the tutors in advance. If the exhibition cannot be held at the university, there will be some kind of online exhibition.

Deliverables

  • Final Game Design Document as PDF
    • It must represent the final state of the game
      • Actual implemented UI
      • Used tools and needed hardware
      • Active Controls
    • No future tense ala “It will have X” but rather “X was implemented
    • Comparison of estimated time and actual needed time
  • Your group presentation
    • 4-6 screenshots
    • a small video of the gameplay (ca 2-3 minutes)
  • Windows build and source code (full Unity project) of your game

Submission

Upload all deliverables to TeachCenter within the deadline in the schedule. The build and source code should be submitted in zip-files called full-game-##.zip and full-game-source-##.zip, and the group presentation must be named presentation-##.[pptx, pdf, ...].

## is your group number, hence group 5 sends the file full-game-05.zip, full-game-source-05.zip and presentation-05.pptx.

Update the details about your game on your itch.io page and – if you want to – join this year’s game jam. 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

Overview

Game Design and Development is a lecture with integrated exercises (VU, continual assessment). You will be deregistered from the lecture if you do not submit any assignments (partial course requirements, Teilleistungen). The examination is considered to have started when the assignment [I-01] GameDevDojo or any following assignment has been submitted.

You need to submit all assignments to receive a passing 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 presentation can also be considered. The readability, formatting, and how precisely the topic was addressed for written assignments can be additional decisive factors. For some assignments you might be able to earn bonus points, this might be 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% or more, the student receives a passing grade. The grading key denotes which percentage corresponds to which grade.

Note: Individual part and group assignment must both be completed positively (>= 50%)!

Late submissions are not considered by default. Contact the tutors (before the deadline) if you cannot submit an assignment in time, we might be able to find a solution.

Partial course requirements are corrected after all partial course requirements have been completed.

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.

Plagiarism

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, 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.

Weighting

I-015%
I-0235%
Group Assignments60%

Grading Key

Percentage/PointsGrade
>= 87.51
>= 75< 87.52
>= 62.5< 753
>= 50< 62.54
< 505

Game Collection

Book Recommendations

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.

Attributions

[I-00] Photo by Tim Mossholder on Unsplash
[I-01] Photo by Aidan Granberry on Unsplash
[I-02] Drawing by Tutor Emma