1
0
notes/website/2018-04-21-nijousatsujikenriron.md

176 lines
7.7 KiB
Markdown

# Nijousatsujikenriron (AKA "The Elevator Game")
![Adrift on the seas of change; a world of our own making.](images/nijousatsujikenriron-mock-up.png)
**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](http://takunomi.space)_
and _[Mikko "Mishicu" Aaltio](https://twitter.com/mishicumusic)_
Download on [itch.io](https://jmaa.itch.io/nijousatsujikenriron).
## Introduction ##
Last weekend, 13-15th April 2018, I participated in [Nordic Game
Jam](https://nordicgamejam.org/), 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.
## Transport Purgatory ##
I had planned to see [Robert Yang](https://twitter.com/radiatoryang)'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](https://en.wikipedia.org/wiki/Rail_replacement_bus_service) that
never came. The tracks were cleared, and trains were running again
before a bus towards Copenhagen came. Good job [DSB](https://www.dsb.dk/).
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.
## Friday ##
Similar to in [2016](/website/doki-doki-densha-sekai), my friend
[Sketchwhale](http://takunomi.space) 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).
![A lightly-clothed girl, with pink ponytail stands in front of a blue
and black background.](images/nijousatsujikenriron-day-1.png)
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.
## Saturday ##
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](https://en.wikipedia.org/wiki/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?
![The same girl as before, standing in the corner of two walls,
colored in triangles. The girl is saying "...Yes?". On the left side,
the player can choose a question to
ask.](images/nijousatsujikenriron-day-2.png)
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.
![The picture of a guy patting his head with a towel, projected onto a
surface in 3d space. The camera is looking at the picture from an
angle. The projection is weird and
distorted.](images/3d-engine-stretching-issue.png)
Above is an example of the stretching bug. Compare it with [original
image](images/sweat-guy.jpg). 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](https://twitter.com/mishicumusic). Although Mishicu were
already working with another team, he was convinced to make some music
for us, based on [that one scene from
Drive](https://youtu.be/Kq2a7MWbmJU?t=1m28s). Mishicu did a great job,
and I encourage you to play the game through, if only to listen to the music.
## Sunday ##
The third day started with incredible pressure to get the game
finished. We started work around `10:00`, with a deadline of `13:00`.
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.
![A cybernetically enhanced dog sitting in a corner of the elevator.
The player has several options when talking to it, some of which are
cut off, to save screen space.](images/nijousatsujikenriron-day-3.png)
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 help the player when they
felt lost.
## The presentations ##
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:
- [Rage Against the Cuisine](https://d-lo.itch.io/rage-against-the-cuisine)
- [Puppet Improv Theatre](https://saracecilia.itch.io/puppet-improv-theatre)
- [On-line](https://mrjwolf.itch.io/on-line)
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.
## Post-jam ##
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.
![Elevator doors are open to an unusually large elevator. Each of the
four characters are standing in their respective corner of the
elevator.](images/nijousatsujikenriron-post-jam.png)
Please do try the game; it is entirely free, and can be
[downloaded above](#download).