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

24

Comments

  • QuirhidQuirhid Member UncommonPosts: 6,230

    Originally posted by ladyattis

    And here's my rebuttal as a person working on my masters in Computer Science.

     

    Bandwidth is not the bottleneck (SSDs or your network connectivity). The bottleneck is in leveraging concurrent programming. Many programmers today still don't know how to use concurrency nor how to use it effectively if they do know some of the idioms for it. That's why Google created a whole language (Go) for the purpose of making concurrency easy to understand for programmers. So, the technical ability of every PC today can easily support dynamic streaming of zones and multiplayer events (actions, movements, etc). Even a Pentium 4 was designed with concurrency in mind despite its flaws and those programs designed to exploit its hyperthreading did better than those that couldn't (The same for Core-2 Duo). Ultimately, programmers today are just not up for the task of delivering on promises. It's not artwork, nor your PC, it's the programmers and the terrible education (or rather mis-education) they've received at US universities. Maybe in another decade when the universities understand that computer science is about logical idioms and not the specific languages which can express those idioms then you'll get capable programmers and game designers. Until then, expect failures.

     

    I think you're being a little unfair. Hyper threading is whole different beast than conventional programming. It brings a whole array of problems and potential pit-falls with it and you can't just do something and add concurrency. Not to mention the additional testing it requires.

    Its tricky even with the right education.

    I skate to where the puck is going to be, not where it has been -Wayne Gretzky

  • This doesn't seem to be the case with WoW. On your flying mount you can seamlessly move across all zones, with total freedom in which way and in what manner you like on a continent without seeing any loading screens.

    And the game runs well on extremely old hardware, too!

  • MMOman101MMOman101 Member UncommonPosts: 1,787

    Originally posted by ladyattis

    And here's my rebuttal as a person working on my masters in Computer Science.

     

    Bandwidth is not the bottleneck (SSDs or your network connectivity). The bottleneck is in leveraging concurrent programming. Many programmers today still don't know how to use concurrency nor how to use it effectively if they do know some of the idioms for it. That's why Google created a whole language (Go) for the purpose of making concurrency easy to understand for programmers. So, the technical ability of every PC today can easily support dynamic streaming of zones and multiplayer events (actions, movements, etc). Even a Pentium 4 was designed with concurrency in mind despite its flaws and those programs designed to exploit its hyperthreading did better than those that couldn't (The same for Core-2 Duo). Ultimately, programmers today are just not up for the task of delivering on promises. It's not artwork, nor your PC, it's the programmers and the terrible education (or rather mis-education) they've received at US universities. Maybe in another decade when the universities understand that computer science is about logical idioms and not the specific languages which can express those idioms then you'll get capable programmers and game designers. Until then, expect failures.

     


    I am not sure I agree.  In a perfect world you are probably 100% correct.  The problem is very little made by humans is perfect.  One can make the case that traffic should never slow down on the highway.  That if all cars are going the same speed and everyone entered the highway at that speed that traffic could seamlessly merge and it would be a uniform mass of metal streaming along. The problem is the first time someone hits their breaks it causes the person behind them to slow down more than they did because of the time to react.  That chain reaction causes a stand still a half a mile back. 


     


    If everything worked perfectly 100% of time there would never be any issues.  That is just not reasonable.  There is a point where hardware/software will be great enough for both to run at less than maximum efficiency and still be able to produce huge, complex, beautiful, seamless worlds. 


     


    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.

    “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







  • ladyattisladyattis Member Posts: 1,273

    Again, OP, it has nothing to do with bandwidth. It has to do with programming idioms not being taught at university. Trust me when I say this because I stated before I'm working on my Masters and only just now do they even bother to really deal with the more abstract idioms that lead to nice features such as concurrency, procedural programming, genetic algorithms, network theory (graph theory), and etc. These things are what make computers dance, sing, and do the miraculous. Without these basic concepts under your belt at best you can write out business logic in Java or Visual BASIC, but you cannot and never will be able to design complex, subtle programs.

  • fenistilfenistil Member Posts: 3,005

    Hell WoW is seamless. 

     

    Games like DFO & MO while they are not so good imho ,they are seamless.

     

    ArcheAge will be seamless.

     

    It CAN be done. 

     

    It needs to be done ASAP.

     

    It is not about loading screens only. It is about having a world to play in vs. having some chunk of ground to play in.

    Just diffrent vibe and feeling.

     

    Oh and 32-bit OS-es really need to go away. Badly. 

     

    I was really hoping that Win 8 will NOT have 32-bit version.  

    Unfortunetally I was wrong.

     

    Good thing though last 32-only CPU's stopped to be 32-bit only. 

    I mean Atom Intel CPU's.

     

    Not that any sizeable population played desktop mmorpg's on them in first place....

  • ladyattisladyattis Member Posts: 1,273

    Originally posted by Quirhid

    Originally posted by ladyattis

    And here's my rebuttal as a person working on my masters in Computer Science.

     

    Bandwidth is not the bottleneck (SSDs or your network connectivity). The bottleneck is in leveraging concurrent programming. Many programmers today still don't know how to use concurrency nor how to use it effectively if they do know some of the idioms for it. That's why Google created a whole language (Go) for the purpose of making concurrency easy to understand for programmers. So, the technical ability of every PC today can easily support dynamic streaming of zones and multiplayer events (actions, movements, etc). Even a Pentium 4 was designed with concurrency in mind despite its flaws and those programs designed to exploit its hyperthreading did better than those that couldn't (The same for Core-2 Duo). Ultimately, programmers today are just not up for the task of delivering on promises. It's not artwork, nor your PC, it's the programmers and the terrible education (or rather mis-education) they've received at US universities. Maybe in another decade when the universities understand that computer science is about logical idioms and not the specific languages which can express those idioms then you'll get capable programmers and game designers. Until then, expect failures.

     

    I think you're being a little unfair. Hyper threading is whole different beast than conventional programming. It brings a whole array of problems and potential pit-falls with it and you can't just do something and add concurrency. Not to mention the additional testing it requires.

    Its tricky even with the right education.

    That's why we have Google making a whole language for the task. Others aren't going off the deep end as the Goog, but they're working on libraries and frameworks to employee concurrency since now pretty much all your blade servers are running multicore processors (I've seen one running 16 cores on sale once). Much like the multimedia instructions that were created during the first decade of the 21st century, not many folks knew what the hell to do with them. Now we know what to do with all those instructions, and we're beginning to understand the sage advise of dead old men (Dijkstra comes to mind) on the matter. And we're beginning to adopt their idioms as part of our languages and frameworks. Expect some major changes to happen not only in gaming, but general computing.

  • HomituHomitu Member UncommonPosts: 2,030

    Originally posted by Quizzical

    Originally posted by Homitu

    An obvious question does come to mind, however: how is a game like WoW, which has (aesthetic style aside) done a great job of updating its graphics with each expansion, able to create full continents with no loading screens?  It would seem there is just as much, or nearly as much data to load in WoW as in other MMOs.  Moreover, WoW is known as one of the most highly performing, low-spec friendly MMOs on the market.  What exactly does this game do that others do not?

    There are several tricks that WoW uses.  First, it will start by having less data that it needs to load than a lot of games.  If you reuse characters so that a large number of characters look exactly the same, you only have to load that particular character once for a zone.  If a particular character spawns in 30 different places in the game in total, it won't seem like the game is completely overflowing with them.  If they're all in the same zone, then you have to load the texture maps for that character only once in that zone and never otherwise.

    Notice how different WoW zones have very different themes?  The idea is that you can get a lot of graphical variety by making Ungoro Crater look very different from Teldrassil or Loch Modan.  If you reuse a particular tree or rock a hundred times in a zone, you only have to load it once for the entire zone.  You can reflect it or rotate it to add to the apparent variety, while still only needing to load it once.

    The level of detail also makes a big difference in how much a game needs to load.  Lower polygon counts and lower resolution textures mean less stuff to load into memory.  So WoW probably has to load a lot less for a given zone than you might naively think it does.

    Next, how do you travel from one zone to the next?  Is it some huge wide border that you walk across?  No, it's narrow passageways that really don't have anything there.  You know what it's doing as you walk through that?  It's loading the next zone.  And it's doing so while the processor isn't terribly busy, as it doesn't need to display anything fancy.  As you get close, it knows that it might need to load the next zone.  But there's only one other particular zone that it might need to load, and it has a fair bit of time as you go along the very wide boundary between zones.

    What about flight paths, you ask?  Don't those cross right over the middle of mountains, and traverse zones quickly?  Yes, they do.  But they follow completely fixed routes.  The game undoubtedly has something stored of exactly what graphical assets it needs for each particular flight path.  As you go along a flight path, the game is loading things into memory for what you'll need along the path, and also for the zone that you'll end up in.  And here, if there's some hitching, it doesn't matter, so it can go all out on loading things, and not have to worry about it messing up the process of rendering the game.

    And then you can also ask, is a lengthy area of essentially empty land between adjoining zones really better than a loading screen?  The loading screen might well get you to the next zone faster.

    Thanks, that explanation helps.  It's certainly no secret WoW lacks variety in character models.  This also makes sense in light of the fact that for GW2 Anet said they will intentionally dramatically tone down player character textures in the open world for the sake of smoothness of gameplay, while reserving the details of features chosen during character creation to be displayed during cinematic dialogue scenes.

    I do still wonder about all WoW expansions past vanilla, since they have allowed flying mounts--at 310% movement speed nonetheless.  Suddenly players can travel from one zone into the next across any border anywhere, and much faster than they used to be able to.  And not every zone is separated by huge mountain ranges with little detail.  Some are separated by small streams, creating zone long borders that are instantly traversable (Dragonblight/Grizzly Hills; even Grizzly Hills has 3 very broad passages into Howling Fjord; Westfall/Duskood/Elywnn etc.)  To your knowledge, does my idea for smaller "data zones" have any merit?

    To your final comment I offer an account of my personal feelings--which I just wrote for another thread--about what I think well executed zone transitions can do for a game, though undoubtedly some find such moments more important to their game experience than others:

    One of my absolute favorite aspects of MMO gaming is simply existing in, exploring, and absorbing the world's environments.  Of this, my absolute favorite component is traversing brilliantly executed zone transitions.  The walk from sunny Redridge through the groomed, cultivated understory of Elwynn and into the haunting, gloomy forest of Duskwood in WoW comes to mind.  The sun fades away through the haze; shadows slowly encroach; the vegetation thickens; spider webs appear in the tree canopy; lanterns begin to line the road to fend off the growing darkness.  Then suddenly a lone wolf's piercing howl echoes to complete the mood transition.

    I fully understand the argument for convenience.  For the most part, I am tremendously grateful when developers approach their game with this philosophy.  Concerning this particular bit, however, I do wish more current games--with current technology--would follow the WoW [or insert other MMO with a similarly open world here] example and make use of the same tricks you described, in the name of immersion over convenience.  The immersion doesn't even have to come at the expense of convenience.  The treks between zones don't have to be lengthy hikes through low-data nothingness.  In fact, if those were my experiences--if I felt I was getting nothing but a long boring walk through nothing in WoW--I would be totally on board with loading screens and no longer desire "seamlessness."  But personally, I've gotten so much more out of those moments.  

     

  • Most this stuff is currently the equivalent of stage magic.  You were lead to that transition experience you like so much.  And you were lead there so artistically that the thought does not even register to you.  It is almost a scripted experience.

     

    This is one reason WoW impresses people even with sub-par graphics and cartoony style.

     

    The impressive thing about it and why its purely artisitic.  Is that its not a scripted experience.  You have control of your character yet you were lead into the presentation the artist wanted and did not feel that you were.

     

    In the end its a tradeoff in how you want to handle your art.  No amount of technical stuff will ever get rid of the need for stage tricks to handle this stuff.

     

    And this is why some people think that the jarring incongruency of people complain about zone transitions yet have no problem with being able to move while carrying hundreds of pound worth of crap in 8 bags.  Because in the end its all about mangaing what draws the eye and the mind.  It doesn't have to make sense.  Its art.

  • CalmOceansCalmOceans Member UncommonPosts: 2,437

    Removal of objects that aren't visible is called occlusion culling and simplifying distant geomtery is depth of field. If you search those terms on Google or something you should get millions of hits with info if it interests you.

    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.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by ladyattis

    idioms

    You keep using that word.  I don't think it means what you think it means.

    Unless this is a case of a technical field grabbing some common, existing word and giving it a new usage completely unrelated to what the rest of the world thinks it means.  For example, a "ring" in mathematics.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    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.

  • 13lake13lake Member UncommonPosts: 719

    Originally posted by Quizzical

    Originally posted by ladyattis

    idioms

    You keep using that word.  I don't think it means what you think it means.

    Unless this is a case of a technical field grabbing some common, existing word and giving it a new usage completely unrelated to what the rest of the world thinks it means.  For example, a "ring" in mathematics.

    ladyattis reminds me of unlimited detail technology, and the representer dude, ladyatttis keeps throwing big words around, using them in meaning that is not universally accepted  and no one besides him has ever used those words in the contextual meaning he is referring to, but all that side, seriously dude u sound like this: oh im just finishing my studies, ive never been involved in a project on a scale of an mmorpg but i know that every programmer in the world is slacking and all gaming world problems can be traced back to "noob" programmers, but i know better than everyone how they should do their job, even though its only on paper and in words and i've got nothing to show for it or prove it. 

    Now please dont take this the wrong way, and correct me if im wrong and provide proof that u can do simultaneous resource distrubution from RAM to RAM, from ssd to ssd, from to cpu and whatever other medium  to then use in a game with your so called advanced "idioms", and i'll be the first one to praise u and preach the new age programming ideas to solve oldschool problems.

    But untill then, this is all idle talk. remember what happened to unlimited technologies when they were asked ok so u got unlimited detail but everything is static and pre-rendered, so how do we now implement animated and moving players, npcs and other dynamic objects and have them all moving in relation to each other while keeping the polygon count on unlimited ?

    Their answer was simply: oh, well then, you know, well hm oh ok just wait 2 years we gonna make this baby do everything, and they dissapeared again and came back with a new trailer with better graphics but again minimal dynamical anymations and movable objects, so again they promised u'll see and haven't exactly been heard since then.

    Until they can prove with hard irrefutable evidence, that their technology can provide unlimited detail without sacrifising any of the pros of the current technology its just a gimmick, same like what you are saying sounds like a pipe dream.  

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by ladyattis

    Originally posted by Quirhid


    Originally posted by ladyattis

    And here's my rebuttal as a person working on my masters in Computer Science.

     

    Bandwidth is not the bottleneck (SSDs or your network connectivity). The bottleneck is in leveraging concurrent programming. Many programmers today still don't know how to use concurrency nor how to use it effectively if they do know some of the idioms for it. That's why Google created a whole language (Go) for the purpose of making concurrency easy to understand for programmers. So, the technical ability of every PC today can easily support dynamic streaming of zones and multiplayer events (actions, movements, etc). Even a Pentium 4 was designed with concurrency in mind despite its flaws and those programs designed to exploit its hyperthreading did better than those that couldn't (The same for Core-2 Duo). Ultimately, programmers today are just not up for the task of delivering on promises. It's not artwork, nor your PC, it's the programmers and the terrible education (or rather mis-education) they've received at US universities. Maybe in another decade when the universities understand that computer science is about logical idioms and not the specific languages which can express those idioms then you'll get capable programmers and game designers. Until then, expect failures.

     

    I think you're being a little unfair. Hyper threading is whole different beast than conventional programming. It brings a whole array of problems and potential pit-falls with it and you can't just do something and add concurrency. Not to mention the additional testing it requires.

    Its tricky even with the right education.

    That's why we have Google making a whole language for the task. Others aren't going off the deep end as the Goog, but they're working on libraries and frameworks to employee concurrency since now pretty much all your blade servers are running multicore processors (I've seen one running 16 cores on sale once). Much like the multimedia instructions that were created during the first decade of the 21st century, not many folks knew what the hell to do with them. Now we know what to do with all those instructions, and we're beginning to understand the sage advise of dead old men (Dijkstra comes to mind) on the matter. And we're beginning to adopt their idioms as part of our languages and frameworks. Expect some major changes to happen not only in gaming, but general computing.

    You seem to be focusing solely on processor utilization.  That's a huge deal for keeping frame rates up by making proper use of all of the resources that a processor has available.  But that's not the real bottleneck for making game worlds seamless.

    The real barrier to seamless worlds as opposed to zoned worlds is loading stuff off of the hard drive.  If you had infinite memory, you could just load everything into memory and there would be no reason to make a world zoned rather than seamless.  What makes a seamless world harder is that you have to load stuff into memory and then get rid of it to make room to load something else, and make sure that whatever you need in memory is always sitting there when you need it.

    While loading things into memory does put some load on the processor, it's not really that much.  You can open up task manager to see the CPU load while you sit and wait at a loading screen.  It's not very much.

    If you've done any work with parallelism at all, then surely you know that some things are a lot easier to make parallel than others.  The reason I brought up quad core processors is that it's easy to put loading the next zone into its own thread.  If you want the work of rendering the game engine to scale well to four cores, it can be done (and some games do it), but it's a lot trickier (which is why most games don't).

    There really isn't much parallelism when loading things off of a hard drive, however.  You can get some gains from a higher queue depth, but that doesn't really fix the problem.  A hard drive head can only physically be in one place at a time.  In order to read in a file off of the hard drive, you have to wait for it to physically move to the right spot.  If you want to load a thousand files at once, and they're physically scattered all over the hard drive, it's going to take a while.  Clever coding can't change that.

    The reason solid state drives are such a big deal is that it nearly eliminates the penalty of waiting for a hard drive to spin to the right spot.  Even if a programmer isn't very good at covering up hard drive access times, on a solid state drive, it doesn't matter.  Having plenty of system memory available and everything stored on a fast SSD will make it so that even if a programmer isn't any better than typical game programmers are today, making the world seamless won't be much harder than making it zoned with loading screens.

    So we're waiting on one of two things:

    1)  For game programmers to all get to be as good as you think they ought to be, or

    2)  For newer hardware, especially solid state drives, to become ubiquitous in gaming machines.

    Which do you think will happen first?

  • ClerigoClerigo Member UncommonPosts: 400

    Originally posted by Quizzical

    Originally posted by ladyattis


    Originally posted by Quirhid


    Originally posted by ladyattis

    *snip*

     

    *snip*

    *snip(..)

    So we're waiting on one of two things:

    1)  For game programmers to all get to be as good as you think they ought to be, or

    2)  For newer hardware, especially solid state drives, to become ubiquitous in gaming machines.

    Which do you think will happen first?

    We all know number 1 will never happen.

    The problem is that, for me, this is where the main issue  lies.

    I dont have computers masters/degree as mine is in the telecom field, but i do have some contact with programming for the telecom area and i can say that the skill of a programmer these days is actually not at pair with hardware capabilities. Sure there are genius out there but they dont work for gaming companies or in developing game engines. They work for the companies that sell high end software for the telecom industry, banking, energy, etc. There you can find the "kwan"...not here...

    So, and unless something big happens in the gaming industry, we will have to wait for number 2 to come along.

  • ladyattisladyattis Member Posts: 1,273

    Originally posted by 13lake

    Originally posted by Quizzical


    Originally posted by ladyattis

    idioms

    You keep using that word.  I don't think it means what you think it means.

    Unless this is a case of a technical field grabbing some common, existing word and giving it a new usage completely unrelated to what the rest of the world thinks it means.  For example, a "ring" in mathematics.

    ladyattis reminds me of unlimited detail technology, and the representer dude, ladyatttis keeps throwing big words around, using them in meaning that is not universally accepted  and no one besides him has ever used those words in the contextual meaning he is referring to, but all that side, seriously dude u sound like this: oh im just finishing my studies, ive never been involved in a project on a scale of an mmorpg but i know that every programmer in the world is slacking and all gaming world problems can be traced back to "noob" programmers, but i know better than everyone how they should do their job, even though its only on paper and in words and i've got nothing to show for it or prove it. 

    Now please dont take this the wrong way, and correct me if im wrong and provide proof that u can do simultaneous resource distrubution from RAM to RAM, from ssd to ssd, from to cpu and whatever other medium  to then use in a game with your so called advanced "idioms", and i'll be the first one to praise u and preach the new age programming ideas to solve oldschool problems.

    But untill then, this is all idle talk. remember what happened to unlimited technologies when they were asked ok so u got unlimited detail but everything is static and pre-rendered, so how do we now implement animated and moving players, npcs and other dynamic objects and have them all moving in relation to each other while keeping the polygon count on unlimited ?

    Their answer was simply: oh, well then, you know, well hm oh ok just wait 2 years we gonna make this baby do everything, and they dissapeared again and came back with a new trailer with better graphics but again minimal dynamical anymations and movable objects, so again they promised u'll see and haven't exactly been heard since then.

    Until they can prove with hard irrefutable evidence, that their technology can provide unlimited detail without sacrifising any of the pros of the current technology its just a gimmick, same like what you are saying sounds like a pipe dream.  

    "A programming idiom is a means of expressing a recurring construct in one or more programming languages. Generally speaking, a programming idiom is an expression of a simple task or algorithm that is not a built-in feature in the programming language being used, or, conversely, the use of an unusual or notable feature that is built in to a programming language. The term can be used more broadly, however, to refer to complex algorithms or programming design patterns." -- Per the Wikipedia 

     

    So, if you want to pretend to know my field and what I'm saying, then go ahead. There's a huge difference between stating that seamless zones can be constructed and procedural content for such zones are possible and saying we're going to have literally infinite detail within a finite memory. Please try again.

  • ladyattisladyattis Member Posts: 1,273

    Originally posted by Quizzical

    Originally posted by ladyattis


    Originally posted by Quirhid


    Originally posted by ladyattis

    And here's my rebuttal as a person working on my masters in Computer Science.

     

    Bandwidth is not the bottleneck (SSDs or your network connectivity). The bottleneck is in leveraging concurrent programming. Many programmers today still don't know how to use concurrency nor how to use it effectively if they do know some of the idioms for it. That's why Google created a whole language (Go) for the purpose of making concurrency easy to understand for programmers. So, the technical ability of every PC today can easily support dynamic streaming of zones and multiplayer events (actions, movements, etc). Even a Pentium 4 was designed with concurrency in mind despite its flaws and those programs designed to exploit its hyperthreading did better than those that couldn't (The same for Core-2 Duo). Ultimately, programmers today are just not up for the task of delivering on promises. It's not artwork, nor your PC, it's the programmers and the terrible education (or rather mis-education) they've received at US universities. Maybe in another decade when the universities understand that computer science is about logical idioms and not the specific languages which can express those idioms then you'll get capable programmers and game designers. Until then, expect failures.

     

    I think you're being a little unfair. Hyper threading is whole different beast than conventional programming. It brings a whole array of problems and potential pit-falls with it and you can't just do something and add concurrency. Not to mention the additional testing it requires.

    Its tricky even with the right education.

    That's why we have Google making a whole language for the task. Others aren't going off the deep end as the Goog, but they're working on libraries and frameworks to employee concurrency since now pretty much all your blade servers are running multicore processors (I've seen one running 16 cores on sale once). Much like the multimedia instructions that were created during the first decade of the 21st century, not many folks knew what the hell to do with them. Now we know what to do with all those instructions, and we're beginning to understand the sage advise of dead old men (Dijkstra comes to mind) on the matter. And we're beginning to adopt their idioms as part of our languages and frameworks. Expect some major changes to happen not only in gaming, but general computing.

    You seem to be focusing solely on processor utilization.  That's a huge deal for keeping frame rates up by making proper use of all of the resources that a processor has available.  But that's not the real bottleneck for making game worlds seamless.

    The real barrier to seamless worlds as opposed to zoned worlds is loading stuff off of the hard drive.  If you had infinite memory, you could just load everything into memory and there would be no reason to make a world zoned rather than seamless.  What makes a seamless world harder is that you have to load stuff into memory and then get rid of it to make room to load something else, and make sure that whatever you need in memory is always sitting there when you need it.

    While loading things into memory does put some load on the processor, it's not really that much.  You can open up task manager to see the CPU load while you sit and wait at a loading screen.  It's not very much.

    If you've done any work with parallelism at all, then surely you know that some things are a lot easier to make parallel than others.  The reason I brought up quad core processors is that it's easy to put loading the next zone into its own thread.  If you want the work of rendering the game engine to scale well to four cores, it can be done (and some games do it), but it's a lot trickier (which is why most games don't).

    There really isn't much parallelism when loading things off of a hard drive, however.  You can get some gains from a higher queue depth, but that doesn't really fix the problem.  A hard drive head can only physically be in one place at a time.  In order to read in a file off of the hard drive, you have to wait for it to physically move to the right spot.  If you want to load a thousand files at once, and they're physically scattered all over the hard drive, it's going to take a while.  Clever coding can't change that.

    The reason solid state drives are such a big deal is that it nearly eliminates the penalty of waiting for a hard drive to spin to the right spot.  Even if a programmer isn't very good at covering up hard drive access times, on a solid state drive, it doesn't matter.  Having plenty of system memory available and everything stored on a fast SSD will make it so that even if a programmer isn't any better than typical game programmers are today, making the world seamless won't be much harder than making it zoned with loading screens.

    So we're waiting on one of two things:

    1)  For game programmers to all get to be as good as you think they ought to be, or

    2)  For newer hardware, especially solid state drives, to become ubiquitous in gaming machines.

    Which do you think will happen first?

    No, the CPU is essential for actually generating the content. Stop thinking of MMOs in the old client-server architecture. That model has run its course and it costs more for investors after release, so that model will be getting less money in the future. Expect your PC to do most of the processing for the multiplayer games you want. 

  • niceguy3978niceguy3978 Member UncommonPosts: 2,051

    Originally posted by Quizzical

    Originally posted by Homitu

    An obvious question does come to mind, however: how is a game like WoW, which has (aesthetic style aside) done a great job of updating its graphics with each expansion, able to create full continents with no loading screens?  It would seem there is just as much, or nearly as much data to load in WoW as in other MMOs.  Moreover, WoW is known as one of the most highly performing, low-spec friendly MMOs on the market.  What exactly does this game do that others do not?

    There are several tricks that WoW uses.  First, it will start by having less data that it needs to load than a lot of games.  If you reuse characters so that a large number of characters look exactly the same, you only have to load that particular character once for a zone.  If a particular character spawns in 30 different places in the game in total, it won't seem like the game is completely overflowing with them.  If they're all in the same zone, then you have to load the texture maps for that character only once in that zone and never otherwise.

    Notice how different WoW zones have very different themes?  The idea is that you can get a lot of graphical variety by making Ungoro Crater look very different from Teldrassil or Loch Modan.  If you reuse a particular tree or rock a hundred times in a zone, you only have to load it once for the entire zone.  You can reflect it or rotate it to add to the apparent variety, while still only needing to load it once.

    The level of detail also makes a big difference in how much a game needs to load.  Lower polygon counts and lower resolution textures mean less stuff to load into memory.  So WoW probably has to load a lot less for a given zone than you might naively think it does.

    Next, how do you travel from one zone to the next?  Is it some huge wide border that you walk across?  No, it's narrow passageways that really don't have anything there.  You know what it's doing as you walk through that?  It's loading the next zone.  And it's doing so while the processor isn't terribly busy, as it doesn't need to display anything fancy.  As you get close, it knows that it might need to load the next zone.  But there's only one other particular zone that it might need to load, and it has a fair bit of time as you go along the very wide boundary between zones.

    What about flight paths, you ask?  Don't those cross right over the middle of mountains, and traverse zones quickly?  Yes, they do.  But they follow completely fixed routes.  The game undoubtedly has something stored of exactly what graphical assets it needs for each particular flight path.  As you go along a flight path, the game is loading things into memory for what you'll need along the path, and also for the zone that you'll end up in.  And here, if there's some hitching, it doesn't matter, so it can go all out on loading things, and not have to worry about it messing up the process of rendering the game.

    And then you can also ask, is a lengthy area of essentially empty land between adjoining zones really better than a loading screen?  The loading screen might well get you to the next zone faster.

    How do flying mounts play into this?  While the flight paths might be static, the flying mounts allow you to cross zone borders in varying places, not just along that specific rout.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by ladyattis

    Originally posted by 13lake


    Originally posted by Quizzical


    Originally posted by ladyattis

    idioms

    You keep using that word.  I don't think it means what you think it means.

    Unless this is a case of a technical field grabbing some common, existing word and giving it a new usage completely unrelated to what the rest of the world thinks it means.  For example, a "ring" in mathematics.

    ladyattis reminds me of unlimited detail technology, and the representer dude, ladyatttis keeps throwing big words around, using them in meaning that is not universally accepted  and no one besides him has ever used those words in the contextual meaning he is referring to, but all that side, seriously dude u sound like this: oh im just finishing my studies, ive never been involved in a project on a scale of an mmorpg but i know that every programmer in the world is slacking and all gaming world problems can be traced back to "noob" programmers, but i know better than everyone how they should do their job, even though its only on paper and in words and i've got nothing to show for it or prove it. 

    Now please dont take this the wrong way, and correct me if im wrong and provide proof that u can do simultaneous resource distrubution from RAM to RAM, from ssd to ssd, from to cpu and whatever other medium  to then use in a game with your so called advanced "idioms", and i'll be the first one to praise u and preach the new age programming ideas to solve oldschool problems.

    But untill then, this is all idle talk. remember what happened to unlimited technologies when they were asked ok so u got unlimited detail but everything is static and pre-rendered, so how do we now implement animated and moving players, npcs and other dynamic objects and have them all moving in relation to each other while keeping the polygon count on unlimited ?

    Their answer was simply: oh, well then, you know, well hm oh ok just wait 2 years we gonna make this baby do everything, and they dissapeared again and came back with a new trailer with better graphics but again minimal dynamical anymations and movable objects, so again they promised u'll see and haven't exactly been heard since then.

    Until they can prove with hard irrefutable evidence, that their technology can provide unlimited detail without sacrifising any of the pros of the current technology its just a gimmick, same like what you are saying sounds like a pipe dream.  

    "A programming idiom is a means of expressing a recurring construct in one or more programming languages. Generally speaking, a programming idiom is an expression of a simple task or algorithm that is not a built-in feature in the programming language being used, or, conversely, the use of an unusual or notable feature that is built in to a programming language. The term can be used more broadly, however, to refer to complex algorithms or programming design patterns." -- Per the Wikipedia 

     

    So, if you want to pretend to know my field and what I'm saying, then go ahead. There's a huge difference between stating that seamless zones can be constructed and procedural content for such zones are possible and saying we're going to have literally infinite detail within a finite memory. Please try again.

    I think that your second paragraph there was directed at 13lake, not at me, so I'll ignore it.  I don't know whether you're really a master's student in computer science (as one bsaically can't know over the Internet), but it strikes me as plausible.

    For what it's worth, that doesn't appear on the Wikipedia page for idiom, nor does that page link to one.  So I'll link to the page where it does appear, to try to make it easier for others to follow the discussion:

    http://en.wikipedia.org/wiki/Programming_idiom

    It's a long, long way from knowing programming idioms of that sort to building a seamless game world that actually works.  This is in roughly the sense that it's a long, long way from knowing the common English idioms to writing a book that sells 100k copies.

    There isn't any simple "do this and this and this and you have a seamless game world that runs well on existing hardware" that can be retrofitted to any game out there.  Making a seamless game world work properly (as opposed to a bunch of hitching) and without other severe drawbacks (e.g., very simple game world with terrible graphics) takes a lot of cleverness and programming tricks.

    Much of the point of this thread is to say that once some improvements that some gaming systems already have become ubiquitous, it will be much, much easier to make a seamless game world.  For example, there isn't anything that can be done with high level programming languages that is theoretically impossible to do in assembly language.  But high level programming languages make many things dramatically easier than assembly language, and so a lot of cool things are done that wouldn't be done if everything still had to be coded in assembly language.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by ladyattis

    Originally posted by Quizzical

    So we're waiting on one of two things:

    1)  For game programmers to all get to be as good as you think they ought to be, or

    2)  For newer hardware, especially solid state drives, to become ubiquitous in gaming machines.

    Which do you think will happen first?

    No, the CPU is essential for actually generating the content. Stop thinking of MMOs in the old client-server architecture. That model has run its course and it costs more for investors after release, so that model will be getting less money in the future. Expect your PC to do most of the processing for the multiplayer games you want. 

    So now you're proposing to get around a hard drive bottleneck by making things procedurally generated, rather than stored and loaded from a hard drive?  While that's theoretically possible, I expect that it would be very, very hard to make procedurally generated artwork that isn't completely awful.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by niceguy3978

    Originally posted by Quizzical


    Originally posted by Homitu

    An obvious question does come to mind, however: how is a game like WoW, which has (aesthetic style aside) done a great job of updating its graphics with each expansion, able to create full continents with no loading screens?  It would seem there is just as much, or nearly as much data to load in WoW as in other MMOs.  Moreover, WoW is known as one of the most highly performing, low-spec friendly MMOs on the market.  What exactly does this game do that others do not?

    There are several tricks that WoW uses.  First, it will start by having less data that it needs to load than a lot of games.  If you reuse characters so that a large number of characters look exactly the same, you only have to load that particular character once for a zone.  If a particular character spawns in 30 different places in the game in total, it won't seem like the game is completely overflowing with them.  If they're all in the same zone, then you have to load the texture maps for that character only once in that zone and never otherwise.

    Notice how different WoW zones have very different themes?  The idea is that you can get a lot of graphical variety by making Ungoro Crater look very different from Teldrassil or Loch Modan.  If you reuse a particular tree or rock a hundred times in a zone, you only have to load it once for the entire zone.  You can reflect it or rotate it to add to the apparent variety, while still only needing to load it once.

    The level of detail also makes a big difference in how much a game needs to load.  Lower polygon counts and lower resolution textures mean less stuff to load into memory.  So WoW probably has to load a lot less for a given zone than you might naively think it does.

    Next, how do you travel from one zone to the next?  Is it some huge wide border that you walk across?  No, it's narrow passageways that really don't have anything there.  You know what it's doing as you walk through that?  It's loading the next zone.  And it's doing so while the processor isn't terribly busy, as it doesn't need to display anything fancy.  As you get close, it knows that it might need to load the next zone.  But there's only one other particular zone that it might need to load, and it has a fair bit of time as you go along the very wide boundary between zones.

    What about flight paths, you ask?  Don't those cross right over the middle of mountains, and traverse zones quickly?  Yes, they do.  But they follow completely fixed routes.  The game undoubtedly has something stored of exactly what graphical assets it needs for each particular flight path.  As you go along a flight path, the game is loading things into memory for what you'll need along the path, and also for the zone that you'll end up in.  And here, if there's some hitching, it doesn't matter, so it can go all out on loading things, and not have to worry about it messing up the process of rendering the game.

    And then you can also ask, is a lengthy area of essentially empty land between adjoining zones really better than a loading screen?  The loading screen might well get you to the next zone faster.

    How do flying mounts play into this?  While the flight paths might be static, the flying mounts allow you to cross zone borders in varying places, not just along that specific rout.

    When I played WoW, the only flying anything (other than creatures like harpies that basically hovered just above the ground) were the fixed flight paths and the buggy zeppelins that also followed fixed paths.  If they now have flying mounts that really do let you go anywhere, I haven't seen it, so I'd have to just guess.  Sometimes it's glaringly obvious what tricks a game is using once you play it.  For example, in Vanguard, people claim it's seamless, but it's quickly obvious how they do this as soon as you start crossing zone boundaries:  the game freezes while waiting for you to load the next zone, instead of bringing up a loading screen.

    WoW's system requirements are a lot higher than they used to be.  At launch, the required amount of system memory was 256 MB.  Today, it's 1 GB.  Today, the game takes 25 GB of hard drive space; for comparison, the hard drive that I played WoW from never had 25 GB in use in total, even counting the OS and other programs.

    It's plausible that WoW might just assume that you have enough memory available to have 2 or 3 zones loaded into memory at once.  Recall that WoW zones don't take that much space to load, and the 2 GB cap of 32-bit programs simply wasn't meaningful when the game was developed.

    It probably also helps that even if you don't follow the normal path from one zone to the next, there is a wide area that is basically empty that still separates zones, and gives you time to load the next zone while there isn't much else for the computer to do.

    There can also be tradeoffs between loading times and storage space.  The big thing that makes loading things off of a hard drive really slow is the waiting for the hard drive to move to the right position to start the next file.  If you take everything that is needed for a given zone and stick it in a single file (that gets broken up into a bunch of other files after the big file is loaded into memory), then you only pay that penalty once when loading a zone if you keep your hard drive defragmented.  The drawback of this is that anything that is used in three separate zones has to be stored on the hard drive three separate times.

    Does WoW actually do that?  Probably not in that naive implementation.  But you can also do it partially, with one big file of things that are only used in zone X, and then several other files for things that are shared between particular sets of zones.

    The big problem that you can't do this for is players, since any player wearing any gear could conceivably show up in any zone.  But there are other tricks for that, such as simply not displaying players on your screen until you've loaded the proper textures for them.

    It's also likely that Blizzard did a lot of testing to see how quickly they could load zones as you moved around, and made sure that the flying mounts moved slowly enough as to not break things.  Someone said that flying mounts move at 310% speed.  It's entirely plausible that Blizzard testing concluded that that was the fastest that they could move without causing excessive hitching or other problems of things taking too long to load on whatever their target minimum hardware specs were.

    Remember that if players only move around half as fast (and running around on foot in WoW is really slow), that gives you twice as much time to load the next zone in the background.

  • QuizzicalQuizzical Member LegendaryPosts: 25,483

    Originally posted by fenistil

    Oh and 32-bit OS-es really need to go away. Badly. 

     

    I was really hoping that Win 8 will NOT have 32-bit version.  

    Unfortunetally I was wrong.

     

    Good thing though last 32-only CPU's stopped to be 32-bit only. 

    I mean Atom Intel CPU's.

    32-bit operating systems are still needed for backward compatibility to 16-bit programs.  There isn't much need for this in the consumer space, but if you're a business with proprietary 16-bit software that absolutely must run, then any OS that can't run that 16-bit program is a non-starter for you.

    Why can't they make a 64-bit version of Windows that can also run 16-bit programs?  I have no idea, but I assume that if it were easy, then Microsoft would have done it already.

  • ZezdaZezda Member UncommonPosts: 686

    Originally posted by Quizzical

     

    It's plausible that WoW might just assume that you have enough memory available to have 2 or 3 zones loaded into memory at once.  Recall that WoW zones don't take that much space to load, and the 2 GB cap of 32-bit programs simply wasn't meaningful when the game was developed.

     

    WoW crapped it's pants anytime I even attempted to move more than 100ft away from the spot I logged in from when I set the graphics to max on my 5280x1050 resolution. Zone transitions?... buwahaha.. even in totally empty areas the game died a horrible death, it loaded 1.6GB just from me logging in...

    I had to enable LAA on the executable for the game to even be playable.

    Spoke with their technical dept and they advised that there was no need for the game to ever use more than 2GB of RAM and hid behind the 'we don't support multi-monitors' excuse for not having either a 64bit exe or even the LAA flag enabled. 

    I think these days they have the LAA flag on the exe and I also believe as of February this year they launched a 64bit client.

    I guarantee that only a tiny, tiny proportion of those people playing any game actually need a 64bit client at this point and the amount of money and time invested into generating that and testing it and making sure it passes QA is simply not going to be worth it unless you make it mandatory requirement to run your game so you can get the full use from it but then you just eliminated a huge percentage of possible players from ever being able to play your game until they either get a new PC or install a 64bit OS.

     

    At the end of the day Quizzical is spot on in his OP, we will get there but it will take a few years until we shake off our 32bit needs and SSD's become more ubiquitous and it's safe to assume everyone has one.

    [4th comment from the thread announcing the 64bit WoW client... 'Yep, so far it feels more fluid and like it stutters less going from one zone to another.' ]

  • fenistilfenistil Member Posts: 3,005

    Originally posted by Quizzical

    Originally posted by fenistil

    Oh and 32-bit OS-es really need to go away. Badly. 

     

    I was really hoping that Win 8 will NOT have 32-bit version.  

    Unfortunetally I was wrong.

     

    Good thing though last 32-only CPU's stopped to be 32-bit only. 

    I mean Atom Intel CPU's.

    32-bit operating systems are still needed for backward compatibility to 16-bit programs.  There isn't much need for this in the consumer space, but if you're a business with proprietary 16-bit software that absolutely must run, then any OS that can't run that 16-bit program is a non-starter for you.

    Why can't they make a 64-bit version of Windows that can also run 16-bit programs?  I have no idea, but I assume that if it were easy, then Microsoft would have done it already.

    I understand that.

    Still I am of opinion that 32-bit OS'es should be only avabile labelled as business versions and not be marketted and sold as consumer versions anymore. 

    Yet they still are and while they are relatvively rarely pre-loaded on PC's / laptops since Windows 7 (notebooks with Atoms beign exception until recently) or choosen by people who build their own PC ,etc they still are.

     

     

  • hagbard85hagbard85 Member Posts: 1

    2^32 = ~4gb memory not 2gb

  • fenistilfenistil Member Posts: 3,005

    Originally posted by Zezda

     

    I guarantee that only a tiny, tiny proportion of those people playing any game actually need a 64bit client at this point and the amount of money and time invested into generating that and testing it and making sure it passes QA is simply not going to be worth it unless you make it mandatory requirement to run your game so you can get the full use from it but then you just eliminated a huge percentage of possible players from ever being able to play your game until they either get a new PC or install a 64bit OS.

     

    With current games true.

    Though high-polygon , heavy-post processed graphics with hi-res textures everywhere + seamless world?

    You will need 64-bit game client for that.

     

    You can try to workaround with EAX register and all that ,but that's problematic and not optimal performance wise.

     

    Remember new generation of GPU's have 2-3 GB of memory themself.

    Having 8 GB of Ram is starting to be normal.

    32-bit OS can adress 4 GB both Ram and Vram. 

    Not 4 gb of ram AND 4 gb of Vram.

     

    Seamlesss high-polygon , hi-res textures , seamless , high-detail , will fill up 4 GB Ram + Vram in seconds even of one Full HD monitor.

    Unless you decrease drawing distance to only 5 meters around player lol

Sign In or Register to comment.