A Breathtaking Flight
A first person mystery detective game set on a plane in the 1960s Soviet Union.
A Breathtaking Flight is a first person mystery detective game I worked on as part of a semester project during my Bachelor studies at Cologne Game Lab. It was done in a group of five in a span of one and a half months. The project’s kickstart topic was airplanes.
The Rundown
Stalin is dead, Khrushchev is gone. What happened on one of the last flights to Moscow in 1965? Slip into the role of new KGB agent Elizaveta Syomina and test your investigative skills and solve a meticulously crafted mystery.
Explore a 3D replication of the Tupolev TU-114, a Soviet passenger plane full of historical artifacts and characters, just waiting to be discovered. Gather clues, talk with the passengers and use the logic system to uncover the hidden truth.
Can you find out what really happened on this breathtaking flight?
My Involvement
To bring this project over the finish line, I filled in multiple roles:
- Systems design
- Level design
- Art direction, creation of all 3D models, textures, animations and effects
- Sound design
- UI design
I also helped out in several technical parts of the production:
- Gameplay systems programming
- Scripting
- Putting it all together in Unity
Some of the 2D assets (specifically the beautiful character portraits) were done by Alvaro Quinteros and I got help with programming and scripting from Eddy Gotwig, while Giovanni Tagliamonte and Tim Gleibs handled the design, writing and some of the scripting.
Designing For the Era
Aside from it being a locked-room murder mystery, one of the more interesting aspects of this project was the setting. Being set aboard an airplane during one of the high points of Soviet Russia meant some interesting challenges in terms of the level design, controlling player progression and keeping the environment interesting.
Being ordered to the KGB for her exceptional performance, we decided that Elizaveta, on her way to her first day at the KGB’s Moscow offices, would get a super luxurious flight alongside some other eccentric characters.
I scoured the web for any information I could find about the plane. While the TU-114 originated as a bomber plane, it was later primarily used for economy class-style passenger transport. But I also found sources indicating it was used by government officials, which must have meant that more luxurious versions of the TU-114 were made.
This turned out to be the case:
We imagined the flight taking a while, so I decided to go with an extended sleeping quarters setup in place of coupe cabins, and of course give the aircraft a premium vibe. I envisioned the plane to have an extended restaurant section as well to support our narrative and provide more variety in the environment. We’re on a plane after all - something we came to see as purely utilitarian. So we decided for the whole interior to be designed around our passengers.
This meant shifting around sections from the original plane’s usual configurations:
Our story progression would have players progress from the plane’s back to the front. So in our case the sleeping quarters shifted to the back of the plane, with the restaurant section at the front and another section with seats in between. The environment was made to scale of the real thing.
The main differentiator would probably be the cargo area in the back, which would usually be located in the bottom of the fuselage. This was also done to provide more visual variety.
Fusing Reality with the Gamey
We made the conscious decision to opt for a flat and simple art-style. We didn’t want the violence happening on the flight to be perceived as very gruesome as to not detract too much from the puzzles to be solved, so we figured this would be a good way to achieve that and glue our characters into the game’s visuals.
Supporting the environmental art-style, the characters were executed as full-body flat player-facing planes. Portraying their emotions would happen through text and changing character portraits seen throughout dialogues.
Combined with a flexible interaction system we only lacked one ingredient for the gameplay loop to be complete: Something where players could combine clues and hints they found by conversing and interacting into ideas they could challenge and verify in further dialogue.
This is where we came up with our deduction screen:
Later we found that it turned out to be surprisingly similar to the one found in Sherlock Holmes: Crimes and Punishments:
It functions a little differently though. In the pre-polish stage we were in at the end of the project, players would combine clues into ideas to be used in dialogue. But some of the ideas deduced could be combined with other clues to further deepen the insight into the case, and for even more dialogue options.
Reflection
For the short amount of time we had, this project turned out to be really expansive. Our design documents clocked in at over 80 pages, with the whole mystery and resolution fully planned out.
For me, this project was the first game project where I had to quickly adapt in terms of art-style. Previously, I mostly worked on realistic-looking gritty and dirty environments with lots of texture and detail to them. I had a particular style and way of assembling environments worked out for myself. But because of limitations with character modeling (and our decision to have our characters be flat planes), here, for the first time, I was confronted with making a high-poly flat-textured environment look interesting - all while trying to stay true to the real thing.
I think I managed it well, but the time wasn’t enough to work around all technological limitations. Unity’s Enlighten integration for realtime Global Illumination had just shipped at the time, and it was too low resolution for serious use in an environment that showed all lighting imperfections as well as this.
Bogged down by the ready-made dialogue management and scripting system we used, which turned out to be exceptionally unfit for the task, we unfortunately only got a little past the first of the planned setpieces. The scripting for the implemented parts turned out to be so ridiculously complex already, that we’d have had to switch to a different system in any case.