Deus Ex coop modification to play the singleplayer storyline in multiplayer.

Add media RSS Gameplay Footage #1

Hold the phone! Where did this come from? Lol I bet this is taking some time to port over to MP, eh?

Reply Good karma Bad karma0 votes
Hanfling Author

Actually caused by me because I had two instances of the game running at the same time, so they playback the sound with a small delay which sounds like reverb.

Reply Good karma+1 vote

But how does one play conversations in multiplayer? I was under the impression such things, along with parsing text from information devicse, was totally non-MP capable code. Nice work though, that's for sure.

Reply Good karma Bad karma+1 vote
Hanfling Author

As for TextParser, it has been a long time and i can't remember having serious troubles with it.
For conversations, i use a serverside playback, for datalinks a clientside along a serverside datalink dryrunner handling the logic. However one of the clientside issues was that the DeusExLevelInfo got removed and thus the clients lost the ability to check which ConversationPackage to use. Binding conversations does work in multiplayer and is not strictly tied to having the DeusExLevelInfo around. However I moved most of the converation code off Player to GameInfo and use replicated functions for displaying next conversation screen or bouncing back a selection choice to the server. One thing worth to mention is that just the BindName matters when binding conversations to an Actor. Thus my GameInfo has JCDenton as BindName. Another thing which is kinda annoying that you might get the wrong player for the events in ConPlay and need to account for it. For lipsynch you basically need to know that lipsynch is done whenever the pawn is playing a sound and bIsTalking is true. Also you need to add some remap system to be able to stop the conversation sounds on clients when you skip over sections, etc. So much for the basics. Technically the conversation system was one of the rather easy parts.

Reply Good karma+1 vote

Most impressive analysis. I have to admit a lot of that sounds dicey with replication and hack-y with convo bypasses. For the latest broop I'm working on I just took time to transcribe all couple hundred or so of the datacubes by fraps screenshots and retyping by hand, and I've specifically re-included datalinks only, but without any window and visual cloggage, so it currently just matches missionID$DataLinkTag (roughly speaking) and translates that into the proper conversation audio file and plays it per-player on the player (if their listener status is engaged in broop brofiles), but it seems in MP you need to have the host include said convaudio packages in the serverpackages.

Undoubtedly, your method is better though.

Sweet work on it all, regardless. I look forward to seeing someone take a more comprehensive swing at cooperative campaign gameplay, as broop mod (especially public, as it's a lot of cut fat that makes the package tasty) is rather minimalist and pro-time efficiency in its design approach. Hell, in theory broop mod's approach is so minimalist it might be partially or even largely compatible with your coop, in theory. But I'd have to test that one first hand off into the future lol.

You have my interest for sure. ~WCCC

Reply Good karma Bad karma+1 vote
Hanfling Author

You could have saved you the screenshoting by just exporting the DeusExText package (there is a tool for it around). And indeed you need to add add some ServerPackages or things go weired regarding FNames. But you won't need to add the audio only files.

Currently i have:

Maybe these snippets are of some use for you regarding DeusExTextParser and Conversation handling:

Reply Good karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.


Some older footage. The messed up audio is caused by two client instances running on the same computer.

Add media