Dev Update #2 (Last Stand of the Mushroom)

The first week, the game was updated to the latest pre-release of the PursuedPyBear engine the game is built on top of. Its good to keep on top of changes to the engine, which means pretty swiftly right now as a relatively young project.

As long as I was doing some internal work, I spent two days refactoring all the timing logic related code around the mushroom attack, the toxic cloud it spews, and how that cloud applies damage over time to Vikings as it spreads out. It is now about 1000 times faster, because it does a lot less work, and actually does what I intend it to do and is well commented. As part of all this refactoring I moved a bunch of code into distinct packages to start organizing things better, too.

A lot of information important to the gameplay was missing, including a key to the Smooshroom mechanic. I implemented a meter component, something I'll need for probably all my PursuedPyBear games going forward. Mushrooms now have these two semi-circle meters around them, measuring their Health and their Toxin levels. Players can see when a unit is about to be killed now. The Toxin meter is expended when a Smooshroom is squished, depleting until it can't produce the toxin cloud any more. The toxins meter recharge over time, so there's strategy necessary in how you use this attack now.

I had some time to make a few animation tweaks, including better statement management for the vikings, attack animations, and getting the feel of the "mushroom squish" a bit better.

Planting new mushrooms wasn't very clear before, so I've added a marker to show where you'll be placing the unit before you actually put it down. The marker shows what mushroom you'll be planting and gets a green or red tint if the position is valid or not. As part of this, there's also a new rule that keeps mushrooms from being placed too close together. This minimum might get paired with a maximum, too, if I decide the mushrooms have to maintain some sort of connection as they spread out, which is likely.

Sprites are now sorted by their depth on the map, so vikings marching in are drawn properly behind things they are behind and in front of things they're in front of.

The Bitmap Text system has gained color and kerning options, and improved sizing control that is more consistent with sprite units in the game. These were necessary to add damage numbers for both Vikings and mushrooms, and to show Spores earned from defeated Vikings.

The last thing I did was replace the blank placeholder background, just to make the visuals I'm sharing a little more interesting. I started a basic tilemap system to handle backgrounds. Just plops random tiles down right now. When levels start to get designed, it'll have to follow some basic maps and added some structure to the level tiles, but this is a good start.

The second week, I tackled a few big new things that required even bigger changes under the hood. I broke the game up into title, gameplay, and pause scenes and doing so meant reworking a few of the early systems to be scene-specific controllers, because "systems" are an engine-level plugin in the PursuedPyBear game engine I'm using. I wanted to build a second type of mushroom the player can use, but that meant lots of rewriting bits that made all the assumptions you can make when there's only a single unit type. Both of these pressures to rewrite and refactor lots of the existing game took more time than I planned, but still I got them all done and got the new work added on top that I wanted. The game opens to an old placeholder logo I had for a previous prototype of the game and the player can now pick either the original Smooshroom or the new Poddacim, a ranged attack mushroom that flings pods at the enemies, when spending spores to grow new units.

A lot of the extra time I had was spent on engine hacking. I'm trying to use these games as proof-of-concepts and benchmarks for the underlying engine, finding rough edges and testing use cases and applying what I learn back to the project. If Python game development interests you, then I think checking our the PursuedPyBear engine is a good idea.

Leave a comment

Log in with to leave a comment.