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. An online Showcase is not going to work if we do not have proper installers. So 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 4 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.

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

This presentation is going to be much more involve than previous ones. Because your game is done, we want to spend a lot of time on each game giving you critiques and detailed feedback. That means that we only have time for two presentations per class, instead of the traditional three. As a result, we will presenting all week long, even in section.

The last day of class will be used for playtesting. This will be the last official time to get player feedback on your game. If you want to playtest after that time, you are on your own for distributing the game and gathering players.

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

Monday (May 10)

  • Change in Charge (Studio Baguette)
  • What the Flock! (Small Red Studios)

Tuesday (May 11)

Section 201 (11:20-12:10)
  • Luce (TODO Studios)
  • Unearther (Grass Jelly Games)
Section 202 (12:25-1:15)
  • Lucid (Just Wanna Have Fun)
  • HoneyHeist (We <3 Unity)

Wednesday (May 12)

  • Sisyphus (Squiggly Starfruit Studios)
  • Graveyard Shift (Oops! All Programmers)

Thursday (May 13)

Section 201 (11:20-12:10)
  • Spectrophobia (Blue Lizard)
  • Bear with Me (Team Octave)
Section 202 (12:25-1:15)
  • free him (A Disgrace)
  • Somniphobia (Enigmaco)

Submission

Due: Tue, May 25 at 11:59 PM

Here is where things get different. A golden master means that you have actually put the game in the state that you will release it (e.g. placing it on a physical DVD or getting it authorized for download). We want you to do that. 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 audio 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 packr. It combines your application with a specific version of Java so that a person running the application uses exactly that version of Java. This guarantees uniform performance across all computers, no matter what the person has installed.

The instructions for packr are on GitHub. To run packr, you need a version of the JDK for the platform you are creating. So if you are on Windows, and want to make a release for macOS, you must have a macOS version of the JDK (and vice versa). We highly recommend that you use OpenJDK for this. Licensing restrictions prevent you from redistributing the Oracle JDK past Java 8. You can redistribute Java 8, but not higher. And honestly, we are recommending Java 9 right now. So download the appropriate packages (9.0.4) from the OpenJDK page.

We want releases for both Mac and Windows. Windows builds are easy, but the Mac build folder must be named with the .app suffix. Otherwise, you will get a normal folder and not an application. All Mac applications are actuall folders with the .app suffix, making them double-clickable. If you want to see this for yourself, go open up the Applications folder in your Terminal and look at all your applications.

It would also be nice if you added an icon to the Mac release. Just go into the Contents/Resources folder and add an ICNS file. While it is possible to add an icon on Windows, this is harder and requires an external tool.

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.


PACKR and Catalina

WARNING: There is an issue with Catalina and newer versions of PACKR. Read the instructions below for making macOS executables

Apparently Catalina broke PACKR. Many of you have tried to use PACKR to create macOS executables and they immediately crash on Catalina. We were not expecting this, since the games ran perfectly fine on Catalina last year.

The issue is that PACKR, just like LibGDX, is under new management. The current version of PACKR is very different than the one from last year. And based on Stack Overflow it appears that Apple made some changes in the past year that could have result in the current version of PACKR being “compiled wrong”. So what is the solution? Use an old version of PACKR.

We find also that is is safest to use PACKR on macOS with JDK 9.0.4. So we have includes this below.

To use this version of PACKR is it almost the same as the new versions of PACKR. The only difference is that the option useZgcIfSupportedOs does not exist. So you would type

java -jar packr-1.2.jar \
     --platform mac \
     --jdk jdk-9.0.4.mac.zip \
     --executable MyGame \
     --classpath MyGame.jar \
     --mainclass com.my.app.desktop.DesktopLauncher \
     --vmargs Xmx1G \
     --output MyGame.app