Is someone interested in a Coop mod?

co-op i roguelike is hard thing to do but is possible, in other roguelike named rogue survivor it was possible to do hot seat game (by reviving yourself after someone kill you) but this was buggy like hell and time was wrong and it was something like that

  1. turn player 1 move
    2.turn player 2 move

this slow down players by half and more players = more turns ai can do before player can move

fixing this and making a option to place more player characters and makie controls go from player to player will allow to play hotseat but sleeping and reading will be realy slow or time will go faster for everyone

Also, i would requote my suggestion on the first page, but i will let you look for it. I think it’s the best approach.

Oh, if you really want it… 3 page explanation of the “simple” idea behind Interhack. No idea if it actually works, it’s been looong time since I tried it (early 2.x version), but judging by the version/date of the latest release the man is working steadily on it.

Of course transplanting his implementation into Cataclysm would probably require major rewrites, lots of effort and major breakage, possible to afford after, if ever, C:DDA reaches stable z-levels/better NPC era.

anywayz,
eai

i can’t remember the name, but some years ago i’ve played a multiplayer rogulike
you have like 5 second to do your move, if you do nothing then the turn pass to the other player
it was fun, i’ll try to find it and post if you are interested

found it

http://www.tomenet.net/

give it a try

thats could work and tbh cdda as coop where i could actually see my mates etc on same map at same tim would be bloody amazeing.

The time limit to make your move could work tbh so player 1 decides to move forward player two does the same them computers turn then back to player 1 :slight_smile:

I know this is a possible necro bump, but I possibly figured out how to do this, but it would be Resource intesive and would require a rework of the saving function to be Viable, But can still be achived without too much work

Due to the nature of Shared maps, which i will explain my understanding of how they work, there are ways to exploit the Reality bubble and saving to get a Possible Co-op without too many changes.

Ok, Say I’m playing on a shared map, and me and my buddy get the same spawn, The way the Sync works is that the Last change Sticks, so if he makes a change and i dont refresh (I.E Save and quit before he saves and quits) then he Saves before i do, my changes overwrite his, Causing whatever he did to be lost.

Now the refresh can be achieved multiple ways, you leave the area where the changes are made (move far enough that your reality bubble no longer contains the changes then move back), or by doing the Save and quit “Dance”

Lets look at how we can exploit the Reality bubble and get a possible co-op solution.
If we were to Refresh the reality bubble every second, it would cause changes to appear immediately, Now to keep a constant sync, you would ether have to: 1. Save every turn 2. Save every second (Probably not the best idea) 3. Create a network 4. Save on changes certain changes and only save the changes and not every thing (This would be the save rework i was talking about).

1, 3, and 4 are the most viable, but 3 would not work unless you change more code
1, 4 are the most viable and the quickest to implement, 1 being the fast of them all and 4 being something later down the road.
At this point your probably all saying, What about Turn’s.
Well if you request Co-Op, then don’t expect Conformity.

Besides that, Let’s talk about visually seeing other players.

Instead of reworking players we can just exploit what’s already there by using NPC’s
So If we go with sync option 1 and 4, all we would have to do is save the player and Add an NPC Directly on top of the player.

It might look funny and might cause a bit of problems with them talking to you, but we can fix that by setting the NPC to friendly (All NPC’s sync their status, so if there friendly to one, their friendly to all)
But, we would need to keep him still, So When we set him to friendly we would have to set his leader, IE the person who “tamed” him to a non existant or dummy char.

Then, As we move around, we will need to Make the Old one (the NPC we left behind) vanish (IE, kill him and delete his stuff) And create a new one on top of our new position.

Sense our Reality bubble updates every second, when one player moves around, the NPC would move around on the others screens.

Now, PVP is something that would be something that would need to be considered, but Is not needed for a proof of concept. But i’ve thought of that too.

So To handle PVP, you would have to Sync the NPC’s health To the players. So if the NPC gets hurt so do you. And vice a versa. Also on top of that you would have to sync the players actions, equipment and stats to the NPC allowing for Proper representation of Armor, Defensive/Offensive stats, abilitys and Also weapon handling.

Also, Another point that i think i seen mentioned is ingame time. Personally, It woudnt break all that much to have time be handled on a player by player basis unless PVP was put in, Because what fun is it to have someone see and kill you when you cant see nor kill them.
So in that case you would have to “Break the game” alot, I.E have The time be a global thing, having one user Sync the time to all others (So player who has been on the longest, controls time) and have the time advance as per the relation to one turn (I.E let the equivalent of one turn pass IRL, then advance In game time 1 turn but not make an actual turn pass) Thus making time be a Global thing.

Really, I think that solves the Process of how do we do it, now its up to people to make it happen.

Peace.

Ok, since the foes got the needed code.overhaul, it’s much easier to imagine a coop mod. The thing is, everything in a RL game is balanced for the singleplayer experience; and I don’t believe pointing out the massive ammount of spare goods in urban areas is a valid counter-statement. Thus, the timeline of CataDDA could become dispoportional at times - and it’s a good thing - but things oughta get fuzzy, if you catch my drift. For example, if both players get 2000 (or 5k, doesn’t really matter) turns before server sync, the game needs to “count the time” a bit slower (or make the turns a bit quicker, from a different angle) simply because most team efforts aren’t as coordinated as we’d want them to be. There could even be a cap (a “thinking cap” should it be called anyhow) so for the base of 2000 turns, the maximum leftover turns for one player could be 15%, or 300 turns; this way you could justify the small difference between two players’ clocks on the user-end (the other player needs a bit of time to catch up).
The main issue here, in my humble opinion, is handling the fighting/running_away bit(s). Player characters are not NPCs, and they will sometimes wander off. Do you chess-clock (turn-for-turn) the game dynamics when any of the players encounters an aggressive, advancing enemy such as a zombie? Should you do it only if it occurs on the same map tile (a house, for example) or do you make it dependent on the line of sight (meaning the max/daylight value), so you have the same co-op advantage over the scent mechanism of the enemies, just like with single player? And finally, how would you handle the whole action_points/sync subroutine if a player is rushing to the aid of another one and runs out of turns mid-way to where the action is?

I believe these to be the issues that could prevent a good co-op experience from happening throughout the game, and I don’t care for a simple join/quit the party 'cause it wouldn’t suffice.

[quote=“vultures, post:28, topic:5800”]Ok, since the foes got the needed code.overhaul, it’s much easier to imagine a coop mod. The thing is, everything in a RL game is balanced for the singleplayer experience; and I don’t believe pointing out the massive ammount of spare goods in urban areas is a valid counter-statement. Thus, the timeline of CataDDA could become dispoportional at times - and it’s a good thing - but things oughta get fuzzy, if you catch my drift. For example, if both players get 2000 (or 5k, doesn’t really matter) turns before server sync, the game needs to “count the time” a bit slower (or make the turns a bit quicker, from a different angle) simply because most team efforts aren’t as coordinated as we’d want them to be. There could even be a cap (a “thinking cap” should it be called anyhow) so for the base of 2000 turns, the maximum leftover turns for one player could be 15%, or 300 turns; this way you could justify the small difference between two players’ clocks on the user-end (the other player needs a bit of time to catch up).
The main issue here, in my humble opinion, is handling the fighting/running_away bit(s). Player characters are not NPCs, and they will sometimes wander off. Do you chess-clock (turn-for-turn) the game dynamics when any of the players encounters an aggressive, advancing enemy such as a zombie? Should you do it only if it occurs on the same map tile (a house, for example) or do you make it dependent on the line of sight (meaning the max/daylight value), so you have the same co-op advantage over the scent mechanism of the enemies, just like with single player? And finally, how would you handle the whole action_points/sync subroutine if a player is rushing to the aid of another one and runs out of turns mid-way to where the action is?

I believe these to be the issues that could prevent a good co-op experience from happening throughout the game, and I don’t care for a simple join/quit the party 'cause it wouldn’t suffice.[/quote]
You do bring up good points, But your argument about NPC’s was already thought of, The system that i would implement Completly Takes out the normal NPC behavior by Ether Spoofing the player as an NPC (its being considered) Or by what i mentioned, By simply Removing the old NPC as you move and spawing a new one, OR (as i just thought of right now) Have the NPC’s Goal be to always be on your square, Thus having move with you

Also The Monsters would be Updated as a map change not a Reality buble change, so if someone does a turn it will move for everyone, Thus the need for some sort of external communication (But remember, This whole idea of Co-OP REQUIRES the breaking of what people call, A normal roguelike. Also now that i think of it, This is also how Actual real time would work, With small pauses if no one is moving in a reality bubble (no one said this would make sense))

P.P.S. remember that The Sync is only needed when something inside YOUR reality bubble changes, Because The last change inside a reality bubble sticks, Codehero could probably explain better

I was actually dwelling a whole lot more on a proven system, that lets you have a couple thousand turns before a timeout occurs. You know how you encounter under/overskilled players most of the time; they need to think some things through more than you do, or vice-versa? The co-op gameplay could get balanced if the system is implemented. I’m also considering the least ammount of code that needs to be changed here, with certain parameters left for modding purposes.
Another thing that comes up in mind, as a subsequent benefit, is preventing of a co-op effort from becoming two solo efforts. If player_1 is suffering from the flu and needs some time to sleep it off, CataDDA could calculate the sum of turns other player gets in the meanwhile. Actually, a function for resetting the countdown timer and two scent trackers, enemy-wise, explains the point; it’s only those issues I mentioned that are somehow imposing, and they are simply matters of co-op design.

[quote=“vultures, post:30, topic:5800”]I was actually dwelling a whole lot more on a proven system, that lets you have a couple thousand turns before a timeout occurs. You know how you encounter under/overskilled players most of the time; they need to think some things through more than you do, or vice-versa? The co-op gameplay could get balanced if the system is implemented. I’m also considering the least ammount of code that needs to be changed here, with certain parameters left for modding purposes.
Another thing that comes up in mind, as a subsequent benefit, is preventing of a co-op effort from becoming two solo efforts. If player_1 is suffering from the flu and needs some time to sleep it off, CataDDA could calculate the sum of turns other player gets in the meanwhile. Actually, a function for resetting the countdown timer and two scent trackers, enemy-wise, explains the point; it’s only those issues I mentioned that are somehow imposing, and they are simply matters of co-op design.[/quote]
I think i get the gist of what your getting at, Making the system more co-op friendly. ATM, me and codehero are working on a system to bring a true type of multiplayer to the game. And co-op is my personal main focus, PVP being an after thought. And yes there should be bonuses for working together

The problem with multiplayer has never been simply making it happen, I could probably have something working in less than a week. The problem is if you simply synced everything every turn, the gameplay experience would be terrible.
For example, if someone decided to come loot your house while you were sleeping, your game would simply pause until they had everything packed up and left the area. Them stealing all your stuff isn’t the problem, the problem is you’d be stuck waiting on them until they finished. The same thing would happen if they dedided to spend 20 min realtime dropping off presents for you.
The same thing happens with absolutely any long-term activity.
You could cancel people’s long-term activities when another player approaches, but you still have the same problem that the player can’t go back to what they were doing until the other player leaves.

If a mod turns off the whole fatigue system just for being able to play with someone over the internet, I’d still say yes to that mod.

What fatigue system do you mean?

[quote=“Kevin Granade, post:32, topic:5800”]The problem with multiplayer has never been simply making it happen, I could probably have something working in less than a week. The problem is if you simply synced everything every turn, the gameplay experience would be terrible.
For example, if someone decided to come loot your house while you were sleeping, your game would simply pause until they had everything packed up and left the area. Them stealing all your stuff isn’t the problem, the problem is you’d be stuck waiting on them until they finished. The same thing would happen if they dedided to spend 20 min realtime dropping off presents for you.
The same thing happens with absolutely any long-term activity.
You could cancel people’s long-term activities when another player approaches, but you still have the same problem that the player can’t go back to what they were doing until the other player leaves.[/quote]
The system were going for wouldnt have you waiting on other players, It’s still turn based, but things will update in real time, so if someone waits around, well thats there problem but we can still move.

If someone spends an hour in a menu, there should be no problems because, like in your real time branch, time stops, and the reality refresh would too, But when you leave the menu, Any change made whilst you were faffing about will magicly appear, all it would be doing is making shared map interplayer interactions easier and then adding visuals for said players…

Codehero and me are working on a network thing (Not sure what was going on after i went to bed last night so… yea) but this shouldn’t be difficult.

It can’t be not turn based, otherwise if someone spends just a minute or so in a menu in combat and the other person is doing a lot of stuff, the monsters will eat the first character’s face off while they’re in the menu.
Or are you proposing not syncing monsters between the games? In which case how is it coop?

You point out the realtime hack*, which is pretty much the only way to make this kind of thing work, except it would apply as a turn minimum as well. Having said that, menu interaction would still break it, and would require a lot of work to fix.

*For those that don’t know I put in a hack in a separate branch of the game for polka to play with that adds a turn timer, if you don’t act within a certain time period, it issues a pause command.

Sorry to go a bit off the rails, but could you link me to the realtime hack? Could it be made a mod, also?

I would kill for a coop version of this but as said would be hard to do?

What fatigue system do you mean?[/quote]
I meant the need to sleep. Waiting for a character to rest for a couple of in-game hours in multiplayer can be a problem.

What fatigue system do you mean?[/quote]
I meant the need to sleep. Waiting for a character to rest for a couple of in-game hours in multiplayer can be a problem.[/quote]
mojang have solution for this all players must sleep or no one sleep this will need to change some things like allow non tired character sleep until all tired character wake up