SamuKata
Yui
Yui

patreon


[Update] Dark Souls 2: Seamless Co-op (2)

Hi everyone!

I hope you're well - The last update post for this project was all the way back in May of this year.

To clarify, I have been very busy with my personal life since July and as a consequence all of the mod development for my projects have been slow and delayed. However I hope by reading today's update post it will seem a little closer to being playable.

Differences in game design & difficulties

Dark Souls II is an entirely different beast to the other games. It is poorly understood and my ability to bring forward knowledge from my years of working with the other Souls games is severely impaired - it's practically like working on a completely different IP.

As an example, it took several hours and several patches to the game's code just to get something as simple as host-based objects (i.e. a chest in Majula) to be able to be opened by guest players, spawn the item inside, and update for the rest of the session.

That being said whilst I really enjoy the challenge that this presents it does inevitably mean that the mod development is slower and more care has to be taken with some of the features that I've taken for granted in previous Seamless mods.

Leveling up with a co-op partner at the bonfire

Milestones for development

1) Connectivity

The way that Dark Souls II handles multiplayer connections is radically different to the other games in the series, as it relies significantly more on the game's server implementation to perform player validation and exchange initial handshake & encryption key packets between connecting players.

To address this, I had to re-design and update the matchmaking interface that all of the other seamless co-op mods use (named: YuiNexus) to an adapted version that behaves more like the Dark Souls II matchmaking server. Instead of facilitating P2P connections by sharing the game session info with connecting players, it will instead mimic the matchmaking server when an incoming connection is detected and then once the session is created it will share the information with the person who is connecting.

In practice, the above means nothing for the end user, but I'm very happy with how it has been working so far, as the connectivity issue was one of the most challenging parts of developing this mod.

2) Synchronicity

One of the main points of the seamless co-op mod is the ability to play through the entire game with a group of players - from start to finish with no interruptions. This has been partly achieved, and right now it is possible to play through most of the game without issues. The only exception to this is certain events that warp the player which currently do not work in multiplayer.

This should be fairly easy to fix, and it just requires me to play through the game, find, and fix these instances.

3) Bonfires (& synchronicity again)

Bonfires and their use has been a contested issue in the seamless co-op mods. On one hand some players enjoy splitting up & warping away from their group to do tasks in other areas whilst most players want to stick with their group to play the game together.

Inevitably, the latter option is significantly more stable. In the seamless co-op mod for Dark Souls II, maps and their assets are loaded based on who is in which area. If player B warps to a different map than player A, the maps both players are in should still remain loaded for both players.

Whether I enable individual warping or not is something I am still considering. Certainly in early development and test builds warping will mostly likely be restricted to the host only just to avoid severe issues.

Next steps

1) Game progression

Game progression between host and client is currently incomplete as it is not synchronised. Just as in the vanilla game, world progress achieved in the host's game will not be reflected in your own world. This is what I am currently working on.

2) Invasions & extra multiplayer features

Invasions usually take a back seat whilst in early development. As the mod is primarily a co-op mod, my time and focus will be on those features first and foremost. This will be added but likely as a penultimate step before final release.

That being said, the mod has been designed with invasions in mind, so developing them should be as simple as flipping a switch and adding a few more multiplayer conditions to the matchmaking interface.

3) Bug-testing & game-play

As a final development step. I will need to play through the game with a few friends just to make sure bare minimum features are working as intended. At this stage, I may open some kind of early access for supporters as a way of thanking you, and as a valuable asset to help identify and fix bugs as they come up.

The death counter is something I hope to have working as an extra addition to the mod closer to release

Final notes

After my exams later this month, I will be able to dedicate more time to this project. My goal is to still have it finished before the end of this year and hopefully to have a working test build that people can try out before then.

I cannot emphasise enough how much work has and is still going into this project. I'm having to re-design large networking and entity structures just to allow two multiplayer clients to go through the game with no issues.

Thank you for your patience and support. It is incredibly motivating and really helps me keep up these passion projects so people can enjoy these games with their friends and family for years to come.

If you have any specific questions then feel free to leave a comment here or send me a message.

I'm going to try and make WEEKLY posts at this stage just to give updates.

[Update] Dark Souls 2: Seamless Co-op (2)

Comments

Wish you well on your exams and I can’t wait for this to drop yippee 😁

Darkest hour S

thx man

game_or -

<3

ThirdStrikeEnjoyer

Thank you for the work you have done on this. You are a pillar of the souls online community!

Lando


More Creators