GDD 1 (2021/22)


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.

This semester, most of the theoretical lectures will be held online. The lectures will be streamed on Twitch, and discussions will take place on Discord. Fridays, we will hold tutorials and interactive Q&A sessions at the university. Those will also streamed on WebEx. There is no mandatory attendance except for the course introduction lecture, the tutoring interviews and the final 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.

DateEvent
2021-10-06, Wed[Online Lecture] Course Introduction (Slides)
2021-10-08, Fri[Hybrid] Q&A in Lecture Hall
2021-10-08, Fri[I-00] Send Discord Names (Submission)
2021-10-13, Wed[Online Lecture] About Games, Game Prototyping, Game Design Document (Slides)
2021-10-15, Fri[Hybrid] Tutorial: Unity Basics (Group 1) (by Georg, Michael, and Sebastian) (Slides)
2021-10-20, Wed[Online Lecture] Game Dev Process (TBA: Slides)
2021-10-22, Fri[Hybrid] Tutorial: Unity Basics Q&A (Group 2) (by Georg, Michael, and Sebastian)
2021-10-27, Wed[Online Lecture] Game Engines Overview (Slides)
2021-10-29, Fri[I-01] Mini Game (Submission)
2021-10-29, Fri[Hybrid] Tutorial: Unity Pitfalls (by Georg, Michael, and Sebastian)
2021-11-03, Wed[Online Lecture] Game Design Overview + Time Estimation (TBA: Slides)
2021-11-05, Fri[Hybrid] Q&A in Lecture Hall (moved)
2021-11-05, Fri[G-01] Group Registration + Game Idea (Submission)
2020-11-10, Wed[Hybrid] Tutorial: GIT Workflow (by Georg, Michael, and Sebastian)
2020-11-10, Wed[Online Lecture] Gamer Psychology (Slides)
2021-11-12, Fri[G-02] Game Design Document Draft (Submission)
2021-11-12, Fri[Hybrid] Tutorial: Intro to Game Art 🎨 (by Erin, Saeed)
2021-11-17, Wed[Online Lecture] AI and Data Analysis in Games (Slides)
2021-11-19, Fri[Tutoring Interview] Game Design Document Draft
2021-11-24, Wed[Online Lecture] AI in Games (Slides)
2021-11-26, Fri[Hybrid] Tutorial: Intro to Game Art Part 2 🎨 (by Erin, Saeed)
2021-11-26, Fri[I-02] Talk Summary (Submission)
2021-12-01, Wed[Online Lecture] Testing of Games (Slides)
2021-12-03, Fri[Hybrid] Q&A in Lecture Hall (online)
2021-12-15, Wed[Online Lecture] Security in Games (TBA: Slides)
2021-12-17, Fri[G-03] First Prototype (Submission)
2021-01-07, Fri[G-04] QA Feedback (Submission)
2020-01-14, Fri[Tutoring Interview] Development Progress
2021-01-19, Wed[Online Lecture] Security in Games (Slides)
2021-01-26, Wed[Online Lecture] Topic TBA (TBA: Slides)
2021-01-28, Fri[G-05] Full Game (Optional Submission)
2021-03-04, Fri[G-05] Full Game (Submission)
2021-03-04, FriFinal Presentation

A YouTube playlist with all lectures can be found here.


Individual Assignments


[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. You can also use your first or full name as nickname for the Discord server if you want to.

[I-01] Mini Game

Task Description

Create a classic little 2D side-scrolling shmup (“Shoot’em up”, think R-Type, Gradius, etc.) game with Unity to get a hold of game development basics.

The basic features the game has to contain are:

  • Player Character moving from left to right through the level in a side scrolling manner
  • Ability for the player to move freely within the bounds of the level (Arrow Keys or WASD)
  • Ability for the player to fire projectiles
  • Enemies entering the screen from the right hand side
  • Lose condition: enemies can destroy the player character (either with projectiles or by collision)
  • Win condition: You’re free to choose either a highscore based system where the player plays endlessly until they reach the lose condition or a level based system where the level is won at a certain point
  • Display a start screen or text overlay at the beginning with the following information: Your name, your matriculation number, which 2 extension features you implemented (see below for more information), and how the controls in your game work

For this task we would recommend using Unity 2019.4.x LTS or 2020.3.x LTS (Long Term Support) version. The visual assets and sounds can be created by yourself in any way you like or you can use freely available asset packs (if the license allows it and you credit the creator correctly).

You’re free to use any literature or tutorials to complete this task, one tutorial we’d recommend as a starting point is this one. Albeit written for an older Unity version it should easily be possible to adapt to a current version.

Extensions

We’ve come up with a pool of 10 additional features to implement with the basic shmup gameplay. Every student has to choose 2 features to implement, based on the following rules:

  • Implement the feature with the number corresponding to the last number of your matriculation number!
  • Implement one other feature out of the list which you are free to choose.

List of additional features:
Note: The following special projectiles are separate from the basic projectile

  • 0) Homing projectile: Implement a special projectile which automatically targets and steers towards the nearest or a randomly chosen enemy. The visuals for this one should be different from regular or other types of projectiles.
  • 1) Exploding projectile: Create a special type of projectile which explodes if it hits an enemy and then does area damage, which means it hurts every enemy within a certain radius from the impact point. Choose visuals which clearly communicate to the player where damage is applied.
  • 2) Fire projectiles: The feature adds the ability to the player character to shoot fire projectiles. An enemy hit by a fire projectile takes damage over the timespan of 2 seconds. The visuals should show that state accordingly (“enemy on fire”).
  • 3) Ice projectiles: The feature adds the ability to the player character to shoot ice projectiles. An enemy hit by an ice projectile is unable to move for 2 seconds. The visuals should show that state accordingly (“enemy frozen”).
  • 4) Laser weapon: Implement an additional laser weapon which fires a continuous ray across the screen for 2 seconds, every enemy touched by the ray takes damage. Has a recharge time of 4 seconds.
  • 5) Enemies dodging projectiles: The feature adds the ability to the enemies to dodge incoming projectiles. Edit: Dodging needs to be a reaction to player projectiles, moving the enemy out of the way. Teleportations are also allowed if they are visually distinguishable as a mechanic and do not create other problems, like enemies teleporting into the player. Random movement does not count as dodging.
  • 6) Ship selection: Add a simple player character selection screen with 2 choices before starting the game. The 2 selectable player characters should be different in regards to visuals as well as moving speed and projectile damage.
  • 7) Shrink item: The feature adds the ability to the player character to pick up a randomly spawning item by touching it and pressing a button at the same time. Alternatively you can also let the player collect the item (by touching) and press a button to activate it. The item hereby shrinks the player to half their size on picking it up.
  • 8) Time Stop collectible (á la Matrix): This feature adds a randomly spawning item that the player can pick up by touching it. The item itself stops the time for 5 seconds and lets the player shoot the enemies meanwhile.
  • 9) 2 Player local coop mode (No networking!): Include a 2 player mode, with 2 character players on the screen at once, both controllable via the same keyboard for 2 players sitting next to each other. The players play together against enemies to complete the game.

Bonus

  • 3 seconds time rewind (“Braid”).
  • Add an Assassin’s Creed themed mechanic
  • Use your own Sprite Shader like “Outline”, “NormalMap Lightning”, “Sprite Deformation”, “Ghost Trail”, …
  • Use a parallax effect for the background.

Performance

The target frame rate is 30 FPS or more on a PC built from the most used gaming hardware in the most recent Steam Hardware Survey. To measure the FPS just use the package provided in Discord. Make sure that you achieve the target frame rate in the WebGL build before submitting your game. Edit: The FPS script needs to be included in the build, otherwise, points will be deducted.

Submission

Once done implementing your game, deploy a WebGL build. You’re responsible for uploading and hosting your WebGL build, we recommend using itch.io or github pages. Enter the link to your WebGL build and upload a zip containing the build on TeachCenter within the deadline in the schedule.

[I-02] Talk Summary

Task Description

Watch and summarize a GDC talk. Select a talk you are interested in from the list of talks in Teach Center and use the template to summarize it.

Submission

Create a PDF and .tex file with the naming convention:
talk-summary-#.pdf
talk-summary-#.tex

If you added images to your document please zip your files and include them in the submission.

# is your matriculation number, hence a student with matr. nr. 012345678 should hand in the files:
talk-summary-012345678.pdf
talk-summary-012345678.tex
Optional: talk-summary-012345678.zip

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


Group Assignments


[G-01] Group Registration, Game Idea

Task description

Find a group of 4-5 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. 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.

Topics & Inspiration

The inspirational topics for 2021/22 are:

Topic 1: Hallstatt

Topic 2: Sustainable Development

Topic 3: Archaeology

Topic 4: #TUGameDev Space Program

Topic 5: Shift of Perspective

Your game idea should touch one or more of these topics (creative ways of touching a topic are possible). Details about the topics will be given in the respective lecture.

Guidelines

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, enter your group on TechCenter, then upload your file and enter your group name within the deadline in the schedule.

[G-02] Game Design Document Draft

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.

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

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.

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.

Submission

Upload the build to TeachCenter and add a link to your itch.io page within the deadline in the schedule.

[G-04] QA Feedback

Task Description

Test a game from another group. The QA Strategy section below outlines what to look out for during testing.

Provide a small report (.txt file, or Excel sheet) 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]

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

You should test the player experience, usability, and QA (alias bugs).

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-##.[txt/csv/xlsx]

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

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

Task Description

Fully implement your game and create a presentation for the final exhibition.

Presentation
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).

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

  • readme.txt with the following information, so that we can feature your games on the website:
  • (1) short game description
    (2) who worked on this game (+ matr.nr)
    (3) Technologies used
    (4) Credits
    (5) Link to build for feature on website (such as on https://gamelabgraz.com/games/)
  • Final Game Design Document as PDF
  • 4-6 screenshots
  • a small video of the gameplay (ca 2-3 minutes)
  • if no presentations can be held live, a trailer video for your game (see Announcements channel on Discord for more information)
  • Build and source code (full Unity project) of your game

Submission

Upload all deliverables to TeachCenter within the deadline in the schedule.

Update the details about your game on your itch.io page and 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). 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] Mini Game 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 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. 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.

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-0115%
I-0215%
Group Assignments70%

Grading Key

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

Game Collection

A collection of games created in previous GameLabGraz lectures

Your game goes here.
2020/21 GDD1 Games
2020 GDD2 Games
2019 GDD1 Games
2018 GDD2 Games
2017 GDD1 Games

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] Photo by Headway on Unsplash