Death resolution in MMORPG's
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?!
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.
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.
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.
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.
"Practice makes good, Perfect Practice makes Perfect"
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.
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.
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.)
You either believe that within your society more individuals are good than evil, and that by protecting the freedom of individuals within that society you will end up with a society that is as fair as possible, or you believe that within your society more individuals are evil than good, and that by limiting the freedom of individuals within that society you will end up with a society that is as fair as possible.
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);
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);
"Pfft, Facts! Facts can be used to prove anything!" -- Homer J. Simpson
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?
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?
"Let Us Now Try Liberty"-- Frederick Bastiat
quote:
Original post by TechnoHydra
First: "pk" = Player Killing, as in one Player vs.Player
And that is a bad thing?
SpiffGQ
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?
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?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement