SP MP Campaign Co-Op

Users who are viewing this thread

I'm not sure what you mean in there. Did you already build your LAN server/data exchanger? Or are you just planning to do this?
If the latter, I might want to ask if you have any prior knowledge about any multiplayer experience? Because this project is not an easy feat.

As Bloc said this is quite an heavy project. Synchronizing positions of parties may be easy to do (that used to be done in Warband) but then you would have to synchronize a lot of small details: parties troops; heros => { health, stats, etc. }; bandits with hideouts; inventories of every parties; towns, castles and villages economy and stats; towns trade menu; etc.

Once all of that is done, you would need to do a battle sync which can be achieved by opening a custom server (kind of annoying to leave COOP, go to multiplayer and join the server if you ask me), where you will have to sync player army and stats and make sure to record the skill progress. And finally you will have to synchronize non battle areas such as when a player enters in a tavern, can it also be joined by another player ?

I do not think this is a mod that can be achieved by a single person, but by a team of experienced developers.
 
Greetings again,

I did this before another games but not as a mod, I made this as a game in Unity. So it's not easy because they are different engines. So I'm trying to collect a team. If anyone who has a information about multiplayer coding then write me a mail [email protected].

And yes if we could this, then you can play with hamachi.
 
As Bloc said this is quite an heavy project. Synchronizing positions of parties may be easy to do (that used to be done in Warband) but then you would have to synchronize a lot of small details: parties troops; heros => { health, stats, etc. }; bandits with hideouts; inventories of every parties; towns, castles and villages economy and stats; towns trade menu; etc.

Once all of that is done, you would need to do a battle sync which can be achieved by opening a custom server (kind of annoying to leave COOP, go to multiplayer and join the server if you ask me), where you will have to sync player army and stats and make sure to record the skill progress. And finally you will have to synchronize non battle areas such as when a player enters in a tavern, can it also be joined by another player ?

I do not think this is a mod that can be achieved by a single person, but by a team of experienced developers.

If I remember well you tried something similar in warband?
How has it been going?
 
If I remember well you tried something similar in warband?
How has it been going?

Nice memory you got there.

Yes, I worked on a coop mod for Warband and managed to have every parties synchronized among as many clients as the server could support. This was achieved using native languages for both the client (injected into the game) and the server.

However I dropped the project as this would have been too time consuming to synchronize everything and get all the details from my previous post synced and working as features.
 
Yes, I worked on a coop mod for Warband and managed to have every parties synchronized among as many clients as the server could support. This was achieved using native languages for both the client (injected into the game) and the server.
Were you calculating some parts of the game logic in the server as well or was server just a relayer for data?

I did this before another games but not as a mod, I made this as a game in Unity. So it's not easy because they are different engines. So I'm trying to collect a team.
If you did it with Proton or any similar Plugin that Unity offers, then you will have some hard time to understand whats actually have to be done in here. But I'm not pessimistic, I'm pretty sure this will done someone from community once the game is readily available. So I don't see any reason why it can't be you.
 
Were you calculating some parts of the game logic in the server as well or was server just a relayer for data?

No. The server was used only to authenticate and synchronize the clients. The host of the game would just load their campaign save normally and the date would be sent to the server and relayed to logged in clients.
 
There's already co-op related code for SandBox(campaign). I think it's fairly obvious that they've already worked on - or at least prototyped with co-op to some extent.

Now whether they're still working on it and have just cut out majority of the code related to it, I don't know. But we can always hope it's still a thing.
 
The server was used only to authenticate and synchronize the clients. The host of the game would just load their campaign save normally and the date would be sent to the server and relayed to logged in clients.
Makes sense, easier to compute but more vulnerable to any cheat/hack etc. Since its co-op, no one cares that probably anyway.
But since this is the case, P2P TCP Socket would be more performant, I guess. Which was something I had in mind. Small TURN or STUN servers to establish P2P communication and then using a thin layer of data streamer into game for each client. Main driver will again be the game owner.
But eh.. huge amount of work, of course :smile:

Now whether they're still working on it and have just cut out majority of the code related to it, I don't know. But we can always hope it's still a thing.
They are not working on Co-op since 2015-2016. It's completely abandoned. They most likely have plans for reviewing it after full release though.
 
Makes sense, easier to compute but more vulnerable to any cheat/hack etc. Since its co-op, no one cares that probably anyway.
But since this is the case, P2P TCP Socket would be more performant, I guess. Which was something I had in mind. Small TURN or STUN servers to establish P2P communication and then using a thin layer of data streamer into game for each client. Main driver will again be the game owner.
But eh.. huge amount of work, of course :smile:

Oh yes countering cheats was never the priority as as you said, this was meant to be coop with friends. This would have been possible to counter cheating from clients though, but not the host as the host was considered as the reference. Concerning P2P, I thought about doing it at first which probably would have made the network part easier; however I did not do as the idea was to be able to play with a large amount of players if needed which may have caused too much stress for the host.Virtually the limit to the amount of players would have been the bandwidth of the server.
 
Oh? They made an official statement on this?
No one said anything about an official statement :smile:

idea was to be able to play with a large amount of players if needed which may have caused too much stress for the host.Virtually the limit to the amount of players would have been the bandwidth of the server
I think overall the logic of co-op is not suitable for people more than 5 players. Because according to this logic, people should always be active all at the same time with main host, which is theoretically not possible after a certain point. You can, surely hide people if they are inactive, but this also leads to some issues like lack of units to fight etc. And time is also an issue when player X fights against bot 1, others will continue until that battle ends, which is fine, because this is how we are doing it in normal gameplay, if two bot parties are in war, we are watching them based on game date. However, we are and they are also able to join war. And if this happens, then you have to write join war logic from scratch for each war as well. Which will definitely increase the server load as well. So in theory, for each game session, if you have N players, you will have to also support N different battle server and their handlers.
To avoid all this jazz, my initial thought was P2P co-op with a second player, might even be sharing the same party at the beginning to make it easier. And then if one goes into war, either spectate your friend, join as a single soldier by replacing the bot or as enemy general. With that logic, no game date cycle will be disrupted as well. Main battles will be something like Captain mode, and rest of the game stays same. Probably have some holes in the logic though, since I didn't spend much time on it. But either way, it's surely doable and I think C# brings better and more reliable ways to implement this compared to weird Warband MS script.
 
I did some digging trying to work on my own mod, co-op is already in the game files.

EDIT: MenuContext.cs contains a coopservermenu boolean.
 
Taleworlds dropping co-op is complete hearsay, they never made an official statement that they stopped working on it, so all of these rumours are just that- literal vapor.

I just hope you don't pour tons of hours into making this mod and then eventually finding out that a group of good coders have been working on it since before you started, and are incorporating it into the main release whenever that happens. You would be better off making sure first before wasting your time, since this project will be far more time-consuming than any of you guys imagine. But hey, to each his own, it's just one man's opinion, do with it as you please.

Good luck.
 
Taleworlds dropping co-op is complete hearsay, they never made an official statement that they stopped working on it, so all of these rumours are just that- literal vapor.

I just hope you don't pour tons of hours into making this mod and then eventually finding out that a group of good coders have been working on it since before you started, and are incorporating it into the main release whenever that happens. You would be better off making sure first before wasting your time, since this project will be far more time-consuming than any of you guys imagine. But hey, to each his own, it's just one man's opinion, do with it as you please.

Good luck.

Where do you see ANY indication that coop is being worked on by TW? I don't, as far as I can see they are busy enough with the modes available today. I don't see how their priority for this could be any lower.
 
Back
Top Bottom