Fishin’ Frenzy Prototype

So, it’s been a while since my last update, unemployment has been a bit of a weird time to be honest. Since losing my job due to the University of the Arts suddenly closing with little warning or indication, I’ve been on a bit of a break from all thing’s art and technical.

It’s actually been a decent opportunity to get back into playing more games, getting inspired, and resetting myself. To that end, I’ve started looking a bit more into the free and open-source game engine Godot. I’ve been aware of it for a little bit, and like many others, really started paying attention when the whole Unity licensing fee fiasco started and subsequent coup of the company’s President as well as many other members on the Board of Directors. Things seem to be looking up now, with the fees cancelled, and number of new executives who seem to actually care about developing the game engine. That said, Godot has made great strides as well, almost doubling in their monthly donations, and 3D parity slowly catching up to Unity.

All this to say, I’ve started seriously attempting to learn Godot, following some courses to get familiar with it, and I’m decently proud at my first serious game prototype I’ve completed without the use of tutorials. I named it Fishin’ Frenzy (though that’s really something I came up with randomly in about 35 seconds so it could be better 🤷)

I finished it (at a small prototype state) in probably 14-16 hours over the course of 3 days or so. Generally speaking, I can say I really enjoyed the process. Especially leaving “tutorial hell” as it’s known, and just throwing things at the wall to see what sticks. It also wasn’t too difficult to solve and problems that came up.

I’ve also decided it would be pragmatic to then try and re-create the same prototype in Unity, which I’m certainly more familiar with (though arguably we’ve always used Unity as a general-purpose tool for interactive graphics and displays, rather than any actual games, so my experience in game design is pretty beginner).

Fisher Prototype in Godot

Fisher Prototype in Unity

Details

First, I’ll briefly describe the primary game loop.

  1. I generate a “Fishing Spot” that is just a hollow sprite circle that starts at a certain size and decreases until it disappears. This spot repeatedly generates at random points around the screen and will continue to do so until the player attempts to interact.

  2. “Interaction” is simply moving the mouse cursor inside this shrinking spot and left clicking.

  3. This starts a “reel” event, which is essentially just a short, randomized timer, with text displaying “Reeling…” and a nice little sound effect I got from opengameart.org (courtesy of You’rePerfectStudio).

  4. After this finishes, a signal (Godot’s version of C# Events/Delegates), and another “mini game” appears, I didn’t really name this anything, but I suppose I would call it “catching”. A horizontal bar appears on the screen with a circle randomly placed on it. Another smaller circle slides back and forth across the bar at a variable speed that is also random (I could’ve set it to be faster with difficulty/rarity of the fish, but I was lazy and just wanted to finish my first prototype). After clicking at the right time when the two elements align, you successfully “catch” the fish.

  5. A small animation plays with the fish you’ve caught (also randomly selected from a list of about 14 different options, based on an arbitrary rarity value I set), and a money counter on the bottom left-hand corner ticks up.

  6. You repeat until the player accumulates a total of $100 dollars, or over.

This project allowed me to play around with a concept of key game concepts in general, and with Godot. Importing 2D assets and setting them to display correctly, separating behavior and visuals into different “nodes” with are then instantiated and freed from the Main game scene as the loop progresses, animations created in Godot to do some simple movements, “game-feel” with particle effects, and of course, using Godot’s signals to communicate across various nodes, and using “Resources” to define containers of data - in this case, the various fish (and some other sea elements) that you can randomly catch.

Game Build

Welp, I took some time to do other things and finished this project up pretty quickly.

I didn’t end up finishing the Unity version, due to some mistake I must’ve made somewhere accidentally scaling the UI with the transform tools? I’m not quite sure, but I did something and ended up with the picture of above of the dozens of NaN errors. I have some experience working with Source Control tools from my previous work experience, but I elected not to for these projects, mistake in hindsight.

So that was de-motivating enough for me to give up on that version and finish the one in Godot.

Overall, I’d say it turned out okay as my first game project in Godot, without the use of explicit tutorials or guides.

I did make a mistake, in that I also completely setup the UI wrong, I think I used the wrong nodes, but it doesn’t scale correctly with the window/camera, so the game is locked at its itch.io web resolution, and I think fixing it would require rebuilding a lot of the UI, but at least it does work and doesn’t throw errors. All in all, I’d say mission accomplished.

The game can be found to play on the web at my itch.io: https://joekrxyz.itch.io/fishin-frenzy

And the complete project and source code can be found at my GitHub: https://github.com/supervalkerie/fishin_frenzy

Previous
Previous

Project From View

Next
Next

The Butcher