Log In  

The initial idea for this game came from the title first. About a week ago I was trying to brainstorm what game to
make next. I had just finished my top-down adventure game Cube. At some point when thinking of what to make next
the title just popped in my head. As soon as it did, I knew I had to make the game.

I decided to follow a similar workflow as I did with my last game. First, I would make all the code tools and
systems that I thought I would need for the game. Next, I would create the content for the game using just the tools
I had made. I didn’t want to make anymore code in this stage as I felt it would keep me from falling into the whole
of feature creep. So with this in mind I started building the tools and systems I thought I would need for a Visual
Novel style game.

The main system I needed was some kind of node system from which I could make the branching structure of the game. Working in Pico-8 I would have to build this entire system myself in the base code. Luckily, I could use the dialogue system from my last game Cube as a starting point. Pico-8 lets you make what it calls tables, which are basically lists. These tables can have a single index and single value. In Cube I used the world coordinates of each character as their index and the text they said as the value I stored. This way whenever the player interacts with a character, we just pass that position into this table and get the correct dialogue. However, in my new game I would need to expand on this idea.

In Slime Detective each node at any given point in the story needs to store more than just the dialogue that is spoken. It also needs to store: the options the player has and which nodes those options point to, the name of the character talking at the moment, and what background and character sprites to draw during that node. Since there was no way of storing all this info in one value in a table for each node, I would need to get creative. I instead made one table for each value I needed to store and used the same index number across each table for the same node. Once I could set this up I just needed a single value to store the current node number which the rest of the game could use a index to look up in all the tables I made to draw, show, and run the rest of the game.

Once this system was in place, I figured it was time to start making the content.

Before I could start writing and dialogue, I need to nail down both my story, location, and cast of characters. I
knew I wanted to do something Sci-Fi like. I also wanted the story to be a mystery that the player has to solve.
Lastly, I knew I would have to keep the art super simple for two reasons. Firstly, I’m not good with complex art.
I’m not much of an artist but I know how to work around this. In a lot of my solo projects, I try to keep my art
super simple to help both readability and make it seem ‘good’. The second reason was that I wanted to try and make
art without using pico-8’s sprite system. Aside from the sprit editor pico-8 also lets you write certain lines of
code to tell the software to draw a square, circle, or line on some set coordinates of the screen. You can specify
the size, color, and coordinates. I wanted to make the art using nothing but this. With this in mind I first nailed
down the characters and locations cause I knew I would need to write functions to draw these characters. In keeping
with the first two characters, I made (the Green Cube and the Slime Detective) I made the rest of the characters
simple shapes with plain colors. I deliberately had all the characters use all the bright and vibrant colors so I
could just use the more muted colors on the background and not have the characters blend into it. With those made I
began blocking out the story.

Due to the way I had programmed the node system in Pico-8 it was much easier to write the main dialogue code in an
external text editor and copy and paste it into Pico-8 as opposed to writing everything in engine. This is cause
the code ended up looking like this below.

-- opening scene: we see the ship. are told there's been a murder. meet slime detective, us.  meet the captian and are let onto the ship
-- We are told the captain used his 'Admin' privilege's to look through the ships logs but can't figure it out
add_node( opening_scene+0 , "" , narrator , outside , "Slime Detective\nand the case of the\ndead green cube" , "" , "start" , 0 , opening_scene+1)
add_node( opening_scene+1 , "narrator" , narrator , outside , "Adrift in the far\nreaches of space is the\nRhombus IX" , "" , "continue" , 0 , opening_scene+2)
add_node( opening_scene+2 , "narrator" , narrator , outside , "Sadly there's been a\nmurder on this ship" , "" , "continue" , 0 , opening_scene+3)
add_node( opening_scene+3 , "narrator" , narrator , outside , "last night green, the\ncomms expert was found\ndead in the cargo bay" , "" , "continue" , 0 , opening_scene+4)
add_node( opening_scene+4 , "narrator" , narrator , outside , "and no one has entered\nor left the ship,\nmeaning one of the crew\nmates is a murder" , "" , "continue" , 0 , opening_scene+5)

Even once I had blocked out the basic flow of the story this meant that writing it was a combination of creative
writing and boring data entry. In the end there is almost two hundred lines of code like the stuff above for the
game.

Once I got the mystery figured out and the story in place the last thing left to do was make some music. Now
I had made music in Pico-8 before for Cube, but most of that was made following a tutorial and a mixture of me not
entirely caring. This time out of curiosity I started digging into some basic music theory to try and figure out how
to make good music for this game. I had tried looking up the basics of music therory before, but it had always
confused me. For some reason this time it stuck or at least felt like it was starting to make sense. But oh boy is
it quite the rabbit hole. I initially just wanted to look up some basic stuff, like chord progression. Cut to
seven hours later and its three in the morning and I’m to deep in a music theory YouTube tutorial series to stop.
It was a lot. But now I know about notes, scales, keys, chords, chord progressions, how to read chord progressions,
arpeggios, etc. But did this all result in me making good music? No. I tried looking up a basic chord progression
and drum pattern then recreating that in the Pico-8 music maker. Well, its not great. I’m still not super happy
with how it sounds but it’s at least functional and much better than me just flailing away the music maker having no
clue what I even should be doing.

It was fun learning thou and I might download a free DAW, synth, and start try making a song or two at some
point. We’ll see.

So what did I learn from making Slime Detective? Well, I honestly don’t think the game is that good I feel
like there’s a bit I can take away from it. Firstly, balancing the design, creative, and grunt work of game design
is hard. They are arguably different head spaces that you have to swap between when making any game. But this game
in particular feels like it challenged me on that. I think that’s cause the game relies so heavily on the narrative
and the pros of the writing. And coming up with good and interesting writing takes a lot of the creative mindset.
But actually, writing it down in the node system that I created was nothing, but grueling grunt work no different
than basic data entry. Lastly making sure that everything flows nicely together and that the mystery itself is
actively solvable takes a lot of design work. So, what I learned is that I’m not great a balancing all three of
these at the same time. That it’s something I need to work on. Something I probable will improve with the more
projects I do.

The next thing I learned is that I really like learning about music. For whatever reason, this time the
music theory stuff clicked and its something I want to explore more. I listen to a lot of synth and electronic music
in my free time or when working on games. So, I may want to try my hand at making some a few songs in that style
soon.

Now that this project is done what’s next for me? Well, I got two game jams coming up. I will be
participating in the Mini Jam on July 8th-10th and the GMTK Game Jam July 15th -17th. I’m already forming teams for
both jams and looking forward to those. Well getting set up for those I might take things easy for a little bit and
focus on polishing up either my website, some social media profiles, or try messing around with some of that music
stuff.

Anyway, thanks for reading and don’t stop creating.

P#113892 2022-07-02 04:53


[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2024-04-20 00:38:23 | 0.005s | Q:7