HX - A DeusEx Coop Modification

A refuge for those migrating from the fallen DXEditing.com and a place for general discussion relating to Deus Ex editing (coding, mapping, etc).
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

HX - A DeusEx Coop Modification

Post by Hanfling »

HX is a Coop Mod for Deus Ex which focuses on making the singleplayer storyline playable in Coop.

I want to start working on the conversation system in the near future, but i haven't yet decided how it should be. There are two possibilities:

(i) On player talks to the NPC and all other players see this conversation if they were that player, all other pawns are frozen like in sp.
(ii) Only one player is actually really in this dialoge system, and nearby players see the conversation as barks.

(i) somehow sucks, because it interrupts game flow for the other players. But there is one huge problem anyway: What should happen if the talking player leaves the game or gets killed? If two conversations run in (ii) this might have some game logic issues (but maybe circumvented, by only allowing one conversation). (i) has the problem of interrupting all players datalink playbacks.

What are your thoughts about this issue?

/edit:
Can anyone supply 3rd person corpse carrying animations? Animations for the player that he ducks so low that his head won't stuck in the ceiling would also be nice.
Last edited by Hanfling on Wed Jun 17, 2015 10:09 am, edited 3 times in total.
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
Cybernetic pig
Illuminati
Posts: 2284
Joined: Thu Mar 08, 2012 3:21 am

Re: HX - A Deus Ex Coop Modification

Post by Cybernetic pig »

(ii) is the best for reasons you mentioned, but the logic issues would be hard to circumvent: Player picking up important objects (DTS for example), shooting NPC's in conversation or nearby NPC's, causing general chaos, talking to other NPCs as you mentioned, and just about any code you wouldn't want called on during a conversation... I say go with (ii), but I don't know the DX code well enough to clarify just how hard it would be to circumvent it all, but I'm guessing you'll be pulling your hair out at times....If you have any left that is, learning to code is frustrating to begin with, but I'm getting there.

Probably best to go with (i).
Hanfling wrote:But there is one huge problem anyway: What should happen if the talking player leaves the game or gets killed? I.
if (anyPlayer cumulative hitpoints<=0){
GAMEOVER;
}

If one of the players dies or leaves it's mission failed for both? Would be good since CO-OP would make the game significantly easier and this should counter it a bit. But this way you wouldn't be able to have drop in/out co-op either, yet I still think it would be better this way. Drop in/out is immersion killing and defeats the point in co-op to begin with.
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

Re: HX - A Deus Ex Coop Modification

Post by Hanfling »

Coop is to a degree immersion killing anyway. E.g. take Unreal 1. No one reades the Universal Translator Messages in Coop. But drop in/out should be allow, game over is not an option. I thought last night of just saving the "frame" of the conversation and let the next player continue from there. But getting killed does not ruin the immersion, remember in sp you can also get killed or reload and reload the savegame which stops the gameflow, which is more immersion killing imho.

Trust me, i have more then enough hair left and spend a lot of time of messing around with dx code (and complaining about it).
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
Cybernetic pig
Illuminati
Posts: 2284
Joined: Thu Mar 08, 2012 3:21 am

Re: HX - A Deus Ex Coop Modification

Post by Cybernetic pig »

Hanfling wrote:But getting killed does not ruin the immersion, remember in sp you can also get killed or reload and reload the savegame which stops the gameflow, which is more immersion killing imho.
I never claimed it did.
Trust me, i have more then enough hair left and spend a lot of time of messing around with dx code (and complaining about it).
:shock:

It suits you :smile:
Captain_Destro
UNATCO
Posts: 100
Joined: Wed Sep 28, 2011 10:48 pm

Re: HX - A Deus Ex Coop Modification

Post by Captain_Destro »

I actually found a way to have NPCs function and attack in Coop, but the dialogue and conversations threw me off.
atrey65789
Thug
Posts: 49
Joined: Tue Jun 26, 2012 3:32 am

Re: HX - A Deus Ex Coop Modification

Post by atrey65789 »

Basiclly all players who are playing the mod, must be linked...

if a player picks up the dragon tooth sword, tell all the other players that that goal has been completed, not just for the guy who picked it up.
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

Re: HX - A Deus Ex Coop Modification

Post by Hanfling »

Captain_Destro wrote:I actually found a way to have NPCs function and attack in Coop, but the dialogue and conversations threw me off.
Fixing the Weapons is simple. There are plenty of other ScriptedPawn related bugs i had to fix, like mechs are shaking the view even if the player is too far away, all pawns troughtout the level come running to a fight (unlike sp), replaced ScriptedPawn (by a mutator) are stuck somewhat in the ground, shadows on clients, etc. Still have to fix Enter/Leave world MissionScript related stuff.
Remember MedBots/RepairBots? The keep wandering around and stop when you use them? This works now in hx too, i copied the system which is used for computers in mulitplayer.
atrey65789 wrote:Basically all players who are playing the mod, must be linked...

if a player picks up the dragon tooth sword, tell all the other players that that goal has been completed, not just for the guy who picked it up.
Not just for goals (partly done, but no goals can be added for now since they are gained through convos/datalinks), same applies for NanoKeys (remain serverside, but nano key list need to be replicated to the clients) (done), notes of datacubes, etc (done.. they are added for each client, but whole notes system will be reworked so all players share all notes, and can edit them, and edited / user added notes appear on other clients, i have some ideas how to implement that..), images (undone), conversation history (undone). also all flag related stuff must be changed (partially done).

But those are the "small" issues. More severe is stuff like saving levels and level changing with keeping inventory (works pretty well, but my mover class change hack is incompatible with it). The inventory system is also pretty fucked up and not really mp compatible. (undone). Decoration system lags pretty hard in mp, and i'm trying to make the decorations simulted proxies, but thats a bit problematic.

The more you work on a coop mod, you will notice more and more issues/differences to sp. But so small stuff like the rep/med bots stopping, or mission startup display or compass working right are also important, since they are important for the feeling of deus ex, but also take a lot of time.
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

Re: HX - A Deus Ex Coop Modification

Post by Hanfling »

Does if anyone know if there are Datalinks which check non boolean flags (if they are used/supported at all)?

/edit
Oh btw:
Barks now seem to work:
http://coding.hanfling.de/hx_barks.png
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
G-Flex
Silhouette
Posts: 621
Joined: Mon Jul 11, 2011 10:16 pm

Re: HX - A Deus Ex Coop Modification

Post by G-Flex »

I'm pretty sure the infolink system doesn't support that at all, but don't take my word on it. Should be pretty trivial to check the code. I do know that DataLinkTriggers don't, though.
nerdenstein
Illuminati
Posts: 1591
Joined: Thu Apr 24, 2008 7:40 pm
Location: Leicester, England, UK.

Re: HX - A Deus Ex Coop Modification

Post by nerdenstein »

That's quite cool! Does this mean you've also got the Inventory System working?
I only ask because you've got the Keyring and the normal toolbelt in that image.
The real trouble with reality is that there's no background music.
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

Re: HX - A Deus Ex Coop Modification

Post by Hanfling »

If you set bBeltIsMPInventory=False on Players inventory works to some degrees.
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
DDL
Traditional Evil Scientist
Traditional Evil Scientist
Posts: 3791
Joined: Mon Oct 17, 2005 10:03 am

Re: HX - A Deus Ex Coop Modification

Post by DDL »

The convo system only accounts for bools, in vanilla.
I coded most of the conversation system to allow int/byte/whatever checks, but I did so terribly, by using very specific flagname syntax and checking for it (i.e. 'INT_PlayerDouchiness_GT_7' makes the convo system look for the int flag of playerdouchiness, and check whether it's greater than 7).
It's hacky but it works, so you could probably do that if you wanted.
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

Re: HX - A Deus Ex Coop Modification

Post by Hanfling »

Excellent. I just wanted to know what i should replicate to the client. Using only booleans for flags is fine. I just want the vanilla game running in coop. In UE only data types less (or maybe equal) then 448 bytes can be replicated. Flagbase has an array of 64 flag entries. If i use a 32bit hash for the flagnames, it would be 64*4 byte = 256 byte. Another array just consisting of booleans would be again 256 byte (this would be the convenient method, allthough 2 integeres are enough for storing all flags).
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
DDL
Traditional Evil Scientist
Traditional Evil Scientist
Posts: 3791
Joined: Mon Oct 17, 2005 10:03 am

Re: HX - A Deus Ex Coop Modification

Post by DDL »

I'm not entirely sure about the 64 flags, actually.
I mean, you're much better at all this coding stuff than I am, but (as far as I can see empirically) despite it being declared as a 64 member array, the actual game seems more than capable of tracking the status of flags in excess of this number. Every conversation sets a _played flag automatically, for instance. Even with those expiring after a mission, by something like...mid hongkong, checking the flag list via the legend menu brings up a shitload of flags.
Hanfling
MJ12
Posts: 406
Joined: Sun Oct 04, 2009 6:54 pm

Re: HX - A Deus Ex Coop Modification

Post by Hanfling »

I hate Ion code. :D
Okay Flag has a member var private travel Flag nextFlag; Seems quite possible that they are a just linked list and not stored in the table. Barf! I should fire up IDA Pro and take a peek. But i could easily go up to 112 (or 111) flags or sort some flags out which might not be related to datalinks. I have no savegame of later missions around to check how much flags are actually accumulated at the end of the game or a mission like in HongKong.

/edit:
I could also fill the client list via RPCs, but thats not good for network performance and makes code way more complicated.
I demand my DXE User ID back. Launcher for DeusEx, Rune, Nerf, Unreal & Botpack. HX on Mod DB. Revision on Steam.
Post Reply