Posted August 07, 2024 by The Mysterious Developer
#mysterious-devlog
What will I be cooking for Phase 3 of Bella Factionum?
Well, let's just say it - multiplayer.
I've never done this for any of my games, so it will definitely take some time. It's extremely unlikely I'll have any kind of matchmaking available - it's probably going to be a Minecraft-style server system (I'm talking old Minecraft, port forwarding etc., not Realms), but I'll see if I can get it to work with something like Hamachi or Radmin VPN - in which case I'll make a tutorial on that.
Now, I've been working on Bella Factionum since January of this year, which means there's quite a few design choices I've made that would be good for a singleplayer game, but terrible for multiplayer. Therefore, the vast majority of my work will be on the backend, in order to make all game systems work in such a way that they'll be easy to synchronize by a server.
One such bit of backend work will be refactoring how Faction Stats currently work - as of this Mysterious Devlog, when creating their Squads, Factions go through a bunch of if-statements based on their strengths and weaknesses to initialize Squad stats (e.g. "Is my strength strong protection? If yes, double the Squad's max health").
What I want to do instead is this - Factions will have a "Faction Stats" Resource, initialized once, and based on that will they carry out gameplay. And this is where the next big customization aspect comes in - Granular Faction Stats
You don't have just a "strength", "weakness" and "ability" anymore - instead, a Faction gets a limited number of points they can invest into different Stats:
The beauty of Godot (the Game Engine I'm using) is that it allows you to edit Resource Scripts without breaking every single resource forever.
This means that, graphically, all Factions will remain the same. However, going from a system of Faction Strengths and Weaknesses to a granular system is a considerable architectural change, which means that any saved Factions' Strengths and Weaknesses will be erased. They'll be reset to default values, which will basically make the Factions "ok" in everything.
Unfortunately, such is the cost of such a major change. My sincere apologies for any inconvenience - I hope that the more-granular customization of Faction Stats will make up for it!
I've been working on Bella Factionum basically non-stop since January of this year (December, if you include planning it all out), so I'll be taking a break of a few weeks.
That doesn't mean, however, that I won't be playing Bella Factionum for fun and noting down any issues to fix! Bella Factionum is the only game I've ever made (and published) that I personally enjoy playing, and for that alone it's worth all the work I put in.
I'll get back into working on Bella Factionum in late August/early September, with renewed vigor!
Even after releasing Phase 2.1, I noticed glaring issues with Bella Factionum. There will absolutely be updates between Phase 2.1 and Phase 3. In fact, it will be split into two.
As I give Bella Factionum's code a serious shakeup, there will no doubt be plenty of improvements across the board, and I wouldn't dare keep it from players.
Therefore, I intend to first publish all improvements except the Multiplayer.
Once I published the improved and refactored version and incorporated feedback (balancing will definitely be a thing with these granular Faction Stats), it will then be a matter of implementing multiplayer. Easier said than done, but I'll get it done.
That wraps up this Mysterious Devlog.
Aside from the Customization aspect of granular Faction Stats (and perhaps the Complexity of mindgames with humans as opposed to predictable AIs), there isn't much from Phase 3.
However, multiplayer is something I really want to have, and it's much better to do it now, when Bella Factionum is relatively simple. So, there we are.
Have a great day!