Golden Master

During the last week of class, you will present the “final” release of your game. This will be your last presentation before the GDIAC Showcase, which will be a week-and-a-half later.

We call this presentation golden master for two reasons. First, the purpose of this release is to ensure that you can ship your game with an installer. Far too many people leave packr up until the last minute before Showcase, and then struggle to get a build that works. This was a disaster in the COVID years when we our Showcase was entirely online. And even though we are in person this year, we want a test build now.

The other purpose of this release is to give you one last round of feedback before your final submission at Showcase. In general, the game that you present as your golden master should be something that you are comfortable making available for download. If you have to drop the class to finish your other classes, this should be a release you can live with. But we will make one last round of grade predictions from this release, so that you can use it to earn the grade that you want to earn.

Table of Contents


Presentation Format

There will not be any separate design presentation this time. If it is not in the game then it does not exist (and we assume that it will never exist). Most of your presentation should be spent playing the game. You should take us through the early levels and discuss how your level progression works. We have seen individual levels from you; now we want to see how they fit together.

However, for this presentation, we have a new rule. Everyone on the team must take a turn talking during the presentation. This is the end of a team effort, and we are not allowing the presentation to be the voice of one person. Ideally, each of you should talk about something in the game that you did that you were really proud of. However, we will leave the division up to you. It is only okay for someone to not talk during the presentation if that person is the one giving the postmortem.

Postmortem

The last 3 or so minutes of your presentation should be a slide presentation that provides a postmortem of your game production. A postmortem is a review of your game development process. In the postmortem, you identify the following:

  • What you wanted to do at the very beginning.
  • What you were actually able to achieve and how it differed.
  • What prevented you from achieving those goals.
  • What you would have done differently if you could do it again.

To give you some idea of the types of questions you should be answering, here are some postmortems for a couple of commercial games. These are clearly essay format, which is not what we want. We just want slides from you with the high-level bullet points. In other words, your slides should look like the bolded parts of these essays and you should talk about the non-bolded parts.

Baldur’s Gate: Enhanced Edition

This is a postmortem for the relaunch of the classic RPG Baldur’s Gate (published in 2000) on tablets and modern OS’s. The sequel to this game (which was released for tablets by the same team) is considered by many people to be one of the greatest western RPGs ever made (until the sequel came out in 2023, that is).

Rocketbowl

This independent game was the 2005 winner for Technical Excellence at the Independent Games Festival. It is simple and straight-forward.

Oasis

Oasis was the winner of the IGF’s 2004 Game of the Year and Innovation in Game Design awards in the web/downloadable category. It has also been used as a case study in past semesters of this course.


Presentation Schedule

The last week of class is abbreviated, with only two days of class. This is not enough time to fit in all the presentations. We either need to move some presentations to the second week of class (giving you less than a week to revise your beta releases) or we need to hold a make-up class. To make if fair to everyone, we are going to do what we did last year. We are going to hold a make-up session Tuesday 7:45-8:35pm in Phillips 101.

We expect everyone at this make-up class unless you have a legitimate excuse such as as obligations to an employeer. If you do have an excuse, please contact the instuctor so that it is not held against you.

So that know when to bring your demonstration, the presentation schedule is as follows:

Monday (May 5)

  • Team Bloom (Chroma Chameleon)
  • Greek Frog (Deadalus)
  • The Co11ective (FrostBitten)

Tuesday (May 6)

Section 201 (11:15-12:05)
  • Studio G15 (BeyondWoods)
  • Walk ‘n Roll (Zoodini)
  • Bilge Rat Studios (Pirat)
Section 202 (12:20-1:10)
  • Fachoi Studio (ToyMare)
  • The Seekers (The Gilded Flame)
  • Walker Warriors (Cartastrophe)
Make-Up Session (7:30-8:20pm, Phillips 101)
  • AQUOKKALYPSE (DreamWalker)
  • Team 6E-2 (Super Food Chain)
  • Sky Studios (Gone Astray)

Release Format

As with previous releases, you will need to provide us with another playable release so that we can give you feedback. But a golden master is different. The title of this release indiates that you have put the game in the state that you can release it (e.g. placing it on a physical DVD or getting it authorized for download). That means no jar files. We want a proper executable.

Isn’t a JAR file executable? It is if you have Java installed. But you cannot assume that everyone has Java installed on their computer. Or that they have the right version of Java installed (these days they very likely do not considering how fast Java is moving). In fact, many of you have seen the errors that can happen if you run a JAR with a different version of Java than the one used to compile it.

That is why you need to make a version of your game that packages it with the correct Java runtime. That is the purpose of jpackage. This tool combines your application with a specific version of Java so that a person running the application uses exactly that version. This guarantees uniform performance across all computers, no matter what the person has installed.

To create a jpackage executable, you need a very recent version of Java. Our testing has shown that the versions provided by IntelliJ are not sufficient. We recommend that you download OpenJDK 24 for this. You do not actually have to install this version. You can just put it in a local directory and run jpackage from there. On macOS you would use the command

jdk-24.0.1.jdk/Contents/Home/bin/jpackage

while on Windows you would use the command

jdk-24.0.1.jdk\bin\jpackage

Note that jpackage will only build an executable for the platform that you run the tool from. So you need a Macintosh to make a macOS release and a Windows machine to make a Windows release. Ideally, we would like a release for both platforms if at all possible, but let us know if this is a hardship.

To create the executable, you need to create two directories, the input directory and the output directory. We are going to assume that you have called these input and output, respectively. Put your JAR file created by IntelliJ in the input directory. If you have any assets that are not part of the JAR, they also need to be in this directory as well (though we advise against doing this). Once you have done this, run the jpackage command from the parent directory with the inputs shown below. Make sure to substitute your game and JAR file names where appropriate.

jpackage --input input --dest output --main-jar YourGame.jar \
         --name YourGame --type app-image

On macOS, you need to add one more option, namely

--java-options "-XstartOnFirstThread"

While the latest version of LibGDX does not require you to add this to IntelliJ, it is required for jpackage.

For more information on jpackage, we recommend that you read this tutorial as well as a detailed breakdown of the supported options. One additional feature that would be nice (but is not required) would be an icon for your executable. You can add this with the --icon options. Icons use the ICO file format on Windows and the ICNS format on macOS. There are online tools for creating an ICO from a PNG. For macOS, there are free apps on the App Store for creating ICNS files from a PNG.


Submission

Due: Wed, May 07 at 11:59 PM

As we said above, we want a proper executable created by jpackage. If at all possible, we want releases for both Mac and Windows. Please make sure that your executables run before submitting them. If your executables crash on launch, we will deduct points from your release.

In addition to the release, we would like your slides that you made for the presentation. Submit a file called postmortem. This file should be a PDF, just like all other documents. We will give you a place in CMS to submit this.

Finally, you should not forget to turn in your last two week report. This will help us in determining final grades at the end of the course.