Mana Shield orb display bug?
#1
I don't know if this is a known bug or not even a bug but a one-time occurence, but I stumbled upon this one while playing with a friend on Battle.net.

We were both playing rogues, bow only, no other equipment (if it matters), and since he was the only one using magic and wanted to conserve his mana for more useful purposes, he let me touch the Magic shrine we found in some level of catacombs. I had died a bit earlier so, having zero mana, I naturally didn't get the golden orb floating above my head.

He DID see it though, and it stayed there... forever. We went down stairs and town portals, so by all things fair I should've lost the mana shield orb. But I didn't. I drank a mana potion to see if it was just me not seeing my mana shield status correctly, but when I got hit my health dropped. So mana shield wasn't active.

We got stair trapped entering caves and, well, died, but the funny thing is, my friend still saw the orb above my corpse. Some time later he dropped from the game and upon rejoining, he no longer saw the golden orb.

As far as I understand client/server architecture, it's all about messages being sent from one to the other. I'm wondering if it could be the case of messages being sent from the person that touches the shrine to other players to inform them that "this player hit a magic shrine, so he now obviously has mana shield active, so display a golden ball above his head until you get another message telling you to stop displaying the ball." And since my client never sent out this disable message to my friend's client (as mana shield was never really active), he always saw the manashield being active until he had to rejoin the game and received the correct data again. How far off am I?
"My doctor says that I have a malformed public-duty gland and a natural deficiency in moral fibre, and that I am therefore excused from saving Universes."
-- Ford Prefect
Reply
#2
Yogi_Baar,Jan 24 2004, 11:34 PM Wrote:As far as I understand client/server architecture, it's all about messages being sent from one to the other.
D1 is "synchronized" peer to peer, not client/server.

In reality, D1 runs 4 different games (with max. players), but the players, having no side-by-side comparision to see the truth of this, believe themselves to be in the same game... this helpful illusion is reasonable to hold because the games are so similiar and because they generally share a common accounting for loot.

In a server/dumb-client model, it might be reasonable to say that everything is about messages. For peer2peer and smart client models, however, the deterministic processing tends to be key...

That is, I can say "turn off the light when you leave" and because you're a "smart" client, I can rest assured that you will do so at the appropriate time. So, later, when I know you've left, I get to assume the light is indeed off.

Nearly twenty years ago I was promoting this concept to game companies as "deterministic synchronicity" (or detsync for short). Made some games, gave some CGDC talks, etc. Doesn't mean the ideas are well understood or implemented in the game industry, even today.

There isn't a lot of money, outside of cutting into the share of exec. fat cat and corp. profits perhaps, available to expend on sound software engineering practices in the games biz, fyi. Even if there were, the time loss involved would bury the effort (changing technologies, competitors, etc.).
"He's got demons? Cool!" -- Gonzo, Muppet Treasure Island

"Proto-matter... an unstable substance which every ethical scientist in the galaxy has denounced as dangerously unpredictable." -- Saavik, Star Trek III

"Mom! Dad! It's evil! Don't touch it!" -- Kevin, Time Bandits
Reply
#3
Crystalion,Jan 25 2004, 03:09 AM Wrote:D1 is "synchronized" peer to peer, not client/server.
You don't actually mean that D1's synchronization is poorly implemented, do you? ;)

It might seem like a dumb idea to me at first, but I think I can understand Blizzard's intention here. Reducing the load on their servers is always a good thing. Plus, if players get pissed off by regularly dropping out of games, it isn't Blizzard's problem, it's the players' own crappy connection that's to blame. Smart.

Crystalion,Jan 25 2004, 03:09 AM Wrote:In a server/dumb-client model, it might be reasonable to say that everything is about messages. For peer2peer and smart client models, however, the deterministic processing tends to be key...
Each peer must therefore ALWAYS keep its peers in PERFECT sync for peer-to-peer architecture to work as it's intended. And it seems to me that Blizzard didn't quite get at least one of the two upper-case words.

Crystalion,Jan 25 2004, 03:09 AM Wrote:That is, I can say "turn off the light when you leave" and because you're a "smart" client, I can rest assured that you will do so at the appropriate time. So, later, when I know you've left, I get to assume the light is indeed off.
Could it also be:
  • I say to everyone "hey guys, I just touched a magic shrine, display a golden orb above my head until I tell you to remove it"<>
  • I think to myself "hm, looks like I can't actually have mana shield, oh well" but I don't notify my peers (thus screwing up the ALWAYS part in the previous paragraph)<>
  • My peers happily display the orb above my head at all times (except in town where it just can't be displayed)<>
    [st]This is what I originally thought and would IMHO fit in quite well with the client/server, but peer-to-peer... I think it just shouldn't happen. Must be something else then.

    By the way, do you happen to know how synchronization is done in D1? Are the clients (I dare not call them smart) just sending out sync messages like "I moved to tile (13, 20)", "I hit monster 42 for 20 dmg", etc.? Or are they at times (if so, which times) sending full game info to peers (as I imagine it to be when someone joins the game)? Knowing this would help me understand some quirks I've seen so far.
"My doctor says that I have a malformed public-duty gland and a natural deficiency in moral fibre, and that I am therefore excused from saving Universes."
-- Ford Prefect
Reply
#4
Yogi_Baar,Jan 25 2004, 08:16 AM Wrote:Could it also be...

By the way, do you happen to know how synchronization is done in D1?
Yes it could, but mostly it doesn't.

Yes, I do dimly recall quite a bit about D1, but I prefer to let more famous people like Jarulf suffer in order to educate others ;)

The bottom line is that GUI actions are translated to "commands" that are passed p2p and supposedly everything that really matters is then in sync on both (all 4, etc.) PCs, which a *lot* of the processing in a hopefully deterministic fashion (remember that this is a modem era game, so they weren't requiring LAN or broadband fat pipes so this all to "work", mostly).

The realtity of D1 is that much of the game in practice is out of sync, but many of the commands tend to pull things back into a semblance of agreement.

For example, "I saw soandso monster over there, but then you blasted it and its corpse is now at our feet... huh?".

The "best" desyncs in D1 were things like: "I'm on level 11"; "So am I"; "I don't see you!"; "I'm by the stairs!!"; "So am I, but I don't see you"... etc., when you could actually (buggily, of course) have both PCs "hosting" the level, so you actually had parallel universe dungeon level 11s in the same game.

In other words, a given PC "owned" a level, and had to give a bunch of state info describing it to a "new" PC that didn't know about the level as yet.

Blah, blah, blah, and so on and so forth.

Blizzard's genius was to realize that they hadn't done a good enough job with this technology to make it fly for D2 (where they wanted a lot more than 4 people to be able to play together). So they did a slight M.O. shift, and split the game into client/server even locally, for a single player.

So now there is only one true reality! Unfortunately, much of the time, the clients don't happen to know what that is. :D (i.e. now we often have client/server desync, where the server is always "right" and the client(s) *always* wrong, but before we had peer/peer desync which meant who's to say just what "reality" is?).
"He's got demons? Cool!" -- Gonzo, Muppet Treasure Island

"Proto-matter... an unstable substance which every ethical scientist in the galaxy has denounced as dangerously unpredictable." -- Saavik, Star Trek III

"Mom! Dad! It's evil! Don't touch it!" -- Kevin, Time Bandits
Reply
#5
Yogi_Baar,Jan 25 2004, 02:16 AM Wrote:It might seem like a dumb idea to me at first, but I think I can understand Blizzard's intention here. Reducing the load on their servers is always a good thing. Plus, if players get pissed off by regularly dropping out of games, it isn't Blizzard's problem, it's the players' own crappy connection that's to blame. Smart.

Each peer must therefore ALWAYS keep its peers in PERFECT sync for peer-to-peer architecture to work as it's intended. And it seems to me that Blizzard didn't quite get at least one of the two upper-case words.
It probably had nothing to do with client\server load. D1 was originally written by Condor who Blizzard bought right before they released Diablo. Blizzard then decided to make it multi-player over TCP\IP since they had such success with Warcraft 2 (and IPX was on the way out with Windows 95). So Blizzard essentially hacked in multi-player (and some say the point and click movement style) as an afterthought to a game that was written by a fledgling company without any thoughts for multi-player.

Blizzard didn't so much as not get it as the software architecture and computer hardware at the time would have been incapable of handling it. Diablo came out in 1997 when Pentium II chips weren't even released yet (or were just being released). They picked a different method of handling the game architecture and it wasn't implemented as well as it could be. For the administrative reasons that Crystalion stated, it is only reasonable to expect the poor performance in D1 multi-player in a time when Pentium 90s and 56k modems ruled the home internet waves. The whole "get it out the door and patch it later" mentality of gaming companies is only hurting the industry even more.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)