#### Archived

This topic is now archived and is closed to further replies.

# Death resolution in MMORPG's

This topic is 5523 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

##### Share on other sites
I agree, although I think perma death should be enforced from the start of the character. Rather than letting them come back start them in an area safe from PK''s and the really dangerous things until they are confortable with the game. Not neccisarily a place that PKs couldn''t enter but someplace with NPC guards. They kill a newbie and could very well lose the character that they have spent time to build. I''m kinda torn on the resurection idea, mainly because I know it will be abused.

##### Share on other sites
I don''t mean to criticize, but this isn''t really anything new as far as this forum, or indeed online games go: I suggest you browse through this forum for mentions of ''Permadeath'' and you should come across numerous discussions I seem to recall Silvermyst is at least one person in favour of such a system, for example. But you will also find that a lot of your proposed benefits may not necessarily be as successful as you may hope for.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files | My stuff ]

##### Share on other sites
yeah, i remember a post similar to this a few months ago, just trying to kick start the ol'' memory.

Dreddnafious Maelstrom

"If I have seen further, it was by standing on the shoulders of Giants"

Sir Isaac Newton

##### Share on other sites
Actually, the permanent death idea is something I''ve been toying with for a few years now. My concept is similar, but clearly a system of checks and balances needs to be in place for such a system to ever work and be entertaining (as a game should be, right?).

My theory is that death should be a possible consequence of being a loner or nomad within the game.

To avoid permanent death, a benchmark system is awarded to those who form collective groups as a society. The higher the group or tech level, the higher the possible benchmark for each member. When a character dies, they suffer a consequence of loss, but never below the benchmark so long as they are within a thriving society centered around some place or physical item that is capable of being destroyed.

On the other hand, the nomads/loners/what-have-you have the added benefit of advancing much more quickly than those who are in groups. This adds an incentive to be on both sides of the fence, so to speak.

This lends itself to war-like scenarios within an MMORPG setting, where rival clans seek to destroy one another, or rogue warriors wreak havoc on society.

Of course my true design is far more in-depth than this, but I figured I could put out a little something to spark some creativity. Any thoughts?

##### Share on other sites
Another convert.

Number one permanent death concern: technical glitches.

How do you plan to deal with a player losing his character after tens of hours of conservative play, due to a system crash, or a disconnect?

##### Share on other sites
Another convert, lol...

from the hip, without enough research done to qualify it as an acceptable way to go, I would say you could profile the connection parameters like a packet sniffer.(or a network sniffer, whatever you want to call it) Most connection losses are prefaced by "hiccups" in the packet delivery and the gap between sequential packets generally stretch just before a legitimate connection loss. (not fail safe but documentable)

The trick would be to write an algo that could qualify the nature of the connection loss, and resolve it to either an intentional disconnect or a series of packet loss culminating in a total disconnect. Of course, in the client you would code a tell all, last gasp message to the server that reported when the client was manually closed, negating the viability of turning off the game because you were getting smoked. which would leave you with the option of physically disconnecting the media in order to try to cheat the system.

Basically we could profile the nature of the packet loss and see if we could spot a pattern consistent with the various styles of disconnection, and then decide which styles of disconnection merit putting the player in an invulnerable stasis, while we save his state, location, etc...

Once again, this is an untested idea, but are my uneducated plans going in. I am just now getting to the point where i am writing my network code so i have plenty left to discover. The packet sniffing idea is based on my real world experience of supporting my employers network, and profiling bottlenecks in the network traffic, and monitoring the latency between our local loop and our server.

I should have a full time server running in the next 30 days, and i am going to distribute 3 clients to a few friends of mine and let them play with what i have so far, so i should be a more qualified poster with a bit more experience here in the next month or two.

Sounds similar to my idea but our implementation is a bit different. I have been working on the alignment metric for a bit.(you know, good and evil, law and chaos) My intentions are to allow evil and chaotic players to gain a small experience bonus over the lawful and good players for the same actions, this will be a gradiated scale based on an alignment number(undisclosed to the player) On the good side, you have the distinct advantage of being able to trust your companions. so while the evil side will be quicker to rise to power, the good side should have a true advantage in teamwork and consistency. (not to mention that one betrayal could permanently cost your character his life, so if you keep the company of evil, you really never know if anyone has your back.)

i think that players will group together out of instinct and intelligent play. Letting the law of attrition weed out those that lone wolf it too much.( or else they will quickly gain power and become able to fend for themselves.)

Grief players, as discussed in another post, might be the target of an assassins arrow. (hired by their previous victim perhaps)
and would then be resigned to creating another player, choosing a class, and completing yet another apprenticeship before they were allowed back into the "real" world.

Oh yeah, just a final point, with PermaDeath a GM has a very simple way of dealing with grief players. He can simply repeal any karma or alignment punishment for killing a particular player. Thereby giving the entire world a free license to kill and loot that player at will for a specific period of time, without retribution. This handles the administration of grief players in-game, by simply making grief players "persona non grata" and letting the local thugs have a field day.

@ tstrimp

My reasoning for the safe zone and apprenticeship is that my battle system is a combination of complex, skill based moves(like a first person shooter) and mathematical probabilities(like a typical RPG) so in order to play the fighter decently you have to master the movement and attack patterns, in addition to simply leveling up, and having good stats. you would be able to "test out" of your apprenticeship if you can pass the graduation test at a lower level, but then you would be a lower level dude in a dangerous world. My wizard class. (which i haven't even begun yet, will be composed of a small library of "known" spells, and will be fortified by original spells that you script in your own "wizard client" (after hunting down the necessary components of course.) I've been told that this idea isn't viable because only programmers would be able to script their own spells, but if that is the case then good, wizards will be rare and enigmatic, just like i want it. (not to mention if you kill one and take his spell book you will now be adding a bunch of unique spells to your own library)

As for the resurrection being mistreated, i plan on making the necessary components and side effects on the caster vicious enough so that it will be a true act of selflessness to cast such a spell.

Anyway, i am ultimately just another donk trying to write an MMORPG. But this has been a good exchange, feel free to keep the comments coming!

Dreddnafious Maelstrom

"If I have seen further, it was by standing on the shoulders of Giants"

Sir Isaac Newton

[edited by - Dreddnafious Maelstrom on December 5, 2002 12:30:16 PM]

##### Share on other sites
Okay my position: Neither for or against as long as the game is fun.

Now the problem with your solution to Silvermyst's problem. (Ex. Two players are fighting each other, one sees he's about to die and kills his connect before he's killed in game.) See what I'm getting at? The sniffer will see this as a d/c not the kill it should have been. I've played pvps who did this and it was very frustrating. It also allowed us to d/c while fighting an extremely tough monster and not lose the items/experience. Then they were forced to implement d/c = kill. The sniffer will have a hard determining whether it was a valid d/c or not. If you can think of a better way around this please voice it. I'm interested in hearing a solution.

(Edit: typed before I read your entire post. How would the server differentiate between a physical line going down and me pulling the plug out the computer? People will do anything if they have a lot of time and energy invested.

[edited by - TechnoHydra on December 5, 2002 1:42:53 PM]

##### Share on other sites
quote:
The packet sniffing idea is based on my real world experience of supporting my employers network, and profiling bottlenecks in the network traffic, and monitoring the latency between our local loop and our server.

A system crash that results in a disconnect would be analyzed as an intentional disconnect by this type of packet sniffing, right? (if it''s successful at determining a difference between packet loss disconnect and intentional disconnect)

My personal solution is to allow players to construct customized auto-behavior patterns for their avatars. You wouldn''t have to bother to check why a player gets disconnected (packet loss or intentional) but only IF a player gets disconnected.
Player gets disconnected -> triggers pre-constructed auto-behavior cycle for situation ''disconnect'' -> avatar runs away as fast as possible OR avatar stands and fights till death OR avatar stands and fights until 50% health, then runs away as fast as possible (etc)

##### Share on other sites
Also as far as the disconnect issue goes, there is currently a game in development called Atriarch, or somthing like that, which is a truely persistant online rpg. Your player never leaves the game. When you log out you can choose to have you character practice skills while you are gone. In order to keep you character safe you''d need to invest in some body guards etc. But no one will be able to d/c to avoid death. I really like this system, mostly because the casual players wont be left quite as far behind as the hardcore ones.

##### Share on other sites
Also about the temp death before lvl 6, my only complaint about it is the realism issue... What is it about being under lvl 6 (or whatever lvl you decide on) that makes you immune to death?!

##### Share on other sites
Simplest way of implementing low level invulnerability is to have a literally separate area for low-level characters protected by ancient magics or whatever so that those killed are automatically resurrected. I think this is at least close to what Dredd suggested in his original post anyway.

Interesting questions then are: are low level characters allowed to move in/out of this area before "graduation" and are high-level characters allowed to return after "graduation" (and if so, do they get free resurrections).

Both have pros and cons whichever way you answer them.

##### Share on other sites
Personally I think that in a game of constant advancement it could be done with like this:

If you die, it takes 10-30 minutes to come back to life.
If you pk, the more you pk, the more of a fugitive you become.
If you are identified by anyone as a fugitive, they can kill you without becoming one.
While you are dead, everyone else is becoming more powerful than you... its hard exactly to say, but it works out in my game... being gone for 30 minutes give the other person an edge against you, because my experience system is based on how much experience you have, not your level.

##### Share on other sites
What does "pk" mean?

##### Share on other sites
First: "pk" = Player Killing, as in one Player vs.Player

Second: I like the behavior system, as this sounds like a decent idea. Heck if we were really going to make it advanced then we could follow the AI bot games and have a programmable script system for more advanced users.

Third: I''m not sure I''d like the idea of my character always being active. It takes some of the fun out of character advancement. And it seems to me that its not going to be very balanced when it comes to new players joining a year or so after it first comes out because if characters are constantly growing stronger then that means new players will never be as strong as those that have been there for a long time.

And what if a group of pks come along and kill all the guards (a few pks get killed but they come back) then go to town on your character over and over and over again? I haven''t seen the game so I really can''t judge it too harshly.

Last: I''m not real sure I''d want to force the player to wait until level 6 before he can enjoy pvp. I would make it optional.

##### Share on other sites
quote:
Also as far as the disconnect issue goes, there is currently a game in development called Atriarch, or somthing like that, which is a truely persistant online rpg. Your player never leaves the game. When you log out you can choose to have you character practice skills while you are gone. In order to keep you character safe you''d need to invest in some body guards etc. But no one will be able to d/c to avoid death.

Let me understand this correctly, before continuing.

In Atriarch, I will have a choice when I quit a gaming session:
a) leave me character up and running, practicing skills while I am away, but also vulnerable to attack
b) log out my character completely, preventing automated practicing, but making it safe from attack

Or do I not have this choice and do I HAVE to leave my character up and running while I''m away, and do I HAVE to find bodyguards for protection?

(My opinion: Having a choice is good. Being forced is not.)

##### Share on other sites
Note- I have neveer played an MMORPG so these are just random ideas that came to me.

I think that having the choice between training while you are away and being protected is a good one but I would implement it somewhat differently. Instead of having to go out and hire bodyguards, which might be difficult for new players since they wont have a lot of money, everyone has a defender spirit. If the player chooses to have the character sleep while they are gone the defender spirit appears to protect the character. Everyones defender will be at the same level and they will all be invulnerable so that it is impossible for someone else to come along and kill the character while they are sleeping. This way if someone is feeling lucky they can have the character train and risk death while they are gone, or sleep and be perfectly safe.

As far as dealing with crashes vs. intentional disconnects, if the packet sniffing works in being able to tell the difference between lost connections and crashes or disconnects then a lost connection will automatically have the character go to sleep mode and be protected. If the connection was lost but not through network traffic or whatever then the computer AI takes over for the character for a short period of time before the character goes into sleep mode. This way if someone disconnects in order to prevent death they better hope the AI is good enough to keep them alive long enough to go to sleep.

I had a third comment but I cant remember what it is at the moment.

Apparently my sig must use proper programming.
srand(time(NULL));
int i=rand()%100;
PickWittyQuote(i);

##### Share on other sites
Ok, a bunch of replies and then a bit of new content.

First let me say that when my server "goes live" here in a month or so it will be the battle system only. Basically you spawn in a big arena, and then fight various critters till you get bored.
I am primarily trying to test and refine the battle system to make sure it is enjoyable.

As for the "packet-sniffer" idea. it is only that, an unimplemented idea. Call it a plan i suppose since i plan on trying to implement it.

To reiterate: The general thesis is to record the packet loss and develop a profile that you can resolve to a fixed cause of connection loss. at my job we have a Server2000 server that serves up our intranet and business database. We have a T1 for our primary connection and a redundant DSL connection from our local service provider. Because the two connections are independent, we need to detect either a complete disconnect, or enough data-collision and unanswered requests to determine when a switch over is necessary. The sniffer we use profiles the connection status and reports bottlenecks and unanswered service requests. It also keeps a log of stereotypical network traffic that supercedes a line failure. My idea is to use that type of data to resolve to a set of patterns, and then determine which pattern is caused by what. In principle this will work, the accuracy of this method is definitely up for debate.

One major caveat, for me at least is that the sniffer we use is pretty high dollar and i doubt seriously that i code just code one up in a few days, fortunately the core packet counting and profiling shouldn''t require all the features that our sniffer uses.

@ TechnoHydra, fortunately most disconnects are not so abrupt as the effect of pulling the physical media from the wall, the game generally boots you after a "time out" flag has been raised. So a common scenario for a legitimate disconnect goes something like.

Server: What is your position?
Client: Im at x:40, y:.......50, z:...............-101.0254
Server: What is your state?
Client: State:Normal, HP:102, Stamina:108
Server: What''s your position?
Client:.....x:40, ............................
(incomplete or corrupt packet)
Client:...x:40, y:12.01, .......................
(incomplete or corrupt packet)
Server sorry but your time is up [Boot]

So basically, because dial-up is going to have alot more packet loss than DSL and cable you will identify a standard amount of packet loss, and attempt to identify typical circumstances that precede a connection loss vs.

Server: What is your position?
Client x:40, y:50, z:-101.0254
Server: What is your state?
Client: No response
Server: What is your state?
Client:No response
Server: [Boot]

Ok, so you have to use your imagination because what we are really transfering are bits, so give me some room on the packet protocol. hehe

Of course, once again this is an untested idea, but one with an actual way to implement, what is up for grabs is the effectiveness.

@ Silvermyst,

I don''t have any bright ideas as far as actual system failure goes.(i actually have a half-cocked idea that involves multi-threading and windows messaging and subclassing but forget that crap man) However that is generally not the "big deal" when it comes to MMORPG''s (not in my experience at least) I like the idea of a scripted Avatar in this event, kind of like a "catch-all" that doesn''t really hurt anything and only improves on the existing issue. Great idea.

@ tstrimp,

The players first few levels begin in a school environment, isolated from the rest of the game, and populated only by other apprentices of your character class. The "adventuring" is really just a series of quests that are assigned by your mentor. The tests require you to demonstrate competency equivalent to an average player of your level. Once you have "graduated" from lowerclassmen to upperclassmen you intermingle with players of other classes in a "university" setting where PvP is still impossible but you get to team up with other characters on University sponsored quests.(i.e. you are still immortal)
The time it takes to "graduate" to the "real world" will depend on your ability and which class you play. A fighter might knock his education out in an hour of 2 of game play(especially if he has played before) but a wizard will take at least 4 or 5 days, simply because the spells are "script bound" and the entire spell casting process requires you to understand the in game language that constitutes a spell.

Did i mention that certain classes gain "men at arms" at higher levels? These will be retainers that follow your bidding and can be scripted such that half of them may attack while the other half run for help if you so choose.

OK, enough rambling, who''s next?

##### Share on other sites
quote:
Original post by TechnoHydra
First: "pk" = Player Killing, as in one Player vs.Player

And that is a bad thing?

##### Share on other sites
I''d like to bring back the dead because I''m still interested in this topic.

To add onto the post... how about sending a packet from the client to the server constantly while the player is in a game, and when the "Leave game" button is pressed, then a final packet is sent to let the server know that the player wants to leave the game. If the packet being sent constantly suddenly stops, without the "Leave game" packet being sent, then the player has been disconnected, so save the character on the server so that it can be recovered. Maybe this could work?

##### Share on other sites
No that won''t work, it''s basically how it all works already and doesn''t solve the actual problem.

Possibly if you made ''instant'' teleport escaping, maybe it teleports you back to some home base. Make this a standard feature so you can always escape a monster or a pvp encounter.

If you go connection dead, the system automatically teleports you home.

Now, this obviously changes the dynamics of combat and the world somewhat, you can always get out of a tricky situation. You don''t really have anything left to fear from death (which can now be made permanent), however running away will make it extremely hard to level. An enhancement would allow the other player(s) in pvp to actually get experience they would have achieved from the kill if the opponent runs away. Possibly the teleport ability could be modified so it doesn''t work if you drop below 10% health (thus you could battle one monster, then go on to battle another and actually die).

Thoughts? (it''s probably not original anyway)

##### Share on other sites
I appreciate the merits of permadeath, and I also see where it can be a pain, even a liability, but one of my all-time gripes about MMORPGs are the invincible players that have been on eight hours a day for the last three months. I knew these four guys in college who shared an apartment. All had brought their own computers, and the relegated one just for some online game I wasn''t familiar with. I want to say it was Diablo II. They played the same Battle.net character in shifts, building and building, fighting enemies and other players for as many as 72 straight hours sometimes, until he was so godlike that nothing could touch him. I guess they''re still doing it, but if I found myself playing that game, and I met that character, and he ganked me and took my stuff, I''d be angry at the GM and the designers for letting it happen.

I have done this, too, but never in a MMORPG. My FF3 characters were all at lvl 99 with all 9''s in their stats, because I played between four and six hours a day for months on end in sixth grade. Had there been other players to fight, I definitely would have won. I hate that crap, though. Not just grief players, but invincible characters.

I guess my point is that permadeath would be a good way to curb this.

I''d like to see a system of character expiration. After 100 gameplay hours, your character retires, and you can''t play him anymore. A hundred hours is a hella long time for most players, and I find that I''m bored of the same guy after about that long, so it would help keep the game fresh. Keep records for characters, like the one who kills the most enemies, or who amasses the most money in a given play session, and then people can start characters, build them up, do cool things, and enjoy the game. They won''t be able to wipe out dozens of other players, nor will they ever feel like they really dominated the game. They just keep trying new things.

If you need to have a player be recognizable, have them keep a geneology of their character, calling each one the son or daughter of the last one, so that you can have a reputation system that uses that. A fairly green character whose father was super-badass and whose father''s father was just as tough would be a good ally to make early on, because you know the player isn''t to be screwed with.

That''s pretty half-baked, and not entirely on-topic. Sorry.

##### Share on other sites
Nevermind... let's just say that permadeath is too much of a pain to make it worthwhile and will cost you too many players in both the short term and long term.

[edited by - solinear on January 9, 2003 11:20:22 PM]

##### Share on other sites
quote:
Original post by Silvermyst
...
How do you plan to deal with a player losing his character after tens of hours of conservative play, due to a system crash, or a disconnect?

A complex "sniffing" strategy (delay logging, characterizing, etc) was proposed earlier to detect glitches versus yanked cables/forced disconnects. I'd just like to point out that if someone is actually going to implement this somewhere, there's
an easier way--hop logging.

Basically, trace the route from the game host to the player in code similar to the "traceroute" utility. Then if a player disconnects during a battle, perform the traceroute again and see where the major delays start. If the player is on hop 20 and hop 19 is pretty responsive, and hop 20 doesn't respond, it's probably a cable yank. If hop 20 responds, it could be a software fault or task kill (judge as you may). If the problem is on hop 15, then the player is probably not at
fault.

Most network glitches over the internet, in practice, would probably be at least a couple of hops closer to the game server than the player (I say "a couple" in order to allow for a person running a router, which may in itself be a rare broadband situation).

--yy2bggggs              |If you will tell me why the fenSr. Software Engineer  |appears impassable, I then                       |will tell you why I think that I                       |can get across it if I try. (M. Moore)

[edited by - yy2bggggs on January 10, 2003 4:32:53 AM]

[edited by - yy2bggggs on January 10, 2003 4:33:51 AM]