Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
printz

How was/is cooperative in vanilla Doom?

Recommended Posts

All cooperative games I've played lately by using Zandronum or ZDaemon have had modifiers that weren't in vanilla Doom: limited lives (survival), no friendly fire, infinite ammo, respawning items, preserved inventory (keys and guns). In vanilla Doom it was quite raw, just single player with infinite lives and staying weapons. Was it fun to play or was it too likely to hit your teammates and make them lose nearly everything (no way to make items respawn; just monsters)? Also F12 would not show you your teammates stats, only the camera would switch to their view.

Share this post


Link to post
printz said:

Was it fun to play or was it too likely to hit your teammates and make them lose nearly everything

Personally I think that's all part of the fun. Having to avoid shooting your friends adds a layer of strategy to the game.

Share this post


Link to post

Yeah danger from friendly fire adds another dimension to the game, it really reinforces that you have to work as a team, instead of a bunch of individuals running around all chaotic-like. Although sometimes one player gets pissed (or wants to goof off) and it turns into improptu DM session with monsters (can be fun occasionally). Anyway, seemed natural to me, since that's also how it went down in Hired Guns.

Share this post


Link to post

Yeah but if it were real life, you would easily shout at teammates where to go and where you're going, so that nobody will get shot. In vanilla Doom it would take awhile to write the message, only one message will ever be visible, and there will be no log to browse. That would make communication difficult, right? Or are things done differently, by planning ahead, so there will be as little arguing (and lost messages) as possible during the fights?

Share this post


Link to post
printz said:

Yeah but if it were real life, you would easily shout at teammates where to go and where you're going, so that nobody will get shot. In vanilla Doom it would take awhile to write the message, only one message will ever be visible, and there will be no log to browse. That would make communication difficult, right? Or are things done differently, by planning ahead, so there will be as little arguing (and lost messages) as possible during the fights?

Vanilla Had LAN and Serial Cable as the prominent methods of playing. Modem existed, but I personally never got it to work in any useful capacity.

Anyway. You talked as you generally had the computer next to each other.

Share this post


Link to post

I played over null modem cable, LAN, and also 14.4k modem. Communication wasn't a big problem over modem, because the monsters are dumb and slow to react. You can outrun them and/or park yourself in a spot they won't go and type lots of messages. There's also the configurable chat macros (hit T, then Alt 0-9) but I don't remember using them except for taunting opponents in DM. Anyway if you're playing without mouse, it's fast enough to hit T and type a message. And today even though mouse is standard, you have the option of running a voice chat program at the same time that you're playing Doom over broadband. I don't play online much anymore (just a few sessions of Odamex now and then) and still find the keyboard adequate.

Share this post


Link to post

Wait.. the main point of the question seems to be more about friendly fire, and whichever way you're thinking that means, you couldn't hurt each other. Non-issue.

I never bothered chatting much with people. There was never much communication or coordination. If you wanted to and were able, you could find a quiet spot to type, or just do it when you died. Back then I never even considered the possibility of making it all the way through Doom 2 without dying.

Share this post


Link to post
kristus said:

Vanilla Had LAN and Serial Cable as the prominent methods of playing. Modem existed, but I personally never got it to work in any useful capacity.

Anyway. You talked as you generally had the computer next to each other.

Wow. I never had access to a network and only ever played over the modem. I guess I figured it out because it was my only option.

There was a local 4-line BBS that we played Heretic on once. I don't remember how process went for that, but we only ever played 2-player so it was pointless anyway.

Share this post


Link to post
qoncept said:

Wait.. the main point of the question seems to be more about friendly fire, and whichever way you're thinking that means, you couldn't hurt each other. Non-issue.

I don't know what source port you're thinking of, but in vanilla Doom, you can hurt each other in co-op. It even auto-aims at the other players. It's almost as bad as Battletoads. It is certainly not a non-issue.

Share this post


Link to post

Love coop in vanilla - whether it's modem/LAN.
Agree that having to keep an eye on your buddies regarding gunfire is a nice little challenge.
The F12 sneek peek was always highly amusing especially if someone was new to the game.

Share this post


Link to post

Coop in vanilla was superb. Not just because it was Doom but because it was a totally new experience for me. To be able to play through a game with a team mate on a different computer was just amazing. It's such a shame that coop has been so neglected in comparison to competitive modes like DM these days. How many games these days allow you to play basically the single player game but in coop mode? Of those, how many are worth playing in the first place?

Share this post


Link to post
Enjay said:

How many games these days allow you to play basically the single player game but in coop mode? Of those, how many are worth playing in the first place?

Well, there's the Diablo or WoW genre at least, heh.

Share this post


Link to post

I agree it's sad that coop is neglected in c/s ports. The reasons are largely technical though.

1. A lot more happens in coop.

Monsters spawn all kinds of things, and they each have pretty different behavior. You end up adding a lot of netcode to handle all of it, and about 80% of the way through you think, "this is ass, fuck Maulotaurs", and you stop.

2. Scripting (ACS, etc.) is hard to write good netcode for.

Hopefully the ST2 (Zandronum, I refuse to accept the horrible new name) people can shed more light on this one, I'm pretty ignorant about this. But I have thought about it a little, so here goes.

Think about how you trigger scripts in a level. Most of the time you activate some kind of line special, but there are other ways.

There are two extremes to implementing support for scripting in netcode. Either you can be entirely serverside, which provides perfect sync but horrible lag, or you can predict things clientside, which provides no latency but might get out of sync.

Prediction is a common solution to the latency problem. C/S ports use it to move immediately, activate line specials immediately, move sectors smoothly, etc. Without it, clients would have to wait for server confirmation before anything happened, and put simply that blows.

Generally it's pretty easy to fix prediction errors. If you predict your local player to be somewhere they're not, you just zap them to wherever the server says they were. If you predicted a door to open but it actually didn't, you just zap it closed again (and if you thought you went through that door, you're zapped back behind it as well).

Fixing prediction errors due to scripting desyncs is extremely hard. Some stuff is trivial, like who cares if you triggered an on-screen message improperly. Other stuff is fixed with the old methods - zapping, basically. However, there's no easy solution for resolving desyncs in interpreter state. What if a script modifies a global variable? What if a script modifies internal engine state?

Ultimately you end up saying, "OK, some things can be predicted like on-screen messages, but clients have to wait for the server for other things". This means a couple things:
- You're gonna have to figure out some way of splitting that stuff up
- You're gonna write a bunch of code

"You're gonna write a bunch of code" falls into the "this is ass, fuck Maulotaurs" category of development.

===

I haven't thought this all the way through, but maybe it's worth moving the effort into the scripts themselves. For example, if you wanted to create a new game mode, you'd want to define a few new line specials, maybe a new scoreboard, some new internal state - like scoring, and some new logic (rules).

A lot of that can be predicted, or just run entirely clientside. Line specials that trigger sector movement are usually predicted, and a new scoreboard is just graphics and math.

Other stuff, like scoring or rule enforcement, has to be serverside. Since the modder is the only one that really knows that, maybe it's best to leave it up to them.

How exactly, I don't know. If you were doing Python you could use decorators maybe, although I spent a solid hour on it and didn't really resolve all the issues (how do you easily confirm or deny a prediction was accurate?).

So maybe it's better to do this stuff at a very low level, and keep it hidden from the modder.

===

More on topic: best part about vanilla coop was being in the room with whoever you were playing with. Sure it's more convenient to use launchers, plus you get to play with people around the world, but it was tons of fun to sit around eating junk food, drinking coke, and blowing up hellspawn together. Now it's basically trying to have a LAN party at your house, and either you look like you're desperately trying to not die alone (please be friends with me and come play video games) or you get a bunch of anti-social, "I like my setup at home, let's just get on Live dude". Lame.

Share this post


Link to post

I gotta add a little pointer for folk playing vanilla/Chocolate cooperative and lacking voice chat. Run the game with a WAD that makes the pause graphic invisible (here's one), pause the game when a nasty situation arises and then use the text chat to come up with a coordinated plan as necessary. Make sure it's ok with your teammates to pause the game beforehand, though.

An interesting, survival-esque variation of vanilla coop is to mutually agree not to use player respawn, restarting the level and server upon all players dying. If it feels too challenging, keep in mind that vanilla allows mid-game saving in multiplayer too. Thus allowing a save or two during a level can make things feel more relaxed. Of course all this requires closing and restarting the game executable, so setting up shortcuts or batch files for the stuff makes it much less of a hassle.

Enjay said:

How many games these days allow you to play basically the single player game but in coop mode? Of those, how many are worth playing in the first place?

Personally I feel there have been many great campaign coop games during the last few years. Off the top of my head I could recommend Alien Swarm, Castle Crashers, Jamestown, Lara Croft and the Guardian of Light, Orcs Must Die 2, Rayman Origins, Renegade Ops, Sanctum, Streets of Rage Remake and the Trine games. If you need further ideas, this site should be helpful.

Share this post


Link to post
Ladna said:

I agree it's sad that coop is neglected in c/s ports. The reasons are largely technical though.

Strange since for awhile Zandronum used to be accused of being co-op centric for awhile since "no one played competitive modes."

Regarding ACS net code. Zandronum runs ACS completely server side unless the script is flagged as a client side script. The only time this really becomes a problem is with jump pad scripts in high latency servers. There's also the issue of hud messages consuming a large amount of bandwidth if the mod author does not take CS ports into account. I personally don't think it's a good idea to force the mod author to think about bandwidth reductions like we are, but given that the other option is to ensure global variables and such are synchronized I'm not sure there's a better way to do things. There's also a slight issue with ACS and net code in general (includes P2P) in that there are a few commands that depend on outside data (getcvar for the obvious example).

Share this post


Link to post

coop in its survival form is going strong on zdaemon and zandronum. the original friendly fire+infinite lives form is (mostly) dead, because often times you have to play with idiots and abusers online. that's about it.

i played a ridiculous amount of doom2 iwad coop over LAN and it usually devolved into killing each other and pistol-tickling the free roaming cyber on map15. also there was a lot of typing... and typekilling.

Share this post


Link to post

I've played vanilla coop this year and it's fun, especially if you already know the levels. Speed running or simply killing all the monsters is great there. I think that exploration (FDAs) works better in single player than coop because of the uncertainty and having to coordinate with your buddy.

dew said:
coop in its survival form is going strong on zdaemon and zandronum. the original friendly fire+infinite lives form is (mostly) dead, because often times you have to play with idiots and abusers online.

It's not really dead, and while survival mode is arguably more popular now, the more classic modes still attract a good number of players at certain moments. Sure, there are trolls but those do much more damage to survival severs than servers where at most a death makes you lose some weapon or time. Public coop has always been about chilling and not taking it too seriously, in any case.

Share this post


Link to post

Vanilla co-op? Good times!

It was some of the best fun you could have on a LAN with three other players, if you were able to communicate properly (i.e. didn't sit there going "uhhhh, that door, um," or spout other vague, unhelpful comments during a skirmish, etc. -- the #1 cause of blowing your friend's legs off with the SSG was through piss-poor communication) and if most of you knew the way around the maps (or had a good sense of direction). The infinite lives aspect was balanced by not having respawning items -- in addition to all sorts of extra Hellspawn crawling around the area -- so once all the ammo on a map was gone, that was it. You worked with what you had, and fuck you if you die.

Speaking of which, fucking up and dying could exponentially increase the time taken to complete a level, and understandably, this is where a Co-op game would often turn into a blame game, and then rapidly descend into a makeshift Deathmatch to sort out our differences before trying a different WAD.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×