Dev Update #1 (Last Stand of the Mushroom)



This first week of working on my next small game, Last Stand of the Mushrooms, was pretty productive for a first-week. I'm still experimenting with Python game development and the PursuedPyBear game engine. I started with a copy of my previous project, my first PPB game Seed Magic and stripped out the artwork and game-specific entities so I had an empty starting point with a menu, all the utilities I'd built up, text and scoring systems; things which could be re-used and were worth keeping.

My goals for the first week were to get a basic gameplay loop in place, which for a tower defense game includes placing units, being attacked, defending your units, and earning some kind of currency to spend on placing new units. This game is an attempt to finish a version of the game I worked on years ago, but never finished. I still have some art assets from the first attempt and I could use them this time.

I started with the first mushroom type, the mascot of the game, the Smooshroom. I want the game to start with a fun interaction. The Smooshroom is the first entity I built the original version around. When squished down, the Smooshroom ejects a long puff of toxic clouds all around it. When struck, it emits a quick spurt of toxic clouds, poisoning its attacker. I had to get the squish feeling right and I played with it for a long time, the rate of squish and the rate of cloud emitted, but I'm pretty happy with the feel right now. Later, upgraded versions of the Smooshroom will holder bigger clouds and will be able to maintain being squished for longer.

To test the Smooshroom's toxic clouds, I made constantly spawning vikings walking in from the edges. It was easy enough to randomize the sprites that make them up, built with layers so their clothes and hats and facial hair can be mixed and matched. I didn't use PPB's animation feature in Seed Magic, but I had opportunity to use it here with the walk cycle I already had for the vikings. I tied the animations into the state-machine they already had, so they have idle and walk animations, but I haven't tied in any attack animation, yet.

The vikings just vanished when I implemented the damage dealing from the toxic clouds, at first. I spent a long time fighting a bug getting a proper fade-out effect when they die, eventually tracked down to accidentally triggering the death sequence multiple times when more than one cloud dealt damage in their last frame. With them dieing, I repurposed the score keeping system from Seed Magic to count spores earned from killing the vikings. They die, and the mushrooms are intended to decompose them for sustenance and energy.

I didn't really have any UI to speak off, save for the hard-coded menu items, but being able to place new units down requires a couple parts of UI behaviors available. I need to create buttons, it would be good not to hard code them all, now. I'm building this all more or less from scratch on an in-development Python game engine, so I can't just drop in some UI from the asset store, or anything. I need to know when buttons are clicked, and I need to be able to enable and disable them. I have to be able to do all this within the framework of the engine, PursuedPyBear, which wants everything to be coordinated through global events. I managed to fit this into three outgoing events and one incoming event with a new UI system, enforcing a rule that button labels are unique so I can use the label to identify them. Code using the UI doesn't know or care where the buttons are or what they look like, so I can worry about layout controls later. With that working, I hooked it up with the spore counter to enable and disable based on having enough spores to spawn new mushrooms.

And that, over the last week, gave me a pretty good foundation. I'm happy with the progress. I was happy enough with it tos pend the weekend taking a break, instead working on a new bugfix release of Python Feet, the runtime I use to distribute my games. I got a new release of that out, too, making this first productive week of the project a pretty solid one.

I hope this was an interesting first Dev Update for Last Stand of the Mushroom. I'm hoping to make these weekly. If it goes well, I'm hoping to keep up the practice of updates regularly through my next games, too. Please subscribe or comment if you through any of this was interesting, especially if you're a hobbyiest game maker, too, or have any specific interest in Python game development. I run a small hobbyist game dev podcast, called Side Quest Completed, released every week, if you'd like to hear more general conversations about game development from a hobbyist point-of-view.

You can find my games at stonebirdgames.com, myself at twitter.com/ironfroggy, and the podcast at sidequestcompleted.com or any of the usual podcast places.

Leave a comment

Log in with itch.io to leave a comment.