XNA Creators Club Online
Page 1 of 1 (16 items)
Sort Posts: Previous Next

Networking Concept: Zoning

Last post 10-08-2008 6:55 PM by Shawn Hargreaves. 15 replies.
  • 09-23-2008 11:53 PM

    Networking Concept: Zoning

    I was working on a Design Powerpoint for my EGGEngine team and decided that I would share it here. Its not perfect and I do not recommend that anyone take any advice from it. It has not been tested "to my knowledge". The file is here http://wiki.portalgames.org/wiki/images/Networking_and_zoning.pptx . Download it and take a look. The concept is called "Zoning" which is splitting the game world into zone's of priority for the networking system (for high-bandwidth games).
  • 09-24-2008 11:35 PM In reply to

    Re: Networking Concept: Zoning

    Just to make it clear the file is here: http://wiki.portalgames.org/wiki/images/Networking_and_zoning.pptx , does no one have any thoughts or comments?
  • 09-26-2008 1:44 AM In reply to

    Re: Networking Concept: Zoning

    I would take a look but uh, why does the link lead to a .zip file that contains random files? Shouldn't the download just be a .ppt file and not all that other crap?
    http://xblcgreviews.com
  • 09-26-2008 2:01 AM In reply to

    Re: Networking Concept: Zoning

    You have internet explorer dont you, it did that for my friend as well.... try renaming it to .ppt because a .ppt is really a .zip file and I think that internet explorer is trying to "protect" you from their own format.
  • 09-26-2008 2:36 AM In reply to

    Re: Networking Concept: Zoning

    Bradleat:
    I think that internet explorer is trying to "protect" you from their own format.

    Nope. The problem is that your web server is not properly configured to serve .pptx and .ppsx files as "application/vnd.openxmlformats-officedocument.presentationml.presentation", as documented in the OpenXML standards (ECMA-376). Your web server reports the MIME type as "application/octet-stream". When IE downloads a file of that type, it has its own file recognition code that attempts to determine the type of the file - and since a .pptx is indeed a zip archive, it has no way to determine that it's a .pptx file except from the extension. Since the extension is not authoritative, IE replaces it with the detected type (so legacy apps will still work), but allows you to override it in the save dialog if desired.

  • 09-26-2008 3:30 PM In reply to

    Re: Networking Concept: Zoning

    CDarklock:

    Bradleat:
    I think that internet explorer is trying to "protect" you from their own format.

    Nope. The problem is that your web server is not properly configured to serve .pptx and .ppsx files as "application/vnd.openxmlformats-officedocument.presentationml.presentation", as documented in the OpenXML standards (ECMA-376). Your web server reports the MIME type as "application/octet-stream". When IE downloads a file of that type, it has its own file recognition code that attempts to determine the type of the file - and since a .pptx is indeed a zip archive, it has no way to determine that it's a .pptx file except from the extension. Since the extension is not authoritative, IE replaces it with the detected type (so legacy apps will still work), but allows you to override it in the save dialog if desired.

    Alternativly, instead of using a crap browser, you should use something like Mozilla Firefox and stop trying to prove people wrong. OpenXML are stupid standards anyway, just passed though the ECMA thanks to $$$.

  • 09-26-2008 5:46 PM In reply to

    Re: Networking Concept: Zoning

    Or the author of this post could have just put the powerpoint file inside of a zip file and we wouldn't be having this conversation. I'll have to let you know how it turns out when I get home, I don't have powerpoint on the computer here.
    http://xblcgreviews.com
  • 09-26-2008 6:27 PM In reply to

    Re: Networking Concept: Zoning

    jaymac407:
    Alternativly, instead of using a crap browser, you should use something like Mozilla Firefox

    The last thing I want to hear from someone developing an engine is that I "should" do things his way because my way is "crap".

    And your zoning idea appears to place too much trust in the client.

    EDIT: I just noticed you're not the original poster. Sorry for the confusion. Bradleat, your zoning idea appears to place too much trust in the client.

  • 09-26-2008 8:40 PM In reply to

    Re: Networking Concept: Zoning

    On Xbox, you can (and sometimes have to) place trust on the client. It's as close to a "secure client platform" that we've seen commercially successful so far.
    Jon Watte, Direct3D MVP kW X-port 3ds Max .X exporter kW Animation source code
  • 09-26-2008 10:27 PM In reply to

    Re: Networking Concept: Zoning

    Yikes, ill put a version in a .zip file as well and post the link, I am not a webmaster so I did not really know about all the behind the scenes stuff. But, about placing too much trust in the client what problems could arise from it. The only thing I see is hit detection where the client calculates if it hit someone instead of having the host work all of them out. The rest of it seems to give a better experience to the client in regards to "being lag'd" out of a kill but might result in them getting killed from around a corner a few times. Anything else?
  • 09-26-2008 10:33 PM In reply to

    Re: Networking Concept: Zoning

    Okay, here the new version is: http://wiki.portalgames.org/wiki/images/Networking.zip
  • 09-27-2008 5:52 PM In reply to

    Re: Networking Concept: Zoning

    Bradleat:
    But, about placing too much trust in the client what problems could arise from it.

    Primarily, it's a security risk. The client is in the hands of the enemy. Even if you're absolutely 100% sure that your code doesn't lie, the client is not necessarily your code. It's an unknown person running unknown software that has connected to the port where your server listens, and you need to think about your system from that perspective. How do you verify that the software connecting to this port is, indeed, your code? Is it possible for someone to fake that? Keep in mind that the client has complete and total control over the physical topology of their network, and all the time in the world to analyse traffic.

    Consider, for example, that your client only sends what it can guarantee. What if I tell the server something I want, but can't guarantee? Like, "player 5 is dead"?

    Could that make everyone except player 5 think he's dead? Would it cause player 5's future updates to be ignored, because he's dead and hasn't respawned? Clearly, player 5 doesn't need to be told he's dead - the client handles that - so player 5 would be wandering around an empty map, because the server is waiting for player 5 to say "I have respawned"... which will never happen, because player 5's client doesn't know he's dead, and player 5 is also in the "who cares" state receiving the minimum number of updates. He basically has to kill himself to get out of it.

    And if that works, why wouldn't I spam such messages for all the other players, so I could roam free through the map and pick up all the best goodies for a while? If I want to be more subtle, why wouldn't I store the player positions, send an "I am dead" message for all of them, and then send a respawn message at their last known location after I do something nasty? That would let me "glitch" the game for a couple seconds, long enough to grab something nearby, but the clients and server would recover - just like if there was lag - once I sent the respawns. It would look no different than a router rebooting somewhere on the subnet.

    What if I sent a message that I am at this location right next to player 3, and then another that says I am firing a grenade in his general direction, and a third that says I'm back where I was? Did I just teleport into player 3's vicinity and drop a grenade in his face, then disappear before it blew up?

    How does your protocol prevent these things? It's a major concern, and it needs to be covered.

  • 09-28-2008 3:09 AM In reply to