I know this is a possible necro bump, but I possibly figured out how to do this, but it would be Resource intesive and would require a rework of the saving function to be Viable, But can still be achived without too much work
Due to the nature of Shared maps, which i will explain my understanding of how they work, there are ways to exploit the Reality bubble and saving to get a Possible Co-op without too many changes.
Ok, Say I’m playing on a shared map, and me and my buddy get the same spawn, The way the Sync works is that the Last change Sticks, so if he makes a change and i dont refresh (I.E Save and quit before he saves and quits) then he Saves before i do, my changes overwrite his, Causing whatever he did to be lost.
Now the refresh can be achieved multiple ways, you leave the area where the changes are made (move far enough that your reality bubble no longer contains the changes then move back), or by doing the Save and quit “Dance”
Lets look at how we can exploit the Reality bubble and get a possible co-op solution.
If we were to Refresh the reality bubble every second, it would cause changes to appear immediately, Now to keep a constant sync, you would ether have to: 1. Save every turn 2. Save every second (Probably not the best idea) 3. Create a network 4. Save on changes certain changes and only save the changes and not every thing (This would be the save rework i was talking about).
1, 3, and 4 are the most viable, but 3 would not work unless you change more code
1, 4 are the most viable and the quickest to implement, 1 being the fast of them all and 4 being something later down the road.
At this point your probably all saying, What about Turn’s.
Well if you request Co-Op, then don’t expect Conformity.
Besides that, Let’s talk about visually seeing other players.
Instead of reworking players we can just exploit what’s already there by using NPC’s
So If we go with sync option 1 and 4, all we would have to do is save the player and Add an NPC Directly on top of the player.
It might look funny and might cause a bit of problems with them talking to you, but we can fix that by setting the NPC to friendly (All NPC’s sync their status, so if there friendly to one, their friendly to all)
But, we would need to keep him still, So When we set him to friendly we would have to set his leader, IE the person who “tamed” him to a non existant or dummy char.
Then, As we move around, we will need to Make the Old one (the NPC we left behind) vanish (IE, kill him and delete his stuff) And create a new one on top of our new position.
Sense our Reality bubble updates every second, when one player moves around, the NPC would move around on the others screens.
Now, PVP is something that would be something that would need to be considered, but Is not needed for a proof of concept. But i’ve thought of that too.
So To handle PVP, you would have to Sync the NPC’s health To the players. So if the NPC gets hurt so do you. And vice a versa. Also on top of that you would have to sync the players actions, equipment and stats to the NPC allowing for Proper representation of Armor, Defensive/Offensive stats, abilitys and Also weapon handling.
Also, Another point that i think i seen mentioned is ingame time. Personally, It woudnt break all that much to have time be handled on a player by player basis unless PVP was put in, Because what fun is it to have someone see and kill you when you cant see nor kill them.
So in that case you would have to “Break the game” alot, I.E have The time be a global thing, having one user Sync the time to all others (So player who has been on the longest, controls time) and have the time advance as per the relation to one turn (I.E let the equivalent of one turn pass IRL, then advance In game time 1 turn but not make an actual turn pass) Thus making time be a Global thing.
Really, I think that solves the Process of how do we do it, now its up to people to make it happen.
Peace.