Latest News

Another several months have gone by…
This isn’t shaping up to be an Arid” game now, so I’m changing the name of the blog from aridgame.com to mudzoo.com. Mudzoo seems like a fun word. Could be mud zoo, or just a made up word mudzoo. I can also use it as the name of the associated studio/company.
Mud is a reference to clay, which is the visual style/medium that the game(s) are created in, and zoo because it sounds good and offers plenty of ideas for branding.

As far as game development goes, what a journey… A large amount of work has gone into getting the collision detection just right for a platformer. It’s such a critical part, and I don’t feel bad about working on it, testing it and tweaking it for so long.

Basic bounding box collision was a good starting point, but really limited.
I scrapped rectangular bounding boxes and went for bounding shapes defined by points. A flat platform may be two points, i.e. a flat or sloped line, or several points to define shapes or curves.
For animated assets, like the player, the points are set for each animation frame, meaning that the bounding shape can correspond accurately to the sprite.

A good example for how effective this is can be seen when standing at the edge of a platform. Usually you’d check the bottom corners or mid point of the players bounding rectangle to see if it’s off the edge. With the points I know exactly where the feet are, and the player can visually and literally walk right up to the edge without falling off.
Collision between the player and enemies will also be sprite-accurate, so there’ll be no surprises.

The player sprite is from Skullmonkeys, one of the inspirations for the game. (It’s hard to get a nice looking gif at a manageable file size)

There are a couple of draw order issues in the gif above, which I spent some time last night implementing a solution for. It’s a tricky one, as each platform has a background and foreground component, with the assets on the platform needing to be drawn between the background and foreground.

I also went with data driven design for defining the various assets in the game. All the different enemies, platforms etc are defined in JSON, making it easy to tweak their parameters and build development tools. I had a bit of a hybrid approach before, but it wasn’t going to scale well.

Still so much to do, but I’m excited about where it’s at. Can’t wait to get my hands on the clay!

(Also, I think the story’s changed yet again from what it was back in July :)


Date
December 11, 2021