
As happy as I am with how Marianas Miner turned out in the end, it was a pretty rough journey to get there.
Struggling with an Idea
When I was making preliminary plans before the jam started, I was looking at the themes and told my wife I hoped that "recharge" and "depths" didn't get picked. Welp. It wouldn't be Ludum Dare if we got the theme we wanted, now would it? :P
I couldn't come up with an idea all evening. I tried brainstorming with my wife and she had some concepts but I couldn't figure out how to work any of that into a game... until I gave up and took a shower. While I was in the shower, the phrase "you dug too deep" popped into my head, and suddenly all of the ideas started fitting together into a game. I visualized a cross between Pac-Man and Dig Dug where you were trying to run away from Cthulhu-like monsters but you could spear them with harpoons and dig through the terrain to get away. I visualized a submarine with a big cartoony drill on the front of it.
Trouble with the Engine
In the morning, I started making graphics. I was able to get the Cephaloid sprites to come out pretty well on my own, but I really struggled with the submarine. Fortunately, my wife is a professional illustrator (she also drew the title card above!), so she sketched out the drill sub and I was able to redraw it as a sprite.
But then when I tried to put together the animations and add some preliminary movement behaviors, I discovered that something changed out from under my game engine. I built that engine from scratch. I've put hundreds of hours into improving it and refining it over the years. I've used it successfully for six previous Ludum Dares. But even though I hadn't changed anything about it since LD44, when I tried to preview my new animations, it was flickery. I went back and tried a past game, and I was getting flicker there too. I spent a couple hours trying to fix it, but I couldn't figure out what was wrong, so I had to scrap the code I had written so far and switch to Unity.
Fortunately, things went pretty smoothly from there. I've used Unity for enough jam games in the past that I'm plenty comfortable working in it -- even if my own engine is lighter, easier (IMO) to program for, has better UI tooling, doesn't have any compile times, and has WAY better load times. (Side question: Has anyone else experienced Unity being inconsistent about noticing changes to files on disk? I had to manually tell it to refresh assets half the time...)
Aiming for Fun
I set a goal for myself to make a game that would have a better Fun score than any of my previous solo jam entries. Too many times in the past I got caught up in building mechanics and effects and neglected the actual gameplay. So from the very beginning I knew I wanted to make sure it was simple and fast-paced, to make sure it had a reasonable challenge while still being accessible.
I feel like I succeeded. I won't know until the rating period is over if I actually got a better Fun score, but this game FEELS like it's the most fun of any game I've made so far. Instead of getting lost in improving the special effects, I focused on tightening up the controls, refining the enemy behavior, tuning the world generator, and balancing the difficulty.
A few points that I paid particular attention to:
Progression
My original plan was to make things easier in shallow water, but have better rewards in deep water. But I realized that was terrible for progression because the objective was to escape -- so the game would start hard and get easy, and that would be awful.
I decided to keep better rewards in deep water and use an extra lives mechanic as a game balance lever. As you approach the surface, the terrain becomes more open, which makes it easier for the Cephaloids to come after you. But since the rewards are less valuable, you won't be getting as many extra lives.
Having the terrain change rock types and the background color change as you approached the surface I think was a nice touch.
Game Balance
In addition to the game balance that goes into progression, I had to think about the direct game mechanics.
I realized from the beginning that making harpoons a limited resource would encourage strategy and dexterity instead of turning it into a shmup. But I also wanted to show the player some mercy -- it's not fun to get penned in helplessly and lose all of your lives without being able to do anything about it. So when you die, the enemies all scatter and you get a new load of harpoons and a couple seconds of invulnerability.
Control Polish
I spent a long time tuning movement speed, hitboxes, harpoon behaviors, and digging. I wanted it to be fast-paced but controllable. Making sure that your movement still felt good even when being constrained to a grid so that your hitbox wouldn't catch on corners was kind of tricky -- there's still a little bit of a visual jump when you turn corners but I hope it's not too distracting.
Digging was also tricky. During development I found that no matter how hard I tried I couldn't consistently dig out a block with a Cephaloid on the other side without dying. I ended up making Cephaloids not realize the block was gone for a little bit to give you enough time to take action.
Unrealized Visions
I really wanted to add music to the game, but having lost so much time to switching engines I wasn't able to make something before the deadline.
The digging animation could have been better. Having the block explode outward with a knockback effect on Cephaloids would have been visually interesting while also addressing the mechanical problem I mentioned above.
Some additional movement tech would have been nice. Perhaps a chargeable drill rush move that would let you dash through rocks and stun Cephaloids even if you were out of harpoons would have been fun. (Or maybe not. I haven't prototyped it; maybe it wouldn't have worked after all.)
Conclusion
I think this has a chance of being one of my best jam games ever. I hope you enjoy it!