Last weekend, 13-15th April 2018, I participated in Nordic Game Jam, a yearly gamejam set in Copenhagen. I did not enjoy the trip at all, but was very satisfied with the resulting game.
Most of this post is a rant about trains, the jam, implementation details, etc. If you just want to play the game, then you can skip right to the game.
I had planned to see Robert Yang's presentation on sex in video games, and had planned my train journey to Copenhagen with time to spare. When stopped at some random small-town station, we're informed that a tree fell on the tracks, and thrown out of the train. Together with hundreds of other confused people, I waited 3 hours for a train-replacement bus that never came. The tracks were cleared, and trains were running again before a bus towards Copenhagen came. Good job DSB.
The remaining journey to Copenhagen was spent in a stuffed train, where even first-class passengers were standing. After arriving in Copenhagen, I still had to walk an hour to get to TAP1, the game jam location.
Similar to in 2016, my friend Sketchwhale and I had already talked about some game ideas before the jam, and just like last time, we ignored the theme completely.
The idea we settled on was murder-mystery dating-sim, set in an elevator, which Sketchwhale had called "This- This is awful- It's not even a real mystery". We would focus on the dialog between the main character, detective Dave Monaghan, and the other characters. The joke was that the murderer was obvious, but the real game lie in becoming friends with the characters. We used a pretty awful custom built 3d engine, I'd made earlier in the year (2018).
The jam started late, somewhere around
21:30, and so the progress
after day one was pretty rough, as can be seen above. We had a
sprite for one character, Miko and some very colorful
walls. The dialog options on-screen was baked in, and there was no
interaction beyond rotating between different clones of Miko.
Since 2017 Nordic Game Jam has been a vegetarian event. I have no issue with vegetarian food, I can live fine without meat. What I don't care for, is being served skyr natural for breakfast, when a bowl of cornflakes or havregryn would have done just fine. Why go for extreme variety, when something so normal and cheap is already vegetarian?
Most of the game was implemented on the second day, Saturday. Sketchwhale drew the remaining characters, and wrote the dialog for Miko and the dog. I implemented the dialog system, including all of the Miko dialog.
The 3d engine is, as previously asserted, a bit rough. It calculates texture coordinates wrong, so the act of looking around will change how a texture is draw, when the texture fills a large amount of the screen. This is obviously incorrect, but I couldn't be bothered with fixing it before the jam, and didn't have time under the jam.
Above is an example of the stretching bug. Compare it with original image. Notice how large his head is on the projected surface, compared to how large it is on the original.
One way to avoid extreme stretching of the texture, is to split one triangle into several. The distortion is limited, as each triangle fills less of the screen. Unfortunately the entire engine is such a mess, that all my attempts failed with weird warping textures.
Sketchwhale had drawn a great wall texture, but due to the stretching bug, we could not get it to work properly. Instead we made the walls randomly colored triangles, which looks alright.
Sketchwhale knew a musician at the jam, Mikko "Mishicu" Aaltio. Although Mishicu were already working with another team, he was convinced to make some music for us, based on that one scene from Drive. Mishicu did a great job, and I encourage you to play the game through, if only to listen to the music.
The third day started with incredible pressure to get the game
finished. We started work around
10:00, with a deadline of
Sketchwhale mainly worked on a bit of promotional material, like a
video, while I implemented the dog dialog, and implemented an
introductory scene. A fun change was to shorten the dialog options
when not selected. This was to accommodate some long dialog options
pushing other options off of the screen.
We didn't have time to finish the following, during the jam:
- The timer mechanic never went anywhere, as we forgot to add an ending.
- The score mechanic was incomplete, due to a bug in the dialog system, where some points weren't given correctly.
- One of the characters has no dialog.
- The player was supposed to have a gun, and be able to shoot characters.
- A wireframe minimap was supposed to tell help the player when they get lost.
After the jam, every group had to present their game, in front of 30 other groups, before voting on everybody's favorite. My favorite games from our presentation scene was:
All three groups were great at presenting, and displayed the charm of their games very well.
I didn't get to see the final presentation, or know who won, as I left early. I was incredibly tired, and just wanted to get home.
After the jam, I decided to fix some of the bugs and missing features. I added an ending, and fixed the score bugs. Furthermore a proper title screen was added.
The introduction sequence was heavily modified, to make it more intuitive. The doors were made actual 3d objects, and the light flickers in a more realistic manner. A fun change was for each character's name to only appear once the player has spoken with them.
Nijousatsujikenriron is a murder-mystery dating-sim set in an elevator. As Detective Monaghan, you just had the worst, and probably last, day of your career. As you enter the elevator, you feel things are not going to get better. Can you solve the mystery? Can you find yourself? Can you move on?
Made in cooperation with Sketchwhale and Mikko "Mishicu" Aaltio
You can download the game for 64-bit Windows or Mac OS X. If you use Linux or similarly uncommon operating system, you should download the LÖVE file, along with the LÖVE framework.