The difficulty of synching game entrance
#1
Having played a few games were there is some sort of server I have come up with a problem I simply can't understand why it still exists. The problem is of the game putting your character into the game before your client is ready.

Lets have some examples and start back in the D2 days. There was this small cave with the Boss called Duriel which you entered through a portal. Typically your client started to load graphics and sound like mad, yet the server put you almost instantly in the cave and started to "play" the game. If you were lucky, you could hear your character scream when hit. Usually, once your client was done loading and started to show the action, your character was already half dead and Duriel was beating on you. Death was unavoidable.

So, how did they solve this problem? In a quite unexpected way of "lets start to load the level a bit earlier, before you actually enter the portal". Sure, helped a lot, but there was still problems. The more obvious solution would seem to be to not have the server start playing the game and insert your character until it got a "I am ready and loaded" from the client.

Lets move to Wow were one would have thought Blizzard would have learned from previous mistakes. There are several occasions were your client "load" a whole bunch of stuff while you look at some sort of loading screen with a meter (totally unrelated, it always amazed me why they have them when typically it moves 10% of the distance during 99% of the loading and then just fills in the rest in the remaining 1%, totally useless). This happens when you enter the game after logging on, when moving into or out of instances and while moving between the continents.

In all cases, the server doesn't care if the client is up and ready before it inserts you. Now this is typically not a problem in most cases. While transferring between continents, there is just travel time that goes on while your client load the continent/area. Typically you are done before you reach the destination and if not, it won't hurt you having to wait some more on the ship/boat. Same while going into and out of instances, Blizzard have at least learned that they should not place monsters close to the entrance, so you are safe until you start moving. Entering the game when you log in is usually safe, especially in town were again, it won't matter if your character just stands there while your client load the world.

However, if you happen to be out in the wild when logging in, you are on your own and can actually be dead before you even get to see anything but the loading screen. My latest example was in Ungoro Crater. My hearthstone was set far away (there isn't any close place anyhow), the town was in other side of the area and I had to go, relatively unexpectedly. Usually, some high up hill can be safe, although not always. I was in the middle of the south among small dinosaurs. Basically all around me was killed and bodies had vanished. I settled for a small hill close by, thinking that even if there was one spawning there, I can handle it.

When I logged in a few days later, looking at the meter somewhere in the middle, I hared my char getting attacked a lot, when finally the loading screen disappeared, my life was down to about 20% having at least 3 monsters if not more hitting on me, on top of that, the interface was still lagging and the hard discs spinning like mad. Obviously I died soon after.

So, how hard can it be to not put your character into the world until the client is ready? And how come Blizzard has at least not got some idea of this type of problem and why do they not care? Punishment for people not wanting to plan a 10 minute run to town as the last thing they do, including another 10 minute run back when they start playing the next time? If you play for an hour, that is 33% of your playing time, if playing for 4 hours, it is still almost 10% of your time to avoid a stupid desynch issue fixable quite easily. Besides, I do “leave” the game in the middle of nowhere due to for example game crash or server going down as well, it is not always due to bad planning.





There are three types of people in the world. Those who can count and those who can't.
Reply
#2
Part of the problem is the same as what happens when it takes an extensive period of time to zone into an instance. Try this mod, Catalyst, and see if it helps. If it doesn't decrease load times, there are a couple others that do pretty much the same thing, WT_ZoningTimeFix or ntymsFixLoadingTimes.
Lochnar[ITB]
Freshman Diablo

[Image: jsoho8.png][Image: 10gmtrs.png]

"I reject your reality and substitute my own."
"You don't know how strong you can be until strong is the only option."
"Think deeply, speak gently, love much, laugh loudly, give freely, be kind."
"Talk, Laugh, Love."
Reply
#3
The problem is that what the game is loading while you're helpless IS the environment around you. I suppose an appropriate thing to do would be to make you invulnerable and inert until the client reports you as ready, but I'm still trying to wake up and might be missing some potential room for exploit inherent in such a design.
Darian Redwin - just some dude now
Reply
#4
A Divine Shield-ish buff on loading would do it. Say 15 sec of immunity, prevents spell casting and movement, can r-click to remove.

Not sure I'd actually want it implemented. The encouragement players have to return to an inn before logging out is a nice touch of immersion.
Reply
#5
First off, it is not some major problem I have and for instances, I really don't see the problem since the entrances are typically clear of monsters.


Darian,Apr 27 2006, 11:52 AM Wrote:The problem is that what the game is loading while you're helpless IS the environment around you.  I suppose an appropriate thing to do would be to make you invulnerable and inert until the client reports you as ready, but I'm still trying to wake up and might be missing some potential room for exploit inherent in such a design.
[right][snapback]108357[/snapback][/right]


Yes, perhaps I was unclear, the problem IS that the client load the envirnment arround you but puts you INTO the game before it has loaded it. That is, the server starts playing with your character, before it has loaded all nessecary grpahics and sound (which I would assume is the bulk of what is needed loading in most cases). There really is no reason to not having the client finnish all that before your character is inserted into the world. The solution is not at all to make you invulnerable or add some shield bubble, the solution is to not put you into the world at ALL until the client has loaded everything nessecary first and is ready to start rendering the world and process input.
There are three types of people in the world. Those who can count and those who can't.
Reply
#6
Jarulf,Apr 27 2006, 10:11 PM Wrote:First off, it is not some major problem I have and for instances, I really don't see the problem since the entrances are typically clear of monsters.
Yes, perhaps I was unclear, the problem IS that the client load the envirnment arround you but puts you INTO the game before it has loaded it. That is, the server starts playing with your character, before it has loaded all nessecary grpahics and sound (which I would assume is the bulk of what is needed loading in most cases). There really is no reason to not having the client finnish all that before your character is inserted into the world. The solution is not at all to make you invulnerable or add some shield bubble, the solution is to not put you into the world at ALL until the client has loaded everything nessecary first and is ready to start rendering the world and process input.
[right][snapback]108359[/snapback][/right]

Understood, was just thinking of a rough and ready solution. As part of log in the server needs to tell the client what to load, so the server needs to be aware of someone logging in at the very start of the process. Depending on a second client signal to indicate activity would need safeguards against missing the "I've finished" signal whether accidentally or deliberate. Hardly insoluable, though. On reconsideration I think this protection while loading would be purely a good thing (and would be better than the honorless target scheme for in-game travel too).
Reply
#7
Jarulf,Apr 27 2006, 06:08 AM Wrote:(totally unrelated, it always amazed me why they have them when typically it moves 10% of the distance during 99% of the loading and then just fills in the rest in the remaining 1%, totally useless).
[right][snapback]108351[/snapback][/right]
Concerning this, there's a bunch of reasons that this could happen. The most likely in my mind is that Blizzard has the UI code separated from the actual game code. This means that the status bar could only be updated at certain points outside of the actual loading functions. If there is one big function that runs followed by a lot of smaller ones, there would be a delay while that big one runs (since the UI can't update that status while that is running) and then the little ones would have quicker status updates.

This is not the only reason, but as I had said, I think it is one of the more likely reasons.
Stormrage
Raelynn - Gnome Warlock - Herbalism/Alchemy
Markuun - Tauren Shaman - Skinning/Leatherworking
Aredead - Undead Mage - Tailoring/Enchanting

Dethecus
Gutzmek - Orc Shaman - Skinning/Leatherworking
Reply
#8
Raelynn,Apr 27 2006, 08:23 AM Wrote:Concerning this, there's a bunch of reasons that this could happen.  The most likely in my mind is that Blizzard has the UI code separated from the actual game code.  This means that the status bar could only be updated at certain points outside of the actual loading functions.  If there is one big function that runs followed by a lot of smaller ones, there would be a delay while that big one runs (since the UI can't update that status while that is running) and then the little ones would have quicker status updates.[right][snapback]108365[/snapback][/right]

Progress bars have always been difficult to program. Simply put, unless the series of tasks being executed is almost completely homogenous, the estimates of how much relative time each phase will take is going to be difficult. The estimates also depend on a variety of factors that vary from run to run, such as computer speed, available memory, what's already loaded/cached, if any tasks will complete early, etc. And usually programmers are more interested in getting the tasks done correctly than in estimating their arrival time accurately!

I think psychological studies have been done about which type of bar users prefer - a steady progress bar, one that goes from 0 to 90 fast and then stalls, or one that goes from 0 to 10 slowly and then fills in quickly. Maybe the people who design fuel guages for cars should look into this. :)
Reply
#9
Jarulf,Apr 27 2006, 05:11 AM Wrote:First off, it is not some major problem I have and for instances, I really don't see the problem since the entrances are typically clear of monsters.
[right][snapback]108359[/snapback][/right]
The reason I told you about Catalyst is because, when you are loading the game, you are loading the biggest instance, the world itself. For example, when you take a boat from one continent to another, the server takes you out of the world on one side and puts you back into the world teleported to the other side, just as if it was putting you into any instance. These mods prevent some of the catch up that is required for the events that start flooding in once the server labels you as back in the world. They wouldn't prevent you from being damaged but allow the client to catch up faster so you can deal with it quicker.
Lochnar[ITB]
Freshman Diablo

[Image: jsoho8.png][Image: 10gmtrs.png]

"I reject your reality and substitute my own."
"You don't know how strong you can be until strong is the only option."
"Think deeply, speak gently, love much, laugh loudly, give freely, be kind."
"Talk, Laugh, Love."
Reply
#10
Jarulf,Apr 27 2006, 04:11 AM Wrote:First off, it is not some major problem I have and for instances, I really don't see the problem since the entrances are typically clear of monsters.
[right][snapback]108359[/snapback][/right]

On PvP servers, this is a real problem, where there's a healthy chance that when you zone out of an instance, you'll find yourself loading up dead, because an opposite faction group of players was waiting at the entrance for the rest of its party and find it entertaining to pass the time killing by helpless players as they zone out of the instance. This is not done entirely out of spite, as there is an element of self-preservation involved. Let's say you were in a group of five waiting at the AQ20 entrance for the rest of your party to get there. Suddenly, you see an opposite faction player zone out. You don't know how many players are behind that person, but there's a good chance that that player is not alone. He's probably either leaving the entrance to escape a PvE death and will probably have other raidmates running right behind him or he's leaving the entrance to help with warlock summons. Either way, you might quickly end up with a situation with 10-15 opposite faction players appearing suddenly on top of your group of five. If you let the person load and see your party there, that might give him a chance to crowd control your group and give an openning for his friends to load in safely. For example, a priest or warrior could fear your group. So, you want to kill the person loading out of the instance for your own protection. Also, it's fun.

To a lesser extent the same things can happen as you land at flight points or travel between the continents. The danger of the load-in issue is the reason that many PvP players have installed the Catalyst mod or other similar mods. I don't currently have it installed, but I'm tempted by it.

Incidentally, Blizzard has implemented a system to discourage people from hanging out all day and killing people at instance zone out points. Whenever you zone out of an instance, land at a flight point, cross over to another continent, or load into a game, you get a 30 second buff that designates you as an "Honorless Target." If you get killed by a player while the buff is on, no honor points are awarded to that player. This doesn't stop some people from hanging out at zone in points and picking off players anyway, but those players don't get anything practical from it, and after getting killed themselves by groups coming by, they often get bored and leave.

But back to your initial comments, I'd like a better game load-in system, too.
Reply
#11
In guild wars, when yourself or allies are on the "loading screen", their characters don't physically show up yet, and are pictured as 'greyed out.' The client is loading everything in the backround while you yourself are looking at a loading screen. The server recognizes your client is 'still loading' and your character does not show up until you have.

Desynchs are still possible, but at least entrance/exits of areas aren't so fubared.
Reply
#12
A client-side flag that makes you invulerable is a very bad idea. Block one packet from being sent until the best time(fairly simple to do), and poof, you've got a very serious exploit.
BANANAMAN SEZ: SHUT UP LADIES. THERE IS ENOF BANANA TO GO AROUND. TOOT!
Reply
#13
Dozer,Apr 27 2006, 12:43 PM Wrote:A client-side flag that makes you invulerable is a very bad idea. Block one packet from being sent until the best time(fairly simple to do), and poof, you've got a very serious exploit.
[right][snapback]108393[/snapback][/right]

I don't think this would be a major concern - not only are you invulnerable, you are also unable to do anything. Kind of like warping in in an equivalent to the mage's Ice Block. You can see what's going on, but it can't touch you and you can't touch it.
<span style="color:red">Terenas (PvE)
Xarhud: Lvl 80 Undead Priest
Meltok: Lvl 70 Undead Mage
Ishila: Lvl 31 Tauren Druid
Tynaria: Lvl 66 Blood Elf Rogue
Reply
#14
Klaus,Apr 27 2006, 08:37 PM Wrote:I don't think this would be a major concern - not only are you invulnerable, you are also unable to do anything.&nbsp; Kind of like warping in in an equivalent to the mage's Ice Block.&nbsp; You can see what's going on, but it can't touch you and you can't touch it.
[right][snapback]108398[/snapback][/right]

Not a problem for one person, no. But if you have a full raid party log in next to, say, a faction leader...
You don't know what you're talking about.
Reply
#15
lfd,Apr 28 2006, 12:18 AM Wrote:Not a problem for one person, no.&nbsp; But if you have a full raid party log in next to, say, a faction leader...
[right][snapback]108424[/snapback][/right]


Ehh, not sure what you mean. What you have is a situation were your character is not at all in the game yet. It is completely the same as if you were not loged in at all, the difference only being that your client is loading nessecary graphics and sound (and whatever else it needs to initiate). From the games perspective (the server) and the other players perspective, you are not in any way there, not processed, not shown, not anything. At most the game has you on a hold and in the status of (here I will insert this new player as soon as I get the "go" signal from the client that it is ready. This as oposed to today, when the server waits for basically the same but at another point, not caring if the client is ready or not.
There are three types of people in the world. Those who can count and those who can't.
Reply
#16
Jarulf,Apr 28 2006, 10:47 AM Wrote:Ehh, not sure what you mean. What you have is a situation were your character is not at all in the game yet. It is completely the same as if you were not loged in at all, the difference only being that your client is loading nessecary graphics and sound (and whatever else it needs to initiate). From the games perspective (the server) and the other players perspective, you are not in any way there, not processed, not shown, not anything. At most the game has you on a hold and in the status of (here I will insert this new player as soon as I get the "go" signal from the client that it is ready. This as oposed to today, when the server waits for basically the same but at another point, not caring if the client is ready or not.
[right][snapback]108456[/snapback][/right]
Giving the client the means to instruct the server, that something which should be controlled only by the server, is not ready will be abused. Let's think about the invulnerability bubble again. This could be abused for checking, and not getting penalized in any way, what people are doing in the opposing faction towns. This could be abused for checking if Lord Kazzak has spawned, if the four green dragons have spawned, all without the risk of death.

And these are only the most obvious things that come to my mind. There are probably many more devious things.
Old age and treachery will always overcome youth and enthusiasm!
Reply
#17
"So, how hard can it be to not put your character into the world until the client is ready?"


One word: zeppelins.
Former www.diablo2.com webmaster.

When in deadly danger,
When beset by doubt,
Run in little circles,
Wave your arms and shout.
Reply
#18
Crusader,Apr 28 2006, 10:14 AM Wrote:"So, how hard can it be to not put your character into the world until the client is ready?"
One word: zeppelins.
[right][snapback]108458[/snapback][/right]


I allready mentioned them and also said that there really isn't much of a problem (from a player perspective) since you are just travelling on them. On the other hand, the same can as easilly be applied to zepelines as well.
There are three types of people in the world. Those who can count and those who can't.
Reply
#19
Arnulf,Apr 28 2006, 10:11 AM Wrote:Giving the client the means to instruct the server, that something which should be controlled only by the server, is not ready will be abused. Let's think about the invulnerability bubble again. This could be abused for checking, and not getting penalized in any way, what people are doing in the opposing faction towns. This could be abused for checking if Lord Kazzak has spawned, if the four green dragons have spawned, all without the risk of death.

And these are only the most obvious things that come to my mind. There are probably many more devious things.
[right][snapback]108457[/snapback][/right]


Apart from not full understanding your first sentence, I don't understand what you are reffering to. You are not giving the client ANY extra controll. It is allready the client who decide when a character should be introduced in the game. This happens when you start up the game on your computer and log in. Are you claiming that the server should decide when you shall log in to the game? I really have no idea of the exact time and moment the server inserts you into the world, all I say is that currently it is too early since in most cases, the client has not had time to finish loading. There is NO extra control or power added, just a change of the triggerpoint of when the server gets a "hey, a character wants to enter the world, insert him and start playing. You are saying that it is not possible to do this AFTER the client has loaded but obviously this is not true, since the client loads a whole bunch of other things, after all, you are not inserted into the world at the moment you click on the WoW icon on the desktop.

I am not sure why you have been focusing on the "invulnerable bubble". It seems you think of it as something like the player being allready in the game early but in some sort of god mode. That is NOT what I am saying. IN such a case, you are allready in the game too early and there is the exact same problems as today. I am saying that the server should not put you into the game AT ALL until the client has finnished loading. Noth in a buble, not fully at live, not just there but not able to interact but completely OUTSIDE the world! When the client has loaded, THEN the server inserts you, starts sending info on the world, allow you interact and so on. At the moment, that is not the case, the server inserts you much earlier when you can NOT interact with the world and when it is not ready to recieve the state of the world. There is no added control, just a time shif in when the server actually inserts your character into the world.

Lets repeat your "abuse":

"This could be abused for checking, and not getting penalized in any way, what people are doing in the opposing faction towns. "

How can you possibly check out what people are doing of the oposing factions towns if you are NOT IN THE GAME???? My whole argument is that the server should NOT insert you into the game as soon but wait, your abuse requires it to still insert you which I am saying is the wrong thing to do since it actually, in mopst cases allow the rest of the world to interact wit YOU, while you have no idea what is going on, nor recieve information about it. That is, everyone else can now check out, attack and interact with you. In fact, the current system puts a sort of invulnerable bubble on the rest of the world until your client catches up. This is my complain and I would like to see a change in that. You are complaining about a non situation in my sugestion.
There are three types of people in the world. Those who can count and those who can't.
Reply
#20
I understand your idea better now that you explain it like that, and I really like the idea! I recommend you post this in the WoW suggestion forum and the UI forum. Both forums are read by mods and I have seen mods reply to feature requests there that subsequently made it into the game. If you make an alternate character for posting and reveal who you are, you may achieve some impressive support. :)
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)