- gaurdianAQ
- |
- Honorable Member
I remember reading a big topic about how bungie should switch over to dedicated servers... this topic isn't about which is superior but more efficient
to start off a while ago bungie made a post talking about how they're networking protocol worked for campaign/firefight and how it worked for matchmaking
the reason you don't often get the choppy lag in matchmaking like in campaign is
in campaign everything has to go through the host I believe the host also contains/processes all the player/enemy data so everyone is running off the hosts instance... so when a grenade gets thrown the grenade thrown data must go to the host then to every other player individually in serial aka 1 at a time but by pressing the move/throw button all you are doing is telling the host to update your position/ammo/shields
normally this happens faster than you can notice which is a lag free connection... but say you get that really bad choppy lag... so when the data has to update every frame... it goes to player 1 instantly comes back, player 2 instantly comes back, player 3 has a bad connection so it takes 1 second before the data comes back to the host so everyone else has to wait for that 1 second worth of data to come back to host before it can be resent to everyone else so the host is still sending to you perfectly but you are waiting on the one bad connection which is what causes the lag
this works well because as long as everyones connection is good and is more efficient when you have waves of covenant charging at you there are less errors this way because if there is a glitch on one screen all screens get it
in matchmaking I believe they use an instanced connection
so everyone has their own instance of whats happening in the game so what happens in your instance is sent to the host/players so that if all goes right everyone is technically running their own instance but when you move across the grav lift in narrows when someone else see's you moving technically its not you
because they are running their own instance so what bungie does is everything you do in your instance is mimicked by the enemy in all other instances so its sent to host host updates position in all other instances (feel free if I don't remember details exactly its 12:30 so Im a little tired)
this is why you get that lag where you press the button to throw the grenade but all you see is an arm swing but no grenade... 5 seconds later you see the grenade explode... this is because you may be lagging but no one elses instance is lagging so it didnt update on your screen but everyone else is fine or all could be like that the lag due to your connection to the host or just bad connection period so while its updating on your screen at speed x the other instance will update at speed y
this brings up another story my friend mentioned a glitch he learned where one person will have the ultimate lag where you shoot a rocket and no rocket comes out... or it fires out the back of the barrel... while the other person will have no lag... its because the person with the glitch/lag is not updating properly while the other persons instance of the game updates just fine and since it doesnt update for him he isnt seeing whats actually going on while the person who caused it see's all
reminds me when I was in rocket race... starts lagging so bad that I have red like half way across the map... I drive through the goal zone with vip... then nothing happens then it says red team scores and you think wtf!! I was through first.... yes thats what was shown on your screen but thats not what happened on the host... back to the rocket race though everyone was lagging and leaving I didnt leave because I didnt want penalty. so while we were all lagging blue team was scoring points like they knew exactly what was going on... we figured either they were lucky/trained to play in lag/or were like hackers causing the lag because every death that happened would be caused by them even if they were know where near us on our instance... they seemed to get to every point... it was obvious they were probably hackers
now that I've mentioned how the 2 networking protocols worked... mind you this is halo 3 I don't know how reach will be but it will probably be similar
this whole time if you're still reading this are probably wondering when will you mention dedicated servers well thats now
all of the above methods would work with a dedicated server
but the issue is first of all cost of server is one thing
plus as others have pointed out as the game dies out they have to shut down servers and when servers shut down you cant play online anymore... also you can only play as long as servers are not full.... bungie has so many players that servers could easily fill and then the rest are left out of playing matchmaking
with p2p games you never have to worry about a full server
also it is only up to 16 people match so internet is fast enough to get data between 16 people without having a delay now a days sure if there was a server there would be "less" host issues... well then again the issue with that is anyone who lives close to bungie studios will have a host advantage because of time to get from server to players so there is the issue of that as well
now the area where a dedicated server would shine is as I said before... everything that goes on in an online game... every shot... movement... has to go back to the host.... now the host can only handle so much at one time before it starts to lag.. while the host is the xbox 360 say bungie wanted to make it so you could have a massive halo battle with 5000 players on one team and 5000 on the other... the issue with that is with that kind of battle usually you want it so people can jump in and out but the real issue is one xbox 360 is not going to be able to handle 10000 players in one match.... you would have to wait like 15 minutes between frames.... that might not be entirely accurate the xbox might just crash because it cant support that many players at once.... also 10000 player match you're not gonna leave your xbox on I mean sure you could just change host every time someone leaves or comes but still the xbox can't handle that many players at once... this is where dedicated servers shine... they are built to handle lots of data coming and going... lots of ram/harddrive/processing to have that many players... because say you play an MMO which is always hosted on a dedicated server... if you were to watch the server of the game running would you see all of the players/worlds/weapons/monsters all running at once no that would be 10 million things on screen at once = instant crash
all that goes through in an MMO server is the statistics such as character level, xp, position, health, monster positions... thats all the server will be processing is the raw numerical and string data... so name of all in an area, it has to process where all 5 million people playing are at once and all 20 million instances of monsters that are running around... now obviously they have multiple computers synced up but the fact is that they arent processing any of the graphics thats just the client side... so ya if bungie were do dedicated servers that would only be more efficient for massive battle game types where there is to much data for a 360 to handle but 16 players isnt to much xbox 360 was built to handle 16 players... hence why you don't see games that use more than 16 players... because it cant
I hope this has cleared it up for anyone who was wondering
small games under 20 people p2p is better
large scale games dedicated servers are better
thank you for taking the time to read my ridiculously long post lol!
[Edited on 10.31.2009 10:03 PM PDT]