Is it possible to cooperatively play Strife in its entirety?

Discuss anything ZDoom-related that doesn't fall into one of the other categories.

Is it possible to cooperatively play Strife in its entirety?

Postby StroggVorbis » Sat Mar 09, 2019 4:18 pm

As most of you know, it was originally planned for Strife to ship with a coop mode, similar to its contemporaries Doom, Heretic & Hexen. However, that plan was scrapped pretty late in development. Because of that, a netgame in Strife is by default inherently always a deathmatch game and the -deathmatch x switch parameter doesn't exist. But, since this applies to vanilla/chocolate and the veteran edition only, I wanted to know if it's possible or if anybody has ever tried setting up a coop session in GZDoom. Out of curiosity, I started the game in "fake-coop" mode ("map x coop/dm") and discovered that all maps actually do have 4 coop player starts. The question now is, do all scripts account for more than one player? How do conversations work, if at all? Would someone mind sharing some insights/their experience?

Thx in advance
User avatar
StroggVorbis
Donut eat me pls!
 
Joined: 08 Nov 2017
Location: Germany
Discord: StroggVorbis#2466
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Sat Mar 09, 2019 10:38 pm

Someone would probably have to actually go in and manually design and balance the gameplay, story and quests to be coop-friendly. There's probably a reason why it didn't ship with official coop support - it would have taken extra development time and costs. :)

To cite another example - Morrowind is a single player first person RPG. Then OpenMW came a long - which is an open source port recreation of the game - and added client/server multiplayer to the game. After trying online Morrowind - something which fans have asked for for so many years - I am not convinced at all that the main MW game itself is suitable for online play. A huge chunk of the entire game would have to be redesigned to fully utilize multiplayerisms.
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Re: Is it possible to cooperatively play Strife in its entir

Postby Rachael » Sun Mar 10, 2019 5:12 am

The main issue with Strife coop would be the map transitions. The Doom engine has never been too friendly towards multiplayer hubs - if a player crosses a level transition, all players are yanked into the new level regardless of their position or what they were doing.

This is particularly bad for a game like Strife where there's so many places you need to go, and not everyone wants to do everything in the same order.

Also, those annoying exit blocker pillars would need to be removed in coop, as well.

And then, you also have to make sure that all players get any quest items, which means going over all of the scripts to ensure that.

Solving these problems is ultimately only the beginning. Like Nash said - then you have to get the game balanced, and you have to make sure the systems all work for multiplayer and that nothing really breaks. That's hours of testing.

Once you've nailed that, then maybe you will have a viable coop Strife.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: ATI/AMD with Vulkan Support

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Sun Mar 10, 2019 5:16 am

The level exit scripts would have to be edited so that perhaps all players need to be in close proximity before triggering the level change. Like the Baldur's Gate games.

Of course, allowing simultaenous multi-level gameplay would be technically more superior but from a design standpoint, that's even harder to get right - you now have to make sure nothing breaks in the town map while the other player triggered something in the Sanctuary, for example.

A lot of work, for sure. :)
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Re: Is it possible to cooperatively play Strife in its entir

Postby Rachael » Sun Mar 10, 2019 6:20 am

Nash wrote:Of course, allowing simultaenous multi-level gameplay would be technically more superior but from a design standpoint, that's even harder to get right - you now have to make sure nothing breaks in the town map while the other player triggered something in the Sanctuary, for example.

Neverwinter Nights allowed this - and it was fucking awesome.

Unless, of course, every single level was running looping scripts every tic... then it was a nightmare.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: ATI/AMD with Vulkan Support

Re: Is it possible to cooperatively play Strife in its entir

Postby Kostov » Sun Mar 10, 2019 11:58 pm

I’ve concluded that Strife multiplayer is technically possible, but not at all ideal. The second player would have to act as support more than anything without having any major role in the story:

  • If one player speaks to any character, the other player won’t be able to speak to the same character until both players change levels and return to the same map
  • Quests that the first player receives do not appear in the second player’s log
  • Multiplayer-only items appear, which tears up the balance—I’ve addressed this here
  • If only one player provokes enemies, they don’t attack the second one—could be a pro or con
User avatar
Kostov
RUS/SRB translator
 
 
 
Joined: 26 Dec 2013
Location: Sweden
Github ID: K0stov

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Mon Mar 11, 2019 12:30 am

Undead wrote:I’ve concluded that Strife multiplayer is technically possible, but not at all ideal. The second player would have to act as support more than anything without having any major role in the story:

  • If one player speaks to any character, the other player won’t be able to speak to the same character until both players change levels and return to the same map
  • Quests that the first player receives do not appear in the second player’s log


These sound like engine bugs.
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Re: Is it possible to cooperatively play Strife in its entir

Postby Rachael » Mon Mar 11, 2019 12:36 am

Not the quest items. That's what would have to be changed with a mod.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: ATI/AMD with Vulkan Support

Re: Is it possible to cooperatively play Strife in its entir

Postby Graf Zahl » Mon Mar 11, 2019 1:23 am

There aren't engine bugs but simply a setup that is broken by design. Strife's entire story progression handling was essentially one huge lousy hack. It is simply impossible to shoehorn that into a multiplayer game without hitting some barriers.

That said, the dialogue system itself was made multiplayer-capable, but to pull off a real working multiplayer game with it, it needs to be designed with multiplayer support in mind from the ground up. Fixing what is there after the fact can only result in stacking even more hacks on top of the hacky setup.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Mon Mar 11, 2019 1:43 am

If one player speaks to any character, the other player won’t be able to speak to the same character until both players change levels and return to the same map


This one genuinely sounds like an engine bug. I get that NPCs not being able to simultaneously talk to multiple players might be intentional, but if I stop speaking to a character, other players should then be able to talk to that character, without changing levels. That obviously sounds like a bug.
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Re: Is it possible to cooperatively play Strife in its entir

Postby Graf Zahl » Mon Mar 11, 2019 2:01 am

You have no idea how badly that stuff is implemented...
It is surely broken but not due to bugs but simply because the underlying system was not properly built to handle conversation state in a multiplayer setup.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Mon Mar 11, 2019 3:26 am

Oh, okay I see what you mean now. It just wasn't written to be multiplayer-proof because, well, the original game didn't have it. And over the years, features were just short-sightedly tacked on and duct taped on it over and over again. Kinda like a lot of things in the engine I suppose... :mrgreen:
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Sun Feb 21, 2021 10:06 pm

Bump!!!

So the last few hours I've been hacking away at making a Strife coop patch. With some very powerful tools at our disposal via ZScript, I've managed to tackle some of the initial issues and got a basic coop game somewhat-working. Have a video!



- Using LevelPostProcessor, I've removed the exit barriers and the horribly-unbalanced deathmatch weapon spawns in coop (thanks to phantombeta for help with the latter - figuring out those MTF_ flags on my own was a pain in the butt!).
- Quest status is now shared by all players. If a player advances a quest, all players will receive the same progress. This includes - getting the correct QuestItems and any keys given through dialog choices. You can see in the video, player 2 turning in Beldin's ring, and as player 1 walks out of the room, he receives Blackbird's transmission.
- Quest log status isn't synced across all players yet. I'm still working on that.
- I've managed to do all this, so far, without introducing any new Inventory items, so the entire game is working off the base classes. This should, in theory, make it compatible with gameplay mods (assuming those mods are also coded to be MP-friendly)

There's still quite a ways to go before I think it'd be ready for a full playthrough, but I've laid out some basic battle plans:

Spoiler: "The Plan!"


And now I'd like to reply to some old points raised in the past.

Undead wrote:I’ve concluded that Strife multiplayer is technically possible, but not at all ideal. The second player would have to act as support more than anything without having any major role in the story:

  • If one player speaks to any character, the other player won’t be able to speak to the same character until both players change levels and return to the same map
  • Quests that the first player receives do not appear in the second player’s log
  • Multiplayer-only items appear, which tears up the balance—I’ve addressed this here
  • If only one player provokes enemies, they don’t attack the second one—could be a pro or con


- I've sent a pull request to fix it on the engine side. With the fix, NPCs can be freely talked to by any player, as long as they aren't already in a conversation with some player.
- I'm working on getting the quest log to sync up for all players
- Already fixed
- Not yet addressed, will have to figure out how to handle this
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Re: Is it possible to cooperatively play Strife in its entir

Postby Rachael » Sun Feb 21, 2021 10:20 pm

This does look interesting and I am interested to see how this evolves. You know where to find me if you need help with anything.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: ATI/AMD with Vulkan Support

Re: Is it possible to cooperatively play Strife in its entir

Postby Nash » Mon Feb 22, 2021 10:14 pm

Quest log and Blackbird transmissions are now synced to all players. When the quest log updates, all players will receive it. When Blackbird sends a transmission, all players will hear it at the same time. I had to do this in a roundabout way, which results in a bit of a mess in the console (I am basically re-sending the quest log update and Blackbird transmissions [players] number of times).

That aside, I started working on the player start issues. It seems that there ARE 4 player starts in the maps so it seems the devs had planned it at some point but abandoned it. But here's the problem. The game doesn't use those player starts in netplay, instead teleporting all players into a single teleport location. This is making players telefrag each other.

Using the power of LevelPostProcessor, I have went through the first few maps to hand-place true player starts (while deleting those teleportation points). This feat is no joke. Take a look...

Spoiler:


It works beautifully (player starts and respawns now work exactly like in Hexen), but damn if this isn't burning me out. I may seek help with regards to patching the player starts soon. This is something I have little patience for...
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Github ID: nashmuhandes

Next

Return to General

Who is online

Users browsing this forum: Redead-ITA, WaterMelon 64, wildweasel and 5 guests