Project Mirabelle - Blog

Weapons, Struggle Systems, and more progress

Written by ♫Dex, published 2025-08-24

I've spent the last couple weeks both trying to complete the basics of the game through finalizing how AI and maps work, as well as working a bit more on the multiplayer system and prototyping some escape system ideas!

The first thing I've added were some ideas about weapons that the player (or enemies) might carry. I'm not planning a combat system, but I'm trying to give some ideas for what characters could be "pretend-using" in the game anyways.

Image of a character carrying a hallberd

I've worked mostly on a hallberd for the basic idea, but I've also prototyped a simple sword. Both come with their own set of animations, of course.

Image of the player character pointing a sword forward

Of course, these will be mostly useful for arrest dialogs, so I've also added relevant animations for this.

Image of the player being pointed a hallberd by by a character asking them to stop. The player is raising her hands in the air.

Along this, I've also done some work on the NPC AI definition system. This is still quite a work in progress so far, but I've worked on the start of a scheduling system for AI, with the ability for triggering interactions remotely (as seen above) but also the ability to decide between various actions. So far, the system is very basic, and simply allows to reproduce what was possible before. But, even if this is much harder to show with a screenshot, unfortunately, this should allow to have full non-enemy NPCs later with proper schedules and interactions.

Though, of course, this requires a few "real life" animations. This will come later.

After the NPC and weapons work, I've then moved on to a bit of cleaning up the multiplayer system. This started by a better handling of the multiplayer maps as well as handling NPCs in multiplayer, at least partially:

Image of a player watching another player tying up a NPC

The second thing was the handling of anchored poses, which now allows to see captured characters.

Image of a player watching another player tied to a pole

Of course, this is all very much a prototype so far, and a lot of things are still quite buggy (especially NPC movement, as well as handling first loads for other players). But the whole system is working much, much better than before - for example, while there's currently no option for it, the map is now defined by the host and could even (in theory) include custom maps.

I then spent a few days working on an idea: I tried to copy the Didnapper 1 escape system into the game:

This turned out especially interesting. I've taken the opportunity to improve the concept of "custom functions" further, which are event functions that call down to Javascript. This also allowed me the opportunity to work on a more advanced scripting system that can query the state of actors, and do conditional scripts or actions based on that. For example, the "make noise" action shown below can easily be made to react to whether the character is gagged or not, and this extends to any dialog option in the future!

Finally, the last thing I did was to work on the map system to try to recreate the "static" houses dynamically as grid maps, and also allow "multi level" grid maps.

Image of a house floating in the void. The house has a small patio before its front door, but currently has no roof

This is currently heavily a prototype and going to take a bit of time to complete properly, but is also going to be a good improvement to the map system. My goal is especially to handle multi-level maps with the ability to climb to the upper levels in various ways, as well as handling "mixing" grid sections of a map (such as houses) with heightmap sections for the outside areas.

One thing I've been considering, as I've tried moving closer to "version alpha 2" (as I've called it so far), is to drop this notion of "alpha 2" altogether. A lot of the mechanics I've planned for future versions are ending up prototyped more and more. The outdoors and the leash system wasn't supposed to be a thing before alpha 5, the escape system for alpha 3, the mechanics I created for the multiplayer system weren't supposed to be a thing until alpha 7, and the whole dialog and interaction thing for beta 8. So, I've now spent a year and a half "stuck" on preparing this alpha 2 version and doing a lot of other things instead.

The thing is, I do need a cutoff point - and so far, my criteria was to try to find something that people would enjoy playing through with the current mechanics, and calling that "alpha 2". I think I'll spend a few days reorganizing what this will look like, removing the artificial version numbers I considered before, and trying to stick to things that would be interesting and fun to explore as a short game.

Once I have the shape of the idea of what to create in mind, I'll know if I have enough to create this fun short game right now. I might not - this would make this "alpha 2" take even longer as I implement what's missing. But it's probably going to be a good next step anyways.

This is my plan for the next few weeks! I'll probably start doing these blog posts every two weeks until things are clearer for me, but meanwhile, I'm hoping that this means the project will also move faster. Thanks for sticking with it so far!