A friend with whom I co-host a monthly maker show-and-tell meeting hosted a booth at Open Sauce 2025 titled "Would You Have Survived The Titanic?" featuring a full-size replica of the infamous "door" from the 1997 movie that guests could attempt to balance on, a chilled water tank simulating the conditions of the Atlantic ocean that night, and an interactive quiz where your fate is determined by your demographic information and the choices you make in several situations real passengers would have faced. The results of this quiz determined who earned the coveted "I survived" badge and who went down with the ship. Per my friend (and resident Titanic expert) Mr. Kite's wishes, the results should align closely with the real-world survival statistics.
From a technical perspective I wanted an excuse to work with Godot, and I found a template for a simple multiple-choice quiz and started with that. Very few lines of code remain from that initial example, but I do want to thank Truong for creating it as it was an extremely helpful starting point in figuring out how we wanted this quiz to behave.
I experimented with several different methods for animating the ship and other display elements but was never completely satisfied with them, so ultimately we opted to have the entire thing animated in Fusion and exported as a single video file, which I then was able to play and skip through using the controls within Godot to achieve the desired effect.
As the event drew closer, we explored the idea of creating a web-version of the game that could be played on guests phones if there was a bottleneck or other technical issues with the two computers we planned for the booth. Exporting an HTML5 build was relatively simple with Godot though I did have to fiddle with the web page and add a few things to the game code to get a clean fullscreen-landscape mode button working on both Android and Apple devices. I did not test if this worked on Windows phone or Blackberry.
Remembering a first year Excel class, I wanted to use the sovler feature to calculate the ideal weights for each quiz answer that would achieve the desired survival statistics based on the answers that had been submitted. Before the event I posted a preview build of the game to the show-and-tell group to get a small sample of answers that I could use to test my statistic calculations. I used this sample data to create an Excel workbook that would allow me to very quickly load in the latest answer data from all quizes that had been submitted, calculate statistics, and then run the solver to generate a new set of answer weights, eventually reaching the ideal weights as an equilibrium was established. The final weights as they were calculated at the end of Open Sauce 2025 are used in the build of the quiz featured on this page (coming soon.)
Mr. Kite had always envisioned a live updating stats screen themed to a newspaper with a visual count of passengers as the event weekend went on. Godot had a very simple http request framework that I used to send quiz results from within the game to a server running a php script, which then stored them in a database and a separate script was used by a web-page to fetch new stats every minute and was displayed on a TV in the booth. The http request that sent stats from each attempt at the quiz-game was also used to fetch the latest version of the quiz questions and answers which proved to be extremely valuable as I was able to remotely update answer weights to fine-tune results as more data came in throughout the weekend to reach the ideal statistics that Mr. Kite wanted.
At the end of the weekend we had about 30% overall survival rate skewed mostly toward women, children, and first class passengers with a total of 520 passengers. The stats page will also be made available here in the near future as I merge files from that web server over to this one.