BPRO 25800 (Spring 2021/Winter 2024) Are we doomed? Confronting the End of the World

DOWNLOAD

Thanks for playing Extinction Museum! This is an interactive game where you explore a museum exhibit about the crises caused by humanity. We recommend that you play the game before  The museum is located in the future, where a devastating nuclear missile attack/accident called The Whiteout has killed millions and destroyed a large swath of the world. Examine museum objects from our past and present, and explore how humanity has made things worse! The museum has 3 exhibits: nuclear, climate, and AI.

How to Play

0. Navigate to the appropriate installation folder.
1. Double click the `museum.bat` file to run. Alternatively, if you’re on Linux, open a terminal
and type `chmod u+x museum.sh && ./museum.sh`
2. Enjoy extinction?
3. Note that in the end sequence, you are given a choice. Left click for yes. Right click for no.

Development Quirks

Extinction Museum was developed in Kotlin/JVM using bindings for the Godot Engine. Godot is very extensible
and open-source.

Where is the Mac release?

Exporting for Mac is actually quite hard. You would (a) have needed a Mac at your disposal (due to Apple’s
non-existent crossplatform tooling), which I didn’t when near the end of development, (b) had the Godot
Engine built from source (which takes a very long time on old hardware; the bindings were being updated to
fix bugs and bump Godot’s version also), and (c) followed their rather convoluted export process.

This really isn’t conducive to an iterative development cycle. I apologize in advance.

Known Bugs

Unfortunately, because the Kotlin/JVM bindings are in a suboptimal state in certain areas and
because the Godot Engine is focused on the next major release, there are a few unfixable bugs
at the moment:
– Audio crackling when first starting dialog
– Not necessarily game-breaking, but certainly annoying
– This is a known issue in-engine
– Input lag and stickiness
– Likely related to garbage collector spikes on the JVM (although the bindings use their
own reference counting garbage collector for Godot types)
– Lack of JVM embedding/use of start scripts
– The start scripts accompanying the game are necessary to set some initial game parameters
for ease of use
– This is also due to a bug in String handling on the bindings side, necessitating
the `jvm-max-string-size` parameter

Scroll to Top