Well. The end of the month really snuck up on me, I guess. Because I didn't get a lot done.
I suppose that's not entirely true. While my progress has been limited in terms of the amount of code written, I have been working on other things. I've made a decision about the demo as well - I think I should push back the demo's release until it more closely resembles the final product. So I'll want the styling for buttons and menus to be more or less complete. I can't really get good feedback about UI readability or style if the styling isn't there to critique. So, I have a longer way to go than I had initially figured before the demo is ready.
I'm preparing for one last big code clean-up before the beta. Hopefully, it will be the last one that I'll need to do. I've learned a lot about how to do stuff in GDScript, and making the code more consistent is worth the effort. On top of that, there are some components that can be simplified. The code's complexity is starting to become a bit of a pain point, so restructuring things a little bit is probably the right choice going forward.
I also found an open-source solution to a problem that I'd been ignoring for a little while now. As you might be aware if you've played idle games like Cookie Clicker, you'll know that the numbers get very large - much bigger than a normal number can get in GDScript. GDScript's signed integers cap out around 9.2 quadrillion. Cookie Clicker has an achievement for baking 1 trevigintillion cookies, which is orders of magnitude larger than 9 Quadrillion - It's 1 followed by 72 zeroes. Do I intend for the player to make that much money in my game? I don't know, probably not. However, I did plan on going above the Quadrillions, so finding a way to circumvent that limit was going to be a must. Thankfully, I found an open source library for this. It was even made for the purpose of making an idle game, so it has helpful features included, like the ability to display numbers in a compressed format (For example, writing 4.1 Trillion instead of 4,123,456,000,000).
If it were a controller for a player character, I probably wouldn't use it. Part of the point of my work right now is learning how to use the tools available to me. But, since this isn't something that games need to do that often, and I already knew how to do this, using a library is acceptable in this case.
In terms of code changes, there weren't a lot but some things got done. I finished the functionality for the breeding interface, and fixed the random egg hatching. When an egg is created through breeding it goes into a queue. If the queue isn't empty, it'll hatch an egg from the queue. But, if it's empty, it's supposed to hatch a random egg. Previously, it would make a random morph, whether you discovered it or not. But now, I've fixed it so that it only selects from morphs you've already discovered.
Though, this did uncover a need for a new button - a "clear" button for the breeding interface that stops progress immediately, and removes the selections made from the menu. I could see some situations where you'd want to clear the selections and stop the process immediately before it finishes. For example, someone might be looking for a specific morph. And because the eggs in the breeding interface hatch in first-in, first-out order, clearing eggs that are unlikely to hatch with the desired morph from the queue could be a nuisance. Right now, with debug values meant to make testing convenient, it doesn't seem like that big of a problem, but when you get to some of the eggs that take longer to hatch, like in the ballpark of thousands of clicks, I could see why someone wouldn't want to be hatching sub-optimal eggs if they can avoid it. Would a pause button be nice as well? Probably. But I have to weigh whether or not the time spent implementing it would be worth it. And right now, I don't think it is.
I decided not to reblanace the numbers just yet. I think I'll do that when I'm putting the final touches on for the demo. For now, it makes debugging a lot easier. In this genre, there's a lot of waiting involved. So, keeping the wait short is probably the way to go until the game is ready to be shown to potential players.
Did you like this post? Tell us
Leave a comment
Log in with your itch.io account to leave a comment.