Archived

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

Galshin

Diabo 2 network architecture

Recommended Posts

I think it is something like the following:

LAN & Non-Relm/Hardcore B.Net games - Peer to Peer (Why? Game does not end with removal of game starters Pc or any other PC)

LAN & Non-Relm/Hardcore B.Net games - Some form of hybrid P2P with a Peer/Client/Server on B.Net. Why? As you can host a game and then get a time out message for your own game! Which makes me think that B are monitioring most of the Relm or Hardcore games somehow.

This is pure speculation and I could well be talking out my butt...

Convict@Large

Share this post


Link to post
Share on other sites
You''re close. But really what''s going on is:

LAN games and their ''Open Battlenet''(Sorry, haven''t played in a while and don''t remember the exact wording - You host the game on your computer.

Battlenet - Their Server farm hosts your game. It''s one of the ways that they prevent cheating / hacking their game. Since they host it, even though you created it, if you go linkdead the other people will still be in the game.

Share this post


Link to post
Share on other sites
What kind of synchronization method do they use? It doesn''t appear to be a typical FPS synchronization since at times you can see the game "catch up", also it''s not lockstep like starcraft because it has instantaneous response. I am wondering if there is some sort of hybrid approach that they are using... Any thoughts?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I think the movement in Diablo 2 is just done the players pc and then the new coordinates are sent to the server. So, when you lag, the server doesn''t know where you are, but you keep moving around the part of the world that the server thinks you are in. Then, when it catches up, the server gives you the area of the map which your new coordinates are in.
I think most games do it that way, so there isn''t delay between the time you give push a button to move and begin to move, but then you don''t know where you really are, because you move and lag without telling the server you are moving. then, your player could actually be standing still taking a beating, while to you it looks like you are making a get away.
I''m experimenting with how to do it for my game. You should be allowed a very small space which you can move before the server has to get your new location, but you can''t run accross an entire map, because then on your computer you would look like you''re moving smoothly, but on the server you just teleport from the last position to the new one. That leaves a space for hackers. My solution is that the space which you can move, should be decided by your server updates per second. Just like calculating how far to move based on frames per second.
I don''t know if it''s a new idea, but i really did think of it without hearing it from someone else, so i consider it to be an original innovative idea made by me.

-Robirt

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
alshin i reread your post and realized that I didn''t answer how you wanted. the hybrid they use is no hybrid. It''s not lock step. It catches up because it just makes it look like it catches up, but it''s actually the same as those FPS games with free movement and updates which allows teleport hacking. Except they limit the part of the map you can go to by only giving you a section of it to move on until you sync again. But in most cases they give you too much space and in some cases not enough, depending on your amount of lag. My method I described in the post above might help. However I haven''t tested it and it might be terrible due to random lag spikes. But, I''m goingto try it.
-Robert

Share this post


Link to post
Share on other sites
The reason I wondered if it was a hybrid is because they seem to handle a large amount of AI controlled entities (monsters), and they do it without a central server. Standard FPS networking model would be tricky to get working with that amount of AI controlled entities.

Share this post


Link to post
Share on other sites