Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

The future is seamless, but it's not the near future

13

Comments

  • Ashen_XAshen_X Member Posts: 363

    Originally posted by maplestone

    Originally posted by Eronakis

    I would agree with this. I would add that the future is single shard and seamless.

    The problem with a single shard is the speed of light.  There is a hard physical limit on how fast you can send a packet from one side of the world to the other no matter how good networks become and it's actually within the threshold of human perception. 

    Games like EvE can get away with a single shard because the mechanics are not twitch-based - you don't need to know the exact position of other objects in the game nor exactly what they are doing, the game can fake it a little with inertia.  In other games, this comes out as rubberbanding, speed-skipping, turboboosting, etc as clients fail to predict what the other clients actually did during that split-second of lag and have to make jarring corrections when they get updated information.

    I guess what I should say is that it's not impossible to do a single shard, but it does put some restrictions on how twitch/reaction-based you can make the mechanics of your game.

    My question about this is, how can twitch based mechanics be all that affected if the speed of light is approximately 186,000 miles per second, but the fastest human neuro-tranmitters function at only 500 feet per second ? Again, I inderstand processing speed is an additional tax on such interactions, but if the discussion is about some future point when data is being transmitted at the speed of light, accessed and processed at increasingly astronomic speeds, but human reactions remain in effective slow motion, why couldnt single shard be possible ?

    The time it takes you to recognize that you need to take action for your character (variable but in general a span measured in hundredths or tenths of a second)

    decide what that action is (again most likely measured in hundredths or tenths of a second

    and then take that action (a minimum of a hundredth of a second for the neural impulses to cover the needed distances in an average sized human. Then of course there is the time needed for the muscles to contract appropriately in response to the neural signals)

    You are looking at a quarter of a second (easily) for even a quick individual to act upon visual stimulous.

    In that same time data being transmitted at approximately the speed of light could have travelled from any one place on earth to any other approximately four times. Or back and forth twice.

     

    When all has been said and done, more will have been said than done.

  • fenistilfenistil Member Posts: 3,005

    Originally posted by Ashen_X

    Originally posted by maplestone


    Originally posted by Eronakis

    I would agree with this. I would add that the future is single shard and seamless.

    The problem with a single shard is the speed of light.  There is a hard physical limit on how fast you can send a packet from one side of the world to the other no matter how good networks become and it's actually within the threshold of human perception. 

    Games like EvE can get away with a single shard because the mechanics are not twitch-based - you don't need to know the exact position of other objects in the game nor exactly what they are doing, the game can fake it a little with inertia.  In other games, this comes out as rubberbanding, speed-skipping, turboboosting, etc as clients fail to predict what the other clients actually did during that split-second of lag and have to make jarring corrections when they get updated information.

    I guess what I should say is that it's not impossible to do a single shard, but it does put some restrictions on how twitch/reaction-based you can make the mechanics of your game.

    My question about this is, how can twitch based mechanics be all that affected if the speed of light is approximately 186,000 miles per second, but the fastest human neuro-tranmitters function at only 500 feet per second ? Again, I inderstand processing speed is an additional tax on such interactions, but if the discussion is about some future point when data is being transmitted at the speed of light, accessed and processed at increasingly astronomic speeds, but human reactions remain in effective slow motion, why couldnt single shard be possible ?

    The time it takes you to recognize that you need to take action for your character (variable but in general a span measured in hundredths or tenths of a second)

    decide what that action is (again most likely measured in hundredths or tenths of a second

    and then take that action (a minimum of a hundredth of a second for the neural impulses to cover the needed distances in an average sized human. Then of course there is the time needed for the muscles to contract appropriately in response to the neural signals)

    You are looking at a quarter of a second (easily) for even a quick individual to act upon visual stimulous.

    In that same time data being transmitted at approximately the speed of light could have travelled from any one place on earth to any other approximately four times. Or back and forth twice.

     

    186 k miles per second IN VACUUM.

    Usual speed in optical fibre is SMALLER.

     

    Now that we have that covered up.

     

    Try to play twitch game on USA servers from for example Greece or India or Korea. 

    Having ping of 200 ms + really sucks.

    Packet losses that frequently occurs on long-distance connections does not help either.

     

    Nah single server while great idea will not mean single WORLD server for a loooong time. Especially in twitch / action games.

     

    Think more like single server for US , single server for Europe , single server for China , etc instead of dozens or hundreads.

     

    Besides you would not argue this if you would play any twitch games with high-ping. 

    It puts you at disadvantage immedietaly.

     

    Besides copper cable is actually bit faster in terms of ping than fiber cable. On earth not in vaccum ofc. Contradictory to what most people seem to believe.

    Thing is copper cable offer relatively small throughput than fiber. That's why fiber is used for backbone.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by Ashen_X

    Originally posted by maplestone


    Originally posted by Eronakis

    I would agree with this. I would add that the future is single shard and seamless.

    The problem with a single shard is the speed of light.  There is a hard physical limit on how fast you can send a packet from one side of the world to the other no matter how good networks become and it's actually within the threshold of human perception. 

    Games like EvE can get away with a single shard because the mechanics are not twitch-based - you don't need to know the exact position of other objects in the game nor exactly what they are doing, the game can fake it a little with inertia.  In other games, this comes out as rubberbanding, speed-skipping, turboboosting, etc as clients fail to predict what the other clients actually did during that split-second of lag and have to make jarring corrections when they get updated information.

    I guess what I should say is that it's not impossible to do a single shard, but it does put some restrictions on how twitch/reaction-based you can make the mechanics of your game.

    My question about this is, how can twitch based mechanics be all that affected if the speed of light is approximately 186,000 miles per second, but the fastest human neuro-tranmitters function at only 500 feet per second ? Again, I inderstand processing speed is an additional tax on such interactions, but if the discussion is about some future point when data is being transmitted at the speed of light, accessed and processed at increasingly astronomic speeds, but human reactions remain in effective slow motion, why couldnt single shard be possible ?

    The time it takes you to recognize that you need to take action for your character (variable but in general a span measured in hundredths or tenths of a second)

    decide what that action is (again most likely measured in hundredths or tenths of a second

    and then take that action (a minimum of a hundredth of a second for the neural impulses to cover the needed distances in an average sized human. Then of course there is the time needed for the muscles to contract appropriately in response to the neural signals)

    You are looking at a quarter of a second (easily) for even a quick individual to act upon visual stimulous.

    In that same time data being transmitted at approximately the speed of light could have travelled from any one place on earth to any other approximately four times. Or back and forth twice.

     

    Several answers to this:

    1)  If two race cars are both going about 200 mi/hr, then why does it matter if one car is 1 mi/hr faster than the other?

    2)  The distance from your computer to a game server greatly exceeds the distance from your brain to your hand.

    3)  You can't send data straight there, and things have to stop at various routers along the way.

    4)  To send something directly through the earth, even to the opposite side of the world, takes under 50 ms if it's at the speed of light.  Check your ping times.  Ever had a ping time over 50 ms?

  • Lille7Lille7 Member Posts: 301

    I read the OP, but haven't read the rest of the thread yet. And I have to say I think you are wrong Quizzical. Not that I don't believe the future is seamless, I do think it will be (and really hope so). Where I think you are wrong is that you say 64 bit game clients and SSDs are necessary to stream data. It's not, consoles do it with only 512mb of memory (thats total system and video memory) and slow harddrives.

    The trick is in know what to load and what not to load. A modern example is Skyrim, Skyrim doesn't load the entire game world at once (not even the open part of the game world). What they have done is split the world into a square grid, and when a player is in one particular square they keep that square and all adjacent squares loaded, they also keep part of the next squares loaded, like terrain.

    Heres something i drew to demonstrate, where the RED dot is the players location, the GREEN is the adjacent squares that are loaded and the PINK are the ones that are partially loaded. Ofcourse the real grid is ALOT more fine grained then this one.

    http://i.imgur.com/qdTK2.jpg?1

     

    I believe the problem is more server side, it's harder to seamlessly move a player from one (physical) server to another, without any sort of noticable stutter/lag (see node lines in Mortal Online), and it would be very impractical to run the entire game on only one machine (or even CPU core).

     

    Now there are problems with loading data that isn't static, like NPC (that can move) and players, but that's mostly a problem with very fast travelling speeds. If you take a fast flying mount in World of Warcraft and fly over a city/quest hub, you will have already flown past some of the NPCs before they are visible, because you need to load that data of your HDD or from the Server. But that could also be solved (Edit: Maybe not solve, but reduce the problem) by increasing the range at which players and NPCs gets loaded, this ofcourse adds more work for both the server and client.

  • Heinz130Heinz130 Member Posts: 227

    Quizzics,maplestone etc

    Omg we have engeneers among us.

    I think this post aswer for a time at once the load screens,single shards etc issues

    Lets gz the games that deal with this load issues with such competence,i will mention some

    WWII OL,EVE,Entropia Universe,FH

    In resume,but FH,games of single server

    Thumbs up for single server games o

    WoW 4ys,EVE 4ys,EU 4ys
    FH1942 best tanker for 4years
    Playing WWII OL for some years untill now
    many other for some months

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by Lille7

    I read the OP, but haven't read the rest of the thread yet. And I have to say I think you are wrong Quizzical. Not that I don't believe the future is seamless, I do think it will be (and really hope so). Where I think you are wrong is that you say 64 bit game clients and SSDs are necessary to stream data. It's not, consoles do it with only 512mb of memory (thats total system and video memory) and slow harddrives.

    The trick is in know what to load and what not to load. A modern example is Skyrim, Skyrim doesn't load the entire game world at once (not even the open part of the game world). What they have done is split the world into a square grid, and when a player is in one particular square they keep that square and all adjacent squares loaded, they also keep part of the next squares loaded, like terrain.

    Heres something i drew to demonstrate, where the RED dot is the players location, the GREEN is the adjacent squares that are loaded and the PINK are the ones that are partially loaded. Ofcourse the real grid is ALOT more fine grained then this one.

    http://i.imgur.com/qdTK2.jpg?1

     

    I believe the problem is more server side, it's harder to seamlessly move a player from one (physical) server to another, without any sort of noticable stutter/lag (see node lines in Mortal Online), and it would be very impractical to run the entire game on only one machine (or even CPU core).

     

    Now there are problems with loading data that isn't static, like NPC (that can move) and players, but that's mostly a problem with very fast travelling speeds. If you take a fast flying mount in World of Warcraft and fly over a city/quest hub, you will have already flown past some of the NPCs before they are visible, because you need to load that data of your HDD or from the Server. But that could also be solved (Edit: Maybe not solve, but reduce the problem) by increasing the range at which players and NPCs gets loaded, this ofcourse adds more work for both the server and client.

    Based on your map, you're loading everything from 9 zones at once, and partially loading 25 zones at once.  Those zones had better be awfully simple in order to have enough memory available to do that.

    Yes, yes, the way to make a game seamless is to load stuff ahead of time, before you get there.  But the problem is, how do you do that?  It's not so simple as the game deciding to load some data, and then it's all instantly loaded.  Loading stuff in the background quickly enough to always have it ready when it is needed is tricky to do.

    Much of the point of this thread is, if everyone had a quad core processor, 8 GB of memory, a 64-bit OS, and most importantly, a good SSD that the game was stored on, loading the necessary stuff into memory ahead of time and having plenty of space in memory for it wouldn't be so tricky to do.  Games might be able to use extra memory for prefetching, and then players with less memory available merely end up having to wait now and then when they cross zone lines.

    -----

    No, transferring players to another server is not the hold-up here.  That might take a few milliseconds, but not the several seconds that a loading screen sometimes requires.  There isn't very much latency over a LAN, and there isn't very much data on a player (maybe a few KB, if that) to transfer.

    And even that assumes that it transfers the player to a physically separate server when you cross zone lines, which it might not.  You can get a single server with eight processors, each of which has 10 cores and 30 MB of L3 cache, as well as 4 TB of memory.  That's 4 TB of physical system memory, not a 4 TB hard drive.

    A top of the line Westmere-EX server is extremely expensive, of course.  But a server with four processors, each of which have 16 cores, as well as 256 GB of physical system memory isn't outlandishly expensive.  That could probably be had for substantially under $10000.

  • maplestonemaplestone Member UncommonPosts: 3,099

    Originally posted by Ashen_X

    My question about this is, how can twitch based mechanics be all that affected if the speed of light is approximately 186,000 miles per second, but the fastest human neuro-tranmitters function at only 500 feet per second ? Again, I inderstand processing speed is an additional tax on such interactions, but if the discussion is about some future point when data is being transmitted at the speed of light, accessed and processed at increasingly astronomic speeds, but human reactions remain in effective slow motion, why couldnt single shard be possible ?

    The typical turnaround between receiving a stimulus and pressing a button for humans is around 160ms for sounds and 190ms for lights.  Perfect speed-speed-of-light one-way trip for a packet around the world is about 67ms.

    So imagine a hypthetical boss fight that's essentially a game of whack-a-mole.  Depending on which hole the boss pops out of, you have to push "1" or "2".   There's not a time limit, but if you push the wrong button you die.  As soon as the server receives your correct response, the boss instantly takes damage and pops up again.  Assume the servers and clients are fast enough that the game takes less than a ms to compute and render so that we're just focusing on the player response time.

    Player A is playing on computer right beside the server.  Their client gets the news that the boss has popped up instantly.  It takes player A 190ms to respond and their response goes back to the server instantly.  They are going to be hitting the boss about 5 times per second.

    Player B is playing on a computer on the exact opposite side of the earth.  Even with a perfect network, their client doesn't hear about the boss popping up for 67ms.  190ms pass while their brain processes the reaction.  Now it takes another 67ms for their response to get back to the server.  Total time to hit the boss: 323ms.  Even with perfect play, they only hit the boss slightly better than 3 times per second. 

    ( Now in the real world there lots of other complications.  I believe that most (all?) games run with a heartbeat that only processes a "turn" every so many ms which gives a window in which it's possible for everyone sufficiently close to react in time to catch the next heartbeat.  Also, you have to deal with the occassional lost packet which might force the client and server to ping each to sort out the missing information.  A PvP example is a little more complicated to map out because you have three scenarios to consider: players both beside the server, both together on the opposite side of the world from the server and one on each side. But I hope this has helped with the basic idea though)

    (aside: all things considered, the international networks we have today are astonishingly close to perfect - even with all the routers, repeaters and deteurs, it still only takes a packet a couple of times longer than perfect speed-of-light travel)

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by CalmOceans

    I think the issue currently is just consoles holding PC back. Carmack said PC are being held back by not getting "to the metal" access to low level API, he said gaming PC are ten times as powerful as a PS3 or 360, but it doesn't show at all in the game. His reason was that PC programmers aren't getting enough low level access to optimise and that engines are made for consoles & PC nowadays, not just PC.

    I don't see any reason why game designers intrinsically can't get access to the low level stuff on a PC video cards.  There is an obvious reason why they wouldn't want to:  it's too expensive.  If you make a PC game, it needs to be able to run on dozens of different GPU chips, most of which have several different bins, and even a given bin of a GPU chip may be clocked differently.  If you want to bypass the video drivers and code stuff directly optimized for the video card, then you have to do so dozens of times.  The point of video drivers and APIs is to let you code something just once, and then it gets automatically translated to work on all of the different video cards out there.

    With consoles, on the other hand, there is just one hardware configuration for an Xbox 360, just one hardware configuration for a PlayStation 3, and just one for a Wii.  So you might have to code some stuff twice to release it for both Xbox 360 and also for PS3, but it's not dozens of times like it would be for low level stuff on a PC.

  • Lille7Lille7 Member Posts: 301

    Originally posted by Quizzical

     

    Based on your map, you're loading everything from 9 zones at once, and partially loading 25 zones at once.  Those zones had better be awfully simple in order to have enough memory available to do that.

    Yes, yes, the way to make a game seamless is to load stuff ahead of time, before you get there.  But the problem is, how do you do that?  It's not so simple as the game deciding to load some data, and then it's all instantly loaded.  Loading stuff in the background quickly enough to always have it ready when it is needed is tricky to do.

    Much of the point of this thread is, if everyone had a quad core processor, 8 GB of memory, a 64-bit OS, and most importantly, a good SSD that the game was stored on, loading the necessary stuff into memory ahead of time and having plenty of space in memory for it wouldn't be so tricky to do.  Games might be able to use extra memory for prefetching, and then players with less memory available merely end up having to wait now and then when they cross zone lines.

    -----

    No, transferring players to another server is not the hold-up here.  That might take a few milliseconds, but not the several seconds that a loading screen sometimes requires.  There isn't very much latency over a LAN, and there isn't very much data on a player (maybe a few KB, if that) to transfer.

    And even that assumes that it transfers the player to a physically separate server when you cross zone lines, which it might not.  You can get a single server with eight processors, each of which has 10 cores and 30 MB of L3 cache, as well as 4 TB of memory.  That's 4 TB of physical system memory, not a 4 TB hard drive.

    A top of the line Westmere-EX server is extremely expensive, of course.  But a server with four processors, each of which have 16 cores, as well as 256 GB of physical system memory isn't outlandishly expensive.  That could probably be had for substantially under $10000.

     

    My map is highly simplified, in fact there are many more levels then the two i drew. But you have to realize that they are also ALOT smaller than what i drew them. And they do this, on a system with a slow HDD and 512 mb of RAM. Each box in the grid is maybe 50-100m across ingame, so we are not talking about loading entire zones like Elwynn Forest and all the zones around it, infact if they used the same system in WoW when you are in Goldshire you wouldn't even have all of Elwynn forest loaded.

    And as they can do this on a PS3, I assume that the problem is on the server side. But there are solutions for that aswell, Pikkoserver comes to mind (http://muchdifferent.com/?page=game-pikkotekk-pikkoserver).

    Theres really not much difference in handing a player of to a different CPU in the same machine or handing him over to a separate machine. Also check some of the Eve Devblogs if you want to know what kind of servers are used to run an MMO.

  • caremuchlesscaremuchless Member Posts: 603

    Nice write up.

     

    Thank you for the lesson :)

    image

  • Ashen_XAshen_X Member Posts: 363

    Originally posted by fenistil

    Originally posted by Ashen_X


    Originally posted by maplestone


    Originally posted by Eronakis

    I would agree with this. I would add that the future is single shard and seamless.

    The problem with a single shard is the speed of light.  There is a hard physical limit on how fast you can send a packet from one side of the world to the other no matter how good networks become and it's actually within the threshold of human perception. 

    Games like EvE can get away with a single shard because the mechanics are not twitch-based - you don't need to know the exact position of other objects in the game nor exactly what they are doing, the game can fake it a little with inertia.  In other games, this comes out as rubberbanding, speed-skipping, turboboosting, etc as clients fail to predict what the other clients actually did during that split-second of lag and have to make jarring corrections when they get updated information.

    I guess what I should say is that it's not impossible to do a single shard, but it does put some restrictions on how twitch/reaction-based you can make the mechanics of your game.

    My question about this is, how can twitch based mechanics be all that affected if the speed of light is approximately 186,000 miles per second, but the fastest human neuro-tranmitters function at only 500 feet per second ? Again, I inderstand processing speed is an additional tax on such interactions, but if the discussion is about some future point when data is being transmitted at the speed of light, accessed and processed at increasingly astronomic speeds, but human reactions remain in effective slow motion, why couldnt single shard be possible ?

    The time it takes you to recognize that you need to take action for your character (variable but in general a span measured in hundredths or tenths of a second)

    decide what that action is (again most likely measured in hundredths or tenths of a second

    and then take that action (a minimum of a hundredth of a second for the neural impulses to cover the needed distances in an average sized human. Then of course there is the time needed for the muscles to contract appropriately in response to the neural signals)

    You are looking at a quarter of a second (easily) for even a quick individual to act upon visual stimulous.

    In that same time data being transmitted at approximately the speed of light could have travelled from any one place on earth to any other approximately four times. Or back and forth twice.

     

    186 k miles per second IN VACUUM.

    Usual speed in optical fibre is SMALLER.

     

    Now that we have that covered up.

     

    Try to play twitch game on USA servers from for example Greece or India or Korea. 

    Having ping of 200 ms + really sucks.

    Packet losses that frequently occurs on long-distance connections does not help either.

     

    Nah single server while great idea will not mean single WORLD server for a loooong time. Especially in twitch / action games.

     

    Think more like single server for US , single server for Europe , single server for China , etc instead of dozens or hundreads.

     

    Besides you would not argue this if you would play any twitch games with high-ping. 

    It puts you at disadvantage immedietaly.

     

    Besides copper cable is actually bit faster in terms of ping than fiber cable. On earth not in vaccum ofc. Contradictory to what most people seem to believe.

    Thing is copper cable offer relatively small throughput than fiber. That's why fiber is used for backbone.

    Understood, but I was responding to a post that seemed to indicate that single world was not even theoretically possible.

    When all has been said and done, more will have been said than done.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by Lille7

    Originally posted by Quizzical


     

    Based on your map, you're loading everything from 9 zones at once, and partially loading 25 zones at once.  Those zones had better be awfully simple in order to have enough memory available to do that.

    Yes, yes, the way to make a game seamless is to load stuff ahead of time, before you get there.  But the problem is, how do you do that?  It's not so simple as the game deciding to load some data, and then it's all instantly loaded.  Loading stuff in the background quickly enough to always have it ready when it is needed is tricky to do.

    Much of the point of this thread is, if everyone had a quad core processor, 8 GB of memory, a 64-bit OS, and most importantly, a good SSD that the game was stored on, loading the necessary stuff into memory ahead of time and having plenty of space in memory for it wouldn't be so tricky to do.  Games might be able to use extra memory for prefetching, and then players with less memory available merely end up having to wait now and then when they cross zone lines.

    -----

    No, transferring players to another server is not the hold-up here.  That might take a few milliseconds, but not the several seconds that a loading screen sometimes requires.  There isn't very much latency over a LAN, and there isn't very much data on a player (maybe a few KB, if that) to transfer.

    And even that assumes that it transfers the player to a physically separate server when you cross zone lines, which it might not.  You can get a single server with eight processors, each of which has 10 cores and 30 MB of L3 cache, as well as 4 TB of memory.  That's 4 TB of physical system memory, not a 4 TB hard drive.

    A top of the line Westmere-EX server is extremely expensive, of course.  But a server with four processors, each of which have 16 cores, as well as 256 GB of physical system memory isn't outlandishly expensive.  That could probably be had for substantially under $10000.

     

    My map is highly simplified, in fact there are many more levels then the two i drew. But you have to realize that they are also ALOT smaller than what i drew them. And they do this, on a system with a slow HDD and 512 mb of RAM. Each box in the grid is maybe 50-100m across ingame, so we are not talking about loading entire zones like Elwynn Forest and all the zones around it, infact if they used the same system in WoW when you are in Goldshire you wouldn't even have all of Elwynn forest loaded.

    And as they can do this on a PS3, I assume that the problem is on the server side. But there are solutions for that aswell, Pikkoserver comes to mind (http://muchdifferent.com/?page=game-pikkotekk-pikkoserver).

    Theres really not much difference in handing a player of to a different CPU in the same machine or handing him over to a separate machine. Also check some of the Eve Devblogs if you want to know what kind of servers are used to run an MMO.

    The details of how to load stuff in the background in order to create a seamless world necessarily vary wildly by game.  For starters, if the amount of time it takes to traverse a zone is less than the amount of time it takes to load a zone, then nothing you can do will possibly work.

    A PS3 isn't very powerful, and so the graphics in games on it are necessarily rather primitive by modern standards.  Having less to load makes things a lot easier.

    Furthermore, in a single player game, it's far more predictable what you'll need to load in any given area.  What's in an area can be exactly the same every single time, as there aren't other players running around off in that other area to mess things up for you.  That makes it easy to have whatever you need for a given area stored sequentially, which cuts the loading time dramatically.

    -----

    Transferring a player to a different physical server necessarily takes longer than transferring him to a different processor within the same server.  They're probably both fast enough for the difference to not matter in gameplay, but the high end servers exist for a reason.

    If it's transferring a player from one processor to another on the same server, then that's very, very fast.  HyperTransport and QuickPath Interconnect offer bandwidth between processors in the range of tens of gigabytes per second.  Latencies are in the range of tens of nanoseconds.  All of the data needed for a single player is at most a few KB, and likely only a few hundred bytes.  You can do some computations if you like, but if crossing zone lines only means transferring a player from one processor to another within the same server, that can likely be done in less than a microsecond.

    If it's a different physical server, then you might need something like gigabit ethernet instead.  That will add latency in the hundreds of microseconds, while offering only less than 1% of the bandwidth.  So now, transferring the player to another server might take a millisecond.

    Regardless, both of those are plenty fast enough to not cause meaningful hitching, let alone be a justification for 20 second loading screens.  If the player needs to download information about the current state of a zone, that can take longer, as there can be a lot of players and mobs running around.  Ping times are in the tens or hundreds of milliseconds, and bandwidth is likely to be in the tens or hundreds of kilobytes per second.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by Ashen_X

    Originally posted by fenistil


    Originally posted by Ashen_X


    Originally posted by maplestone


    Originally posted by Eronakis

    I would agree with this. I would add that the future is single shard and seamless.

    The problem with a single shard is the speed of light.  There is a hard physical limit on how fast you can send a packet from one side of the world to the other no matter how good networks become and it's actually within the threshold of human perception. 

    Games like EvE can get away with a single shard because the mechanics are not twitch-based - you don't need to know the exact position of other objects in the game nor exactly what they are doing, the game can fake it a little with inertia.  In other games, this comes out as rubberbanding, speed-skipping, turboboosting, etc as clients fail to predict what the other clients actually did during that split-second of lag and have to make jarring corrections when they get updated information.

    I guess what I should say is that it's not impossible to do a single shard, but it does put some restrictions on how twitch/reaction-based you can make the mechanics of your game.

    My question about this is, how can twitch based mechanics be all that affected if the speed of light is approximately 186,000 miles per second, but the fastest human neuro-tranmitters function at only 500 feet per second ? Again, I inderstand processing speed is an additional tax on such interactions, but if the discussion is about some future point when data is being transmitted at the speed of light, accessed and processed at increasingly astronomic speeds, but human reactions remain in effective slow motion, why couldnt single shard be possible ?

    The time it takes you to recognize that you need to take action for your character (variable but in general a span measured in hundredths or tenths of a second)

    decide what that action is (again most likely measured in hundredths or tenths of a second

    and then take that action (a minimum of a hundredth of a second for the neural impulses to cover the needed distances in an average sized human. Then of course there is the time needed for the muscles to contract appropriately in response to the neural signals)

    You are looking at a quarter of a second (easily) for even a quick individual to act upon visual stimulous.

    In that same time data being transmitted at approximately the speed of light could have travelled from any one place on earth to any other approximately four times. Or back and forth twice.

     

    186 k miles per second IN VACUUM.

    Usual speed in optical fibre is SMALLER.

     

    Now that we have that covered up.

     

    Try to play twitch game on USA servers from for example Greece or India or Korea. 

    Having ping of 200 ms + really sucks.

    Packet losses that frequently occurs on long-distance connections does not help either.

     

    Nah single server while great idea will not mean single WORLD server for a loooong time. Especially in twitch / action games.

     

    Think more like single server for US , single server for Europe , single server for China , etc instead of dozens or hundreads.

     

    Besides you would not argue this if you would play any twitch games with high-ping. 

    It puts you at disadvantage immedietaly.

     

    Besides copper cable is actually bit faster in terms of ping than fiber cable. On earth not in vaccum ofc. Contradictory to what most people seem to believe.

    Thing is copper cable offer relatively small throughput than fiber. That's why fiber is used for backbone.

    Understood, but I was responding to a post that seemed to indicate that single world was not even theoretically possible.

    If one person has ping times 100 ms higher than another, is that a problem?  It depends greatly on the game.

    But there are other problems with sticking everyone on a single server EVE-style.  There isn't a single common language that everyone speaks.  Any particular area can't be visited by too many players at once, which is a huge problem for scripted theme park content.  Those aren't problems that better hardware can address.

  • AdamantineAdamantine Member RarePosts: 5,093

    Its possible and easy to create a completely seamless game since decades.

    Pretty much the moment 3D was available, seamless was possible. Simply fragment your game world into chunks and load the chunks around the current chunk, so the next chunks is already in memory when you leave the current one.

    The main issue is, with seamless you have some limits. For example, if you have a house, you have an interior and an exterior. Basically you have twice or more as much graphic data than you usually would have. With whole cities, dungeon entries etc its getting worse. That means without any area transition, you will have to make sacrifices in respect to graphic quality.

    Also, its harder to program.

     

  • Lille7Lille7 Member Posts: 301

    Originally posted by Quizzical

    Originally posted by Lille7


    Originally posted by Quizzical


     

    Based on your map, you're loading everything from 9 zones at once, and partially loading 25 zones at once.  Those zones had better be awfully simple in order to have enough memory available to do that.

    Yes, yes, the way to make a game seamless is to load stuff ahead of time, before you get there.  But the problem is, how do you do that?  It's not so simple as the game deciding to load some data, and then it's all instantly loaded.  Loading stuff in the background quickly enough to always have it ready when it is needed is tricky to do.

    Much of the point of this thread is, if everyone had a quad core processor, 8 GB of memory, a 64-bit OS, and most importantly, a good SSD that the game was stored on, loading the necessary stuff into memory ahead of time and having plenty of space in memory for it wouldn't be so tricky to do.  Games might be able to use extra memory for prefetching, and then players with less memory available merely end up having to wait now and then when they cross zone lines.

    -----

    No, transferring players to another server is not the hold-up here.  That might take a few milliseconds, but not the several seconds that a loading screen sometimes requires.  There isn't very much latency over a LAN, and there isn't very much data on a player (maybe a few KB, if that) to transfer.

    And even that assumes that it transfers the player to a physically separate server when you cross zone lines, which it might not.  You can get a single server with eight processors, each of which has 10 cores and 30 MB of L3 cache, as well as 4 TB of memory.  That's 4 TB of physical system memory, not a 4 TB hard drive.

    A top of the line Westmere-EX server is extremely expensive, of course.  But a server with four processors, each of which have 16 cores, as well as 256 GB of physical system memory isn't outlandishly expensive.  That could probably be had for substantially under $10000.

     

    My map is highly simplified, in fact there are many more levels then the two i drew. But you have to realize that they are also ALOT smaller than what i drew them. And they do this, on a system with a slow HDD and 512 mb of RAM. Each box in the grid is maybe 50-100m across ingame, so we are not talking about loading entire zones like Elwynn Forest and all the zones around it, infact if they used the same system in WoW when you are in Goldshire you wouldn't even have all of Elwynn forest loaded.

    And as they can do this on a PS3, I assume that the problem is on the server side. But there are solutions for that aswell, Pikkoserver comes to mind (http://muchdifferent.com/?page=game-pikkotekk-pikkoserver).

    Theres really not much difference in handing a player of to a different CPU in the same machine or handing him over to a separate machine. Also check some of the Eve Devblogs if you want to know what kind of servers are used to run an MMO.

    The details of how to load stuff in the background in order to create a seamless world necessarily vary wildly by game.  For starters, if the amount of time it takes to traverse a zone is less than the amount of time it takes to load a zone, then nothing you can do will possibly work.

    A PS3 isn't very powerful, and so the graphics in games on it are necessarily rather primitive by modern standards.  Having less to load makes things a lot easier.

    Furthermore, in a single player game, it's far more predictable what you'll need to load in any given area.  What's in an area can be exactly the same every single time, as there aren't other players running around off in that other area to mess things up for you.  That makes it easy to have whatever you need for a given area stored sequentially, which cuts the loading time dramatically.

    -----

    Transferring a player to a different physical server necessarily takes longer than transferring him to a different processor within the same server.  They're probably both fast enough for the difference to not matter in gameplay, but the high end servers exist for a reason.

    If it's transferring a player from one processor to another on the same server, then that's very, very fast.  HyperTransport and QuickPath Interconnect offer bandwidth between processors in the range of tens of gigabytes per second.  Latencies are in the range of tens of nanoseconds.  All of the data needed for a single player is at most a few KB, and likely only a few hundred bytes.  You can do some computations if you like, but if crossing zone lines only means transferring a player from one processor to another within the same server, that can likely be done in less than a microsecond.

    If it's a different physical server, then you might need something like gigabit ethernet instead.  That will add latency in the hundreds of microseconds, while offering only less than 1% of the bandwidth.  So now, transferring the player to another server might take a millisecond.

    Regardless, both of those are plenty fast enough to not cause meaningful hitching, let alone be a justification for 20 second loading screens.  If the player needs to download information about the current state of a zone, that can take longer, as there can be a lot of players and mobs running around.  Ping times are in the tens or hundreds of milliseconds, and bandwidth is likely to be in the tens or hundreds of kilobytes per second.

    Yes the graphics on the PS3 is worse compared to a PC, but still better than what most MMOs have today. And we are talking about a console with a total memory of 512MB, for the 360 this is shared between GPU and CPU, for the PS3 this is separated, so it has 256 MB of VRAM and 256 MB of system RAM.

    What im saying is that we don't need to have gameclients capable of using 5GB of data at once, or SSDs to load it from, as it has already been done. On systems with way below the 2 GB of ram we have access to today (in 32bit executables).

    Ofcourse adding players to this makes it more complicated, but all you do is load them when they are close to you. Most games have a limited range where you can spot players, and that seems to work well so far. If you have crazy traveling speeds this might be a problem, epic flying mounts in world of warcraft is an example.

    ------

    Those high powered servers exist mostly to reduce cost. The cost of running a datacenter isn't so much the hardware itself, it's the room, power and cooling that is expensive. A server with many processors has a higher performance density, more performance in a smaller form, thus saving money. You wouldn't be using Gigabit ethernet, or even 10Gbit ethernet in a server setting. You would be using something like 40Gbit/s QDR Infiniband (fiber optics).

  • fenistilfenistil Member Posts: 3,005

    Originally posted by Ashen_X

     

    Understood, but I was responding to a post that seemed to indicate that single world was not even theoretically possible.

    Only theoretically and will not be possible in next 30 years. Technical solutions needed is one thing , what will take more time is having infrastructure in whole world coping with it. You know those millions of miles of cables , countless servers , switches ,etc 

    Of course if we're talking about twitch-based games and real single server. (and not a single server with sub servers / districts / whatever for players from same countries).

    It is because current infrastructure does not allow signal to travel at anything close to speed you mentioned and won't be for very very long time. 

    Like I said , speed in fiber cable is alot under speed of light due to gravity and that it is not in vacuum.

    Even more importantly , there are alot of hops singal has to get through when travelling. From 'one side of world to another' it can be easily 40+ hops.  Each of it is precious ms, if infrastructure somewhere is packed with data you will get slow down , etc

     

    It is barely possible theoretically and impossible practically.

    Just go at www.pingtest.net   and test your ping. For example if you're from US test your ping to Russia , Korea, China , Serbia , Australia ,etc  then realize playing twitch game on a server located for example in one of those counties. 

  • RebornDragonRebornDragon Member UncommonPosts: 121

    Originally posted by maplestone

    Originally posted by Eronakis

    I would agree with this. I would add that the future is single shard and seamless.

    The problem with a single shard is the speed of light.  There is a hard physical limit on how fast you can send a packet from one side of the world to the other no matter how good networks become and it's actually within the threshold of human perception. 

    Games like EvE can get away with a single shard because the mechanics are not twitch-based - you don't need to know the exact position of other objects in the game nor exactly what they are doing, the game can fake it a little with inertia.  In other games, this comes out as rubberbanding, speed-skipping, turboboosting, etc as clients fail to predict what the other clients actually did during that split-second of lag and have to make jarring corrections when they get updated information.

    I guess what I should say is that it's not impossible to do a single shard, but it does put some restrictions on how twitch/reaction-based you can make the mechanics of your game.

    Does it hurt talking from your posterior? The speed of light can travel around the world around 8 times a second. The problem is hardware. Hardware is nowhere even close to operating at the speed of light. The servers, modem, and your computer cant process and spit back out information fast enough. We're not even close to what is theoretically possible, not even close.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by Adamantine

    That means without any area transition, you will have to make sacrifices in respect to graphic quality.

    Also, its harder to program.

    But that's why solid state drives are such a big deal:  it won't require graphical sacrifices, and it won't be much harder to program.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by Lille7

    Yes the graphics on the PS3 is worse compared to a PC, but still better than what most MMOs have today. And we are talking about a console with a total memory of 512MB, for the 360 this is shared between GPU and CPU, for the PS3 this is separated, so it has 256 MB of VRAM and 256 MB of system RAM.

    What im saying is that we don't need to have gameclients capable of using 5GB of data at once, or SSDs to load it from, as it has already been done. On systems with way below the 2 GB of ram we have access to today (in 32bit executables).

    Ofcourse adding players to this makes it more complicated, but all you do is load them when they are close to you. Most games have a limited range where you can spot players, and that seems to work well so far. If you have crazy traveling speeds this might be a problem, epic flying mounts in world of warcraft is an example.

    ------

    Those high powered servers exist mostly to reduce cost. The cost of running a datacenter isn't so much the hardware itself, it's the room, power and cooling that is expensive. A server with many processors has a higher performance density, more performance in a smaller form, thus saving money. You wouldn't be using Gigabit ethernet, or even 10Gbit ethernet in a server setting. You would be using something like 40Gbit/s QDR Infiniband (fiber optics).

    It's not just seeing other players that is the problem.  It's seeing what other players have done to the world.  In a single player game, mobs don't need to spawn until you get close to them, and it's completely predictable client-side which mobs will spawn where and when.  In an MMORPG, another player may have pulled mobs, killed mobs, left loot on the ground, or any manner of other things.  And that's even in a fairly static game world.

    And it's not like PS3 games never make you wait for anything to load.

    -----

    Data centers don't use 8P servers.  You don't use an 8P server for anything where two 4P servers or four 2P servers will work just as well.  Exactly what they do use can vary pretty wildly, but it's usually a bunch of smaller (1P or 2P) servers in a single rack.  And then as many racks of that as you need.  For things that can break up neatly into very small, weak servers, they may even use a huge number of Atom processors, as from SeaMicro.  But if you need a single process to have access to 1 TB of system memory, a 1P server doesn't work so well.  You don't use an 8P server if you don't have to.

    The really big data centers like what Google, Amazon, or Facebook need can even get parts custom done from AMD if what they want isn't explicitly offered.  I don't know if Intel will do custom parts for big enough companies, but I'm guessing that they will; I just haven't seen them confirm it.

  • maplestonemaplestone Member UncommonPosts: 3,099

    I see I have some critics. Here are some random examples of actual vs theoretical (round trip) ping times:

    Distance                                                          real world ping      speed-of-light

    Coast-to-coast USA (Virginia to California)          60-75ms              27ms

    Trans-Atlantic (New York to London, England)     66-80ms              37ms

    Trans-Pacific (California to Tokyo, Japan)           130-150ms            58ms

    Trans-Pacific (California to Sydney, Australia)     170-190ms           80ms

    We already have faster communication across the Altlantic than is even theoretically possible to achieve across the Pacific. Is there a difference in the quality of gameplay between local servers and overseas servers?  For most games I've played, the answer is a strong yes and so for those game designs, it's pretty much game over for a single global server already.

  • MMOman101MMOman101 Member UncommonPosts: 1,787

    Originally posted by Quizzical

    Originally posted by MMOman101

    I still think that at some point someone is going to have to build an OS specifically for maximizing hardware for gaming.  Something dual bootable, developers can and want to program for, has a GUI that most users can understand, and is cost affective for consumers.  I hope we can strip the MS OS from gaming in the next decade.  That is probably where some of the largest gains can occur.

    One problem is that it's hard to write an OS that will let you take whatever hardware you want, and have it all magically just work together.  It takes a ton of work in drivers--and would double the amount of work AMD and Nvidia are expected to do if most of the world still uses Windows.  Some other OS wouldn't have DirectX available, either.

    If you spend a given amount of work to create something built to do one particular task, you can usually make it work a lot better than if you made a far more general purpose machine or program or whatever, and then have it attempt the one particular task.  So yes, there probably would be benefits to a gaming-focused OS that had the same amount of work put into it as Windows.  But I'm skeptical that the benefits would be large enough to justify the cost.

    Drivers is obviously an issue; however, hardware manufactures will write drivers for what they need to write them for.  They do now and one more driver is not that tall an order. 

    I don't think any one change would help as drastically as a new OS.

    How great would it be if you booted to a drop down box and  then it loaded the entire game into RAM.  The only saving would be character saves or progression saves and everything else would be right there in RAM.  The inital load would take some time, but there would be no OS overhead at all.  Obviously some games are huge and it would be difficult for many users to have tht much RAM, but the game could load most recent areas or most users areas, or use some other factor to determine what to load. 

    There are many ways to make things much better.  Yes there would have to be supprt for it and I doubt it will ever happen; however it would still allow huge gains. 

    “It's unwise to pay too much, but it's worse to pay too little. When you pay too much, you lose a little money - that's all. When you pay too little, you sometimes lose everything, because the thing you bought was incapable of doing the thing it was bought to do. The common law of business balance prohibits paying a little and getting a lot - it can't be done. If you deal with the lowest bidder, it is well to add something for the risk you run, and if you do that you will have enough to pay for something better.”

    --John Ruskin







  • Lille7Lille7 Member Posts: 301

    Originally posted by Quizzical

    Originally posted by Lille7

    Yes the graphics on the PS3 is worse compared to a PC, but still better than what most MMOs have today. And we are talking about a console with a total memory of 512MB, for the 360 this is shared between GPU and CPU, for the PS3 this is separated, so it has 256 MB of VRAM and 256 MB of system RAM.

    What im saying is that we don't need to have gameclients capable of using 5GB of data at once, or SSDs to load it from, as it has already been done. On systems with way below the 2 GB of ram we have access to today (in 32bit executables).

    Ofcourse adding players to this makes it more complicated, but all you do is load them when they are close to you. Most games have a limited range where you can spot players, and that seems to work well so far. If you have crazy traveling speeds this might be a problem, epic flying mounts in world of warcraft is an example.

    ------

    Those high powered servers exist mostly to reduce cost. The cost of running a datacenter isn't so much the hardware itself, it's the room, power and cooling that is expensive. A server with many processors has a higher performance density, more performance in a smaller form, thus saving money. You wouldn't be using Gigabit ethernet, or even 10Gbit ethernet in a server setting. You would be using something like 40Gbit/s QDR Infiniband (fiber optics).

    It's not just seeing other players that is the problem.  It's seeing what other players have done to the world.  In a single player game, mobs don't need to spawn until you get close to them, and it's completely predictable client-side which mobs will spawn where and when.  In an MMORPG, another player may have pulled mobs, killed mobs, left loot on the ground, or any manner of other things.  And that's even in a fairly static game world.

    And it's not like PS3 games never make you wait for anything to load.

    -----

    Data centers don't use 8P servers.  You don't use an 8P server for anything where two 4P servers or four 2P servers will work just as well.  Exactly what they do use can vary pretty wildly, but it's usually a bunch of smaller (1P or 2P) servers in a single rack.  And then as many racks of that as you need.  For things that can break up neatly into very small, weak servers, they may even use a huge number of Atom processors, as from SeaMicro.  But if you need a single process to have access to 1 TB of system memory, a 1P server doesn't work so well.  You don't use an 8P server if you don't have to.

    The really big data centers like what Google, Amazon, or Facebook need can even get parts custom done from AMD if what they want isn't explicitly offered.  I don't know if Intel will do custom parts for big enough companies, but I'm guessing that they will; I just haven't seen them confirm it.

    In an MMO you don't need to know what mobs are spawned or not spawned until you get close to them, and the client will be told by the server what mobs are spawned and not spawned once you get close enough. You don't need to know what mobs are alive at the other side of the zone. Same thing with loot and other things that can be moved by players. Together with smart use of LODs you can greatly reduce the need for lot of system memory.

    Ofcourse you can't predict exactly what players will do and where they will be in an open world MMO, but if a big number of players approaches, the game could have a set amount of RAM reserved to load this, for example only allowing environments to take up a certain amount of ram, or just start unloading data for distant objects. If you have the distance that you load other players far enough away that it will take them a certain amount of time to reach you, even when traveling at the fastest speed towards each other, you can tune that after how long it takes a fragmented 5400RPM hdd to load that into ram, before the players get into attacking distance. The further away you decide to load players/mobs, the more ram will be required, you will simply have to tune the game accordingly.

    This is why you can't expect an MMO to look as good as a single player game, unpredictable player behavior, and this problem won't ever go away, even if every motherboard would support 1TB of RAM and have support for persistent ramdrives. A singple player game would just utilise that alot better.

     

    And i know you sometimes have to wait for things to load on consoles, but they are over 6 years old, and even when they launched that amount of ram wasn't considered alot.

    Game developers make game for the lowest common denominator. You want to know why so many games are still using DX9? It's because of Intel and their integrated GPUs. Intel is the biggest seller of GPUs with about 50% of the market, if a game won't run on that, expect low sales. Im just saying this so you will understand that you can't make a game require an SSD until all mainstream computers ship with one. And that's going to take a while.

    I believe in solving the problem by clever engineering on the software side, instead of just throwing hardware at the problem.

     

    Note: theres bound to be spelling and grammar errors and maybe even halffinished sentences, but its 3:30  in the morning and im only half awake :

  • //\//\oo//\//\oo Member, Newbie CommonPosts: 2,767

    Given the amount of ram available for use nowdays, it's almost a non-issue. The amount of memory that graphics cards have is also ridiculous compared to old times.

    The real reason is that programmers simply have become lazy and the reuse of code has increased the complexity significantly for people wanting/needing to make changes to the fundamentals.

    An entire SNES game could fit in less than 50 MB, even a beast like super metroid.

     

    You're right that loading from the HD is only possible in loading screens, but in most cases you can have practically everything you need in a game in less than 4 GB of ram.

    Add some form of compression/quick decompression to it and you could fit worlds onto a 32-bit system (<= 1 gig free).

    Processors nowadays are obscenely powerful; the cooling needed is inefficient in most cases. People used to do amazing things with processors with less than 500 mhz, or even 100 mhz and a mere 10 MB of ram.

     

    My argument is that the field has become too commercialized. Not enough optimization is going on past what is needed for financial success and that is holding back the industrys standards a bit.

     

     

     

     

     

     

    This is a sequence of characters intended to produce some profound mental effect, but it has failed.

  • Loke666Loke666 Member EpicPosts: 21,441

    Originally posted by Quizzical

    Originally posted by Larsa

    Older games with older technology managed to do seamless worlds just fine. An occasional stutter and otherwise you're fine.

    It's not a question of technology, it's a matter of game design. Current game design demands loading screens for these cutscenes, story-modes, battle arenas and other private instances. Do away with those and you can have a seamless world - keep those and you'll have loading screens.

    You could still make games seamless the way that the old games did.  And the graphics would look like those of the old games, too.  A 2 GB cap on 32-bit programs isn't meaningful if a zone only takes 10 MB.  Needing 10 ms to load each texture is a lot easier if you have to load a hundred of them for a zone than a thousand.

    You don´t think that when 64 bits and 8 gig ram becomes standard same thing will happen again? That devs will just use the memory for looks instead of making a zoneless game?

    Interesting OP though.

  • ClassicstarClassicstar Member UncommonPosts: 2,697

    Very good write up hope many learn from this and start paying more attention to what they buy.

    Darkfall did rather good job on seamless world without loadscreens one huge world..

    Hope to build full AMD system RYZEN/VEGA/AM4!!!

    MB:Asus V De Luxe z77
    CPU:Intell Icore7 3770k
    GPU: AMD Fury X(waiting for BIG VEGA 10 or 11 HBM2?(bit unclear now))
    MEMORY:Corsair PLAT.DDR3 1866MHZ 16GB
    PSU:Corsair AX1200i
    OS:Windows 10 64bit

Sign In or Register to comment.