Sapiens

Sapiens

majicDave  [developer] 9 Nov, 2023 @ 12:55pm
Progress Update - 10th Nov 23 - Multiplayer, ownership
It's been a tricky couple of days, as I'm now really diving into resolving the issues around multiplayer and multiple tribes. I kept multiplayer in mind as much as I could while designing the game. But some of the more complicated decisions were left to finish off until later, and that time has now come.

In The Blockheads I had a very rigid concept of ownership. You could protect objects and areas with "ownership signs" that prevented damage and modification from other players. This worked OK for that game, but it's very artificial, and removes the opportunity for meaningful interactions, as everyone just kind of locks themselves away in their protected areas.

So I always wanted to avoid this with Sapiens, and find a different, less restrictive solution. These past few days I've been again mentally working through all of the possible solutions for this problem, going back over decisions I've made in the past, and getting familiar with all of the applicable code, tidying things up as I go.

Where I'm at now is that I've decided that all objects including storage areas will be able to be used by all tribes with as little restriction as possible. If you go to visit another tribe and find a storage area filled with bronze ingots, you can create a transfer route to haul them all back to your village. Or you can build a thatch hut in the middle of their village, and use resources from their storage areas, or start demolishing their houses, sleep in their beds, eat their food and rearange the furniture. That will all be possible. The AI will need to notice and react, and I'll need to work on that. There also needs to be sensible defaults and controls to modify those settings on a tribe by tribe basis. So by default your sapiens won't steal from other tribes unless you want them to.

This will all work well I think, and set us up nicely for some good gameplay situations. But it's going to take a fair few days of work for me, changing a number of things that were set globally that now need to be set on a per-tribe basis. For example, in storage areas the restricted types, orders to destroy items, remove all etc. were all global, but now need to apply per-tribe. Otherwise for example you could attack a tribe by simply setting "Destroy all items" on a storage area holding weapons, and their sapiens would happily go and destroy all of their weapons.

None of this was unexpected, and it's all going pretty well. This is "the difficult multiplayer work", that stuff that prevented me releasing multiplayer on day one of early access. But I expect this to be the worst part of it, and once I'm through this, the multiplayer functionality should all come together relatively quickly.