Making There's Always a Bigger Fish


This game is the second game I developed for The Month of Games - releasing one game a week throughout August. For some context on some games that I scrapped prior to making this, check out my blog.

While I was thinking of doing a clone of an older game, I also thought of the very first "game" I ever made which I created in PowerPoint with hyperlinks that would change the slide to a different state. The idea behind that was to collect all the fish on the screen and I thought that this was simple enough to recreate, and with the added bonus that I would be able to actually have the fish moving around instead of stuck in the same position.

The final game of this month involved me doing a bit of research into older releases. In doing so, it reminded me that the Xbox Live Arcade existed, and one of the games on there was Feeding Frenzy. And Feeding Frenzy was basically just a better version of that fish game so I set out to make it.

Instead of starting a brand new project, I decided to work out of what I had already created for what was becoming Jeff's Warehouse. This meant that I didn't need to setup any menus (besides a few tweaks), and it was already touch screen ready (or so I thought - I hadn't actually tested it).

Jeff's Warehouse was a game that I scrapped.

When working on another project that I haven't mentioned before (I've abandoned a lot of things these past 6 months, OK?), I came up with a new method for handling collision that was way better than any collision detection I'd written before. So I stole that code and had the player fish being able to eat other fish while scoring some points.

I then made the fish eat other fish but hadn't decoupled everything properly and so the player was able to rack up points simply by watching the other fish eat themselves.

Similar to what was implemented in Crappy Bird, I added a fish select screen with fish that unlock through different criteria. And I also had a basic notification icon appear whenever a new fish was unlocked to draw players into the menu. I wanted to make this as text free as possible, but unfortunately I had to include about a dozen strings to be clear about things were.

I then created the bar at the top of the screen which indicates how many points the player has, what their size is, how far to the next size they are, and how far they are to hitting the points mutliplier.

An hour browsing freesound found me the sound effects I needed, but I didn't like the ambience I found so decided I'd do my own synths on GarageBand. 

The last thing I needed to do before testing the mobile build was getting the scaling to work correctly. The sprites for the fish are all different sizes because I didn't really think through the scaling system and thought that just multiplying the scale of the other fish by 0.5 every time would work. And it kind of did right up until the fish select went in and then I had issues where the player fish would sometimes be bigger than the fish they were supposed to eat.

I had a few stabs at trying to come up with a one-size fits all algorithm to do this, but algebra is hard so I gave up and just hacked in a switch statement with values that seemed OK.

For the mobile build, I wanted to put in ads on the game over screen. Unlike Crappy Bird which displays a banner at the bottom on every game over, I wanted to try a full screen ad that would appear every 3 game overs (except the first time it appears, which is on the second). This took an hour to get up and running because the code in the ad library was broken and I had to try two workarounds to fix it.

Then the game complained about a null reference exception when loading it up which turns out was an issue in the official MonoGame library where it does not like when setting a multi sample count on the render target. Fortunately I could just get rid of that code, since it was a copy-paste job from a PC project that did need it (although it's good to know I can't bring that to mobile).

The game was now running successfully, although the player fish did not move. While I had written code to get it moving through touch inputs, I'd only hooked it up to the mouse input. With the only actual issues in the code I'd written being not hooking these up and forgetting to lock the orientation to landscape, I could now create the aab file. Except I'd forgotten how to sign it.

I used some command lines to try and create a keystore and sign the file that had been built, but it refused and said the keystore could not be found even when I dragged it right onto it. Eventually I deleted a segment of the command and it worked.

This was probably the smoothest ride for this month's games, and I think that was a mixture of the idea being so simple and being able to build on top of all the code I've developed over the past few months. It's almost as if reusing stuff you already have is a good thing, but I'm just a humble game dev so what do I know? I'm sure some armchair gamers out there will tell me how I'm wrong.

Files

BiggerFish.zip 34 MB
Jul 20, 2022

Get There's Always a Bigger Fish

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.