Gamedev.js Jam 2023 deadline postmortem
So, the deadline for the Gamedev.js Jam 2023 (the theme of which was time) passed this morning, which marks (at least during the judging period) an end to the development rush for McGuffins in Time. While I still have some things I'm looking to add to the game, and I'm not ruling out adding more new features or design upgrades in the future, I'm doing a postmortem to look back at the progress made during the game jam.
McGuffins was built in the game engine GDevelop, a "no-code" 2D engine which is great for its ability to create working games quickly without having to write much code. It still helps to have knowledge of programming, in terms of knowing how to use variables of different types (numeric, strings, boolean, etc.) and event systems to trigger different states, animations, and so on.
One of the easiest things to set up in GDevelop are timers, meaning that the setup of automatic buyer mechanics for an idle clicker game like this went very easily. It's so easy, I decided to even make each level of buyer have its own timing, so that the x1 buyer is slowest, the more expensive x2 is a little faster (and buys 2 at a time), and the x3 is even faster. There's also the traditional idle clicker mechanic to half the cost of the automated purchasers.
The AUTObuyers (which buy the x1/x2/x3 buyers automatically every 5 seconds if there's enough McGuffins currently available to make the purchases) add further automation to the mix, and, for the discerning player, bring an intentional cost exploit into the mix. By setting them to buy more than 1 at a time, the purchases that they make actually give a discount by buying the multiples all at the current price, rather than incrementing the price up once for each one. The price still updates to the same incremental price after the purchase happens, for instance if buying 5 x3s at 18 each, it would only cost 90 for all 5, rather than the 120 McGuffins (18+21+24+27+30) it would cost if you bought them one by one.
From there, adding the SPEEDups was simple as well, as it's a common mechanic in similar idle clickers. Seeing the automated buyers and autobuyers speed up is a major way to keep engagement going in a game like this - only seeing numbers increment can be boring, but making them increase and decrease so much faster can be rather fun and even addicting!
Now, this was a working game by itself, but still pretty lackluster. The mechanics are one thing, but there was no over-arching goal. Thus, I wanted to add leaderboards, so that players could practice and see results: beating their own scores and challenging their friends to beat their score as well. Fortunately GDevelop's gd.games platform makes this ridiculously easy to set up and maintain for games. There was one problem though: having an idle clicker that could run endlessly would basically mean that whoever played the longest could quite easily always have the high score.
So, that brought me to implementing time challenges, each with their own leaderboard. By doing so, the game further tied into the jam's theme of time, it made the leaderboards make more sense, meaning players would only be competing against other games with the same time limit. With challenges lasting 30 minutes, 1 hour, 3 hours, and 6 hours, the player can choose how much time they think they'll want to play for, and with SPEEDups, even the longest challenge can be completed in a matter of minutes. With only a couple SPEEDups, the 30-minute challenge can be done in maybe 10 minutes, and a 6-hour challenge could even be completed as quick as 30-45 minutes.
Of course, the trade-off in buying more SPEEDups means you're spending more and more of your x1/x2/x3 buyers to make the game go faster, sacrificing automatic generation of more and more McGuffins.
At about the same time I was implementing the time challenges, I also added a Game Over screen which implemented a stats breakdown of your performance in the game. Now you could see how many times you clicked "Buy" in the game and for how many McGuffins, how many buyers you ended up with, and your final time scale and how many SPEEDups you purchased. One of my main goals in doing this was to further increase the engagement of players, by showing them what they did and giving them information that would helpfully show them why they ended with the score that they did.
If they only pressed the buy button a couple dozen times at the start of the game, just enough to get the automation mechanics going, they could see how that would effect their final result. Alternatively, if they focused too much on the Buy button, and didn't buy many automatic buyers, it could also exponentially have an impact on the final result. If the final time scale was really high because they spent all their upgrades on getting the game over with, their score would also take a big hit.
Also during this time frame I was working on a design overhaul. I updated all of the buttons, changed the background images a couple of times, and incorporated descriptive texts and countdown timers into the buttons themselves. Also, I implemented a background animation that cycles really slowly at the beginning of the game (about 26 seconds to fade in and out again) but as you buy SPEEDups it also increases in speed with the rest of the game.
Then a couple days ago, I was trying to decide on another mechanic or two to tie into the game before the deadline, when I happened to stumble on a video on YouTube about game economies by Game Maker's Toolkit. This got my mind going, and inspired the addition of the Futures Market mechanic I was able to implement last night in time for the deadline.
Here's how the stonks market works in McGuffins: first the player has to allocate a percentage of the pool of available McGuffins (up to 50%) to set aside as reserves for purchasing. By doing so, every 10 seconds that percentage is removed from the available McGuffins and put into the reserves pool. The reserves pool is then used to buy futures, ideally when the yield is > 100%. The yield (price) is updated every 20 seconds, and can increase to as high as a 200% yield, but can also go as low as 35% IIRC. Additionally, every 100 seconds, the pool of reserves loses between 1-5% of its value to entropy.
Each time Buy Futures! is clicked, the entire pool of reserves is spent to buy at the current price... which ideally is during a 20-second period of high yield, but if the game has been sped up, it's also possible that by the time the player clicks the button, the yield has updated to a new price. At lower speeds, however, because the reserves percentage repopulates every 10 seconds, a high yield price can be utilized twice, by using the cumulative value of the reserves at the time the yield/price updated, then 10 seconds later when more is added to replenish the reserves.
By playing the Futures Market, a player can opt to not even use any automatic buyers, or the player can opt to not allocate reserves or buy futures at all. By investing a portion of their McGuffins over time into their reserves, they can lose McGuffins for quite a while to entropy before being able to purchase at a profitable yield even once, or, by luck of the roll, they could have a very profitable run with very little entropy happening. Every 5 times the yield/price updates, another entropy roll happens, and for every time the yield updates the reserves are replenished twice.
The Futures Market thus was able to add not only an element of luck and risk, and an element of drain by way of the entropy mechanic, but also an element of skill: the player has to be able to react quickly when the yield turns green (which it does any time it rises above 100%) to buy at least once during the 20 seconds that that yield is available. Additionally, being able to click right away during the first 10 seconds and then again when the reserves are replenished during the last half of that 20-second period is ideal for making the most of a high yield. During mid- to late-game, however, if the player has been purchasing SPEEDups during the play session, capitalizing on the Futures Market becomes more and more challenging as the initial 20-second time frame becomes a fast-moving target that can cause big losses if the yield updates to a loss before the buy button is clicked.
So... that brings things to where the game is now. There's music implemented from a pack made by Slumber Party Games that I licensed a little while ago, and I have a basic beep sound for the main Buy button, and with the background animation, I think it all fits the time theme and the overall feel of the game as well... but there's still plenty of room to add more game juice. Also, I didn't spend nearly enough time to create a more stylized design and a logo for the game, or icons for the apps.
Currently there's not only a playable HTML version of the game, but an Android apk, plus desktop versions for Windows/MacOS/Linux, all available free or pay what you want. if you enjoy the game, you can also buy me a coffee.
In the future, I'd like to add a better stats section into the Game Over screen, further improve the design, and maybe add some more varied upgrades or mechanics into the gameplay. There's a lot of moving parts to the game now, but it still feels a bit basic... and yet, for a game that's come from start to somewhat-finished in the span of a week, I think it'd come a long way and is a strong entry for this game jam and the theme of time.
Hopefully you enjoy playing it, or maybe it inspires you to make something similar or hopefully better. For me, I've learned a lot during this process about taking a simple idle clicker prototype as seen above to what it is now; taking the time to explore the core mechanic of a game, experiment with it, refine it, and add to it. It's a lot of work to make a game just work but it's endlessly more work to refine it and improve it a little bit at a time day after day. Even though I've been at this game only a week, I'm exhausted. But it's been fun.
Let me know what you think.
Echo
Get McGuffins in Time
McGuffins in Time
An Idle Clicker on SPEED
Status | In development |
Author | M0N0SYNTHS |
Genre | Simulation |
Tags | Casual, Clicker, gdevelop, Idle, Singleplayer |
Languages | English |
More posts
- 0.7.89: Futures Market and compounding SPEED increases!Apr 26, 2023
- Build 0.5.67: Time Challenges!Apr 24, 2023
- Build 0.3.59Apr 23, 2023
- Build 0.3.01: Music/SFX, Leaderboards and Stats, oh my!Apr 21, 2023
- Build 0.2.79: Design Overhaul and Tutorial AddedApr 21, 2023
- First web build posted!Apr 19, 2023
Leave a comment
Log in with itch.io to leave a comment.