From November 6th to November 11th 2023, I decided I want to try out making an Incremental Game, and chose to use Idle Game Maker made by the creators of the famous Cookie Clicker. In some ways, this game is kind of like a total conversion mod as it uses the same underlying engine. According to tracked time, I worked on this project for about 17 hours, although a good 2 or 3 hours of that was just playing the game for fun after testing it.
The completed game, Fishy Business version 1.0.0, can be played here.
I chose to use Idle Game Maker was because it seemed interesting when suggested and I wanted to practice more of my game design skills rather than game programming skills for this game. I also speculated that using such a tool would allow me to get into the hooks of understanding the gameplay loop and flows of the incremental game genre much quicker in order to prepare me for making a game in a similar genre in a real game engine.
This assumption paid off and I was able to complete a playable and fun prototype within the week, learning a lot more game design in the process than the previous weeks, as I was able to focus more time on playtesting, getting feedback and playing the game than I had to on coding it.
What Went Well?
The Game is Fun and the theme fit perfectly
It is just fun. I executed the custom scripting for the mechanic of having to cast a hook and wait, while having a random chance for better fish at the start, at an adequate level.
There is a really fun sense of escalation as the player acquires more and more buildings and upgrades, before getting tens of thousands of ships and millions in money by the midpoint. The contrast from the start of the game where you are painfully getting fish to get your first boat and other upgrades can be felt with the end game too, and the theme of fishing for that incremental progression is easy to understand.
The gimmicks of the different fish made sense to myself and playtesters, such as the fact that understood that the yellow fish could have its price massively inflated over time and the massive satisfaction of selling all those fish at once giving a huge payoff.
Playtesting and Feedback!
I was able to finish earlier prototypes of the game and get my friends to playtest this game much earlier than the others. This lead to valuable feedback and suggestions from players suggesting features.
For example, one of my friends whom played an early version of the game suggested having different buttons to sell different types of fish. This minor suggestion allowed me to extend the gameplay loop and add buildings that could be bought with different types of fish rather than money, which created more interesting gameplay choices. Players have to decide whether they wish to sell their fish now for immediate cash, or use their fish to purchase upgrades that could increase their future fish production.
I understood the documentation and examples to finish on time while coming up with my own workflow
I suppose this goes without saying, but I am also glad I was able to understand how to use the tool to complete my first game, although small in scope, within the one week deadline. I didn’t really need a lot of extra help to figure things out, being able to slowly piece together and increase complexity through practice and experimentation.
At the start of the week, I wasn’t as confident with the tools but by the end I was able to have different buildings and upgrades that use different game resources for purchasing, which hence have complex relationships with one another.
I also came up with my own workflow for the game that works for me. The way Idle Game Maker works is that the engine on the developers site reads in plain text files that are passed in by the URL.
I used Git and Github to back up my progress as I edit these text files and commits, but I also did live development builds on Pastebin as recommended by the developers. Pastebin was used as any changes made onto text files were immediately reflected and can be read by the Idle Game Maker engine hosted on the site, while GitHub files take a bit of time before the ‘raw’ version of the script files were updated.
This was actually something I did not know prior to making this game, but now I can see its extremely useful in any form of development that needs to parse plain text files, json files or yaml files from a repo.
What Could Have Been Better?
Balancing
I did not know how to balance my numbers properly yet for this genre of game (and similar genres with reward and random progression, such as RPGs with loot tables). I was kind of just winging it by ‘feeling’ which is relatively inefficient, playing spending a lot of time playing the game from the beginning.
Many times I would tweak an upgrade or building only to realize that it was too powerful and undermined other mechanics in the game… or that I made the building cost increase too high and made a mechanic less useful than it should be.
As such, before working in more games in this genre, I am going to learn exactly how other game designers work out the math for their stats, item tables and so on for long term progression to keep things challenging yet fair for players. I also need to figure out a workflow to test these changes up more quickly than playing the game normally from a certain point.
Writing
For this point, I think the game’s writing and tone was okay for a one week prototype. Despite this, I still feel that my workflow for development has not yet grown to accommodate for writing challenges such as narration, flavor text, item descriptions and achievements. The ideas still made it into this version of the game, but they felt a bit flat.
These ideas include stuff like the ‘Poacher’ building for getting illegal and endangered fish, ‘Bribe Coastguard’ and others.
While I had a lot of fun coming up with deadpan jokes relating to the theme of environmental destruction from overfishing, I did not commit to that angle and so that aesthetic and message of the game is not as strong as it can be.
More care could have been taken to establish in-universe history and lore, so that each upgrade and building had more impact, and so I would need to come up with methods to effectively brainstorm, develop and get feedback on a game’s writing during the development cycle.
There are many other example of games that do this subtle snarky item description as storytelling well such as The Sims and fittingly Cookie Clicker.
Should use my own CDN instead of GitHub if wanting to scale up
I could host binary files for images onto a GitHub repo with git LFS and hotlink them in my text files. Still, as I scale up I should be using my own CDN to host images and other media for non-static web games. I did experiment with hotlinking the images from the repo of this GitHub Pages though.
What Have I Learned?
Progression Systems are great hooks for players and I am going to use them more
It was really fun to come up with upgrades which lead into other upgrades, and fitting them all onto a theme. These kind of progression systems is also a core element of the genres I want to develop in such as Tower Defense, RPGs and Tactics Games so I am glad I got to experiment with a more ‘pure’ form of them in an Incremental Game.
I also noticed that the ‘hook’ of ‘just a bit more before I can improve my character or get a new item’ is really addictive for players even during the prototype phase.
When I let my boyfriend play an early build of the game while I watched it, he really enjoyed it and kept playing in order to increase the price of the golden fish even after he had ‘completed’ the game (gotten the last upgrade). The way the golden fish worked was that you could purchase upgrades to increase their price exponentially, so there was a hook of getting that upgrade so that the fish he had could be sold at an even higher price, and that money used to get even more ways of producing that fish more reliably.
He kept wanting to play even after I ask him if he was done and could give feedback. This is a very good sign when playtesting and scouting out ideas for a game, and it shows that I might have a knack for an intuitive understanding of what makes progression systems that loop into each other fun.
Usually playtesters are very happy and eager to stop playing once you tell them to stop if the game isn’t all that fun, so when they say ‘no let me play a bit more please’ it means you are onto something. In some ways, this is the true indication and feedback you’re looking for during playtesting if the game is worth further developing… which is whether the playtester wants to stop!
Serialization is King
This is more of an observation not from my game but for Idle Game Maker itself. The entire game was scripted in plain text files, which read in variables and some simple conditional logic, almost like it was a Markup Language like HTML. This is really cool and allows fast and accessible iteration time.
The benefits of serialization and data driven development have been repeated time and time again, from the first chapter of the original Game Programming Gems to my previous blog posts. But it is still worth iterating upon whenever I see its power for myself.
Seeing it at this extreme with an entire playable game made from text files is inspiring, and shows that focusing on allowing my own games to be data driven too even if at a smaller scope level such as with JSON, is the right call. Creating external tools that create serializable data that in turn can be read by the engine is a good step to move towards.
A strong idea grows naturally from itself
This concept I learned is a bit more abstract. Basically, this game started off really simple and small at the beginning. I wanted to make an idle game, where you click to get fish that you sell for money to buy boats and poachers. So I made that. I didn’t expect too much from it, and it was only a learning exercise. I did know there was some potential for interesting tone because of my awareness of the environmental destruction of overfishing, but beyond that I kept things simple.
It was only after playtesting that it slowly expanded naturally, with concepts of cause/effect of having different fish have different gimmicks, fish itself as currency and so on. I am now filled with tons of inspiration and other ideas on how to expand such a simulation fantasy of running a massive fishing empire, how it has appeal to players both from a gameplay perspective and narrative message, because of how the early prototype grew. It can make a good standalone game in of itself, and one that isn’t that common (most fishing games are in earnest or focused on the fishing itself as an individual, rather than running a corporation).
What this learning point means here is that sometimes a game’s appeal, tone and gimmick can grow naturally from early, small and seemingly unambitious prototypes. It might be better to start with something that seems simple, derivative or uninspired and let it surprise you naturally. The creativity can drip out naturally from anywhere. This approach might be better than trying to force something ambitious, original and unique straight away from the start.
Point is, finishing simple prototypes can become, in of itself, a source for further inspiration. Don’t sit around waiting or scheming for that perfect game idea to come, but instead dig it out from the mines of small prototypes.
Comments powered by Disqus.