Play THE LOST SON here.
I’ve always loved Metroidvania games and the fandom around titles like Cave Story. Having come this far in my career, I wanted to test my skills to see whether or not I could create my interpretation of a classic Metroidvania game.
What went right:
There were discussions I was having with colleagues about rendering techniques in Unity. Finding good art solutions for small teams is always on my mind, as resources are always limited. A topic that always came up was ‘down-resing’ the target render to look like a 8-bit or 16-bit game. I tried my hand at it, and I found the results compelling (using RenderTextures to do the job). With this method, I could make low-poly models look like animated sprites without having to draw a single frame. This was a huge breakthrough, since 2D animations are hard to produce.
From there, I started rebuilding a 2D character controller using the engine’s physics system. Calculating force impulses to move was a difficult task, but I was able to create snappy, controls from it.
Music came from my Korg Minilogue. I ripped a bunch of tracks from the programmable sequencer and put it in the game. In general, I don’t spend enough time producing music, and it’s my weakest skill.
What went wrong:
Content generation was an issue. I didn’t have time to find a good system to render 3D geometry as a 2D game. Traditionally, 2D games are created using a tilemap with tilesets, and are very easy to put together. For this game, I had to use 3D geometry to put my tiles together. I started worrying about performance because I didn’t want to render 500+ cubes per map. Also, I had plans to use the camera to transition between perfect 2D (orhtogonal) and 3D (perspective) for cutscenes. This means I would have to conquer both 2D and 3D problems without fully leveraging the power of both dimensions.
What I learned:
There are always constraints in game development, we must optimize our resources whenever possible. What separates the good game developers from the great is the ability to find smart solutions to difficult problems.