Planet generation bottleneck

Discussion in 'Support!' started by Stricneen, September 20, 2013.

  1. Stricneen

    Stricneen New Member

    Messages:
    3
    Likes Received:
    0
    Hi all,

    I thought I had a pretty decent machine until I started generating scale 3+ planets in PA. I can easily sit there for a couple of minutes and find the game started before I get in.

    I know my GC is staring to get a bit creaky (HD4800) - so was just wondering where the bulk of the planet gen stuff occurs - CPU / GPU.

    TIA
    Stric
  2. BulletMagnet

    BulletMagnet Post Master General

    Messages:
    3,263
    Likes Received:
    591
  3. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Hardware information required, please attach your DxDiag.txt.
  4. Tontow

    Tontow Active Member

    Messages:
    459
    Likes Received:
    64
    Are planets generated by the server or the computer client??
  5. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    When game start both server and client generate planet independently.
    Obviously both client and server generate planets with own specifics (e.g server probably don't need any visual stuff).
    Last edited: September 20, 2013
  6. Tontow

    Tontow Active Member

    Messages:
    459
    Likes Received:
    64
    Would it not be better if the server generated the planet and then the client downloaded it? How much data would that be?
  7. Stricneen

    Stricneen New Member

    Messages:
    3
    Likes Received:
    0
    File attached as requested

    Attached Files:

  8. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Thanks. Probably your hardware was decent 5 years ago, but today it's just old computer with low performance. It's powerful enough to play PA (4GB RAM still might be a problem) with some low-middle graphics settings without problems, but for current state of game planet generation speed is okay.

    I sure developers will continue to optimize generation process, so it's will be faster in future, but you need to understand there also will be much more details to generate: more planets, many asteroids, so it's probably won't be too fast on your hardware.
  9. aeonsim

    aeonsim Active Member

    Messages:
    195
    Likes Received:
    42
    A Core 2 duo @ 2.6Ghz & and ATI 4800 series. That was a nice machine 6 years ago but these days it's fairly far behind there have been half a dozen new processor generations since each improving performance by 5-10% as well as increasing clock speeds by 50%. It's similar with the graphics card we are currently up to the 7000 series from ATI/AMD but each generation they've increased performance by between 25-100% so your even further behind there.

    If you have a look at benchmarks here a CPU similar to your one vs a modern desktop cpu you'll see that the modern cpu is anywhere from 50-300% faster for CPU bound tasks.
    http://www.anandtech.com/bench/product/75?vs=836

    While for the Graphics card the 4800 series vs the 4th fastest 7000 series card finds it's self 2.5x slower on average.

    When the final version of PA comes out the performance may improve, and I'm not sure what the minimal specs uber is aiming for, but a 6 year old computer is likely to be near minimal specs. I'd say you might want to consider an upgrade of both cpu, gpu & Ram (effectively a new pc) if you want something cutting edge and likely to be able to run the game on uber settings.
  10. doud

    doud Well-Known Member

    Messages:
    922
    Likes Received:
    568
    Just for your information when generating a planet, the 8 threads of my core i7 3770K can get stuck à 99% for a few dozens of seconds. though, this is still a huge improvement compared to very first PA builds where generating a large planet on my i7 3770k used to take a few minutes.

    I guess at some point, when planet has been generated, it has to be loaded in GFX vram, and thus, having a good graphic card might also help to reduce the generation time.
  11. Stricneen

    Stricneen New Member

    Messages:
    3
    Likes Received:
    0
    Thanks to everyone who replied. Looks like I'm doing a rebuild :)
  12. vackillers

    vackillers Well-Known Member

    Messages:
    838
    Likes Received:
    360
    Just wanting to add to this thread, I have figured out that the VRAM doesn't get cleared and you have to manually close the game and re-open it after to prevent massive lag and texture glitches. It seems doud is 100% correct the system editor uses nothing but the vram to generate planets with and soon as you start hitting your max on the vram, performance goes right in the gutter. Things start going wrong soon as I hit around 780MB on my vram after the first planet is created.
  13. jacoby6000

    jacoby6000 Member

    Messages:
    105
    Likes Received:
    8
    No, because the server doesn't have as much to generate. The server really only needs vertex data. It doesn't need anything with textures or UV mapping, or even the little rock "props" that show up everywhere. And to put it in to perspective, imagine how much a small planet uses of your ram (ball park of 250MB for a tiny one, i think). Now compress that (more server load time), send it over as maybe 50MB (with really good compression), then download that (would take roughly 40 seconds on a 10mbps connection to Uber), then decompress it (more time for you). In the end, it takes a lot longer to generate it on the server then send it, than it does to just generate it on each client.

    The whole reason procedural generation was created (as opposed to random generation), is so that systems can independently generate the exact same result from a given input. It winds up being much faster in the end this way.
    Last edited: September 24, 2013
  14. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    We can also make it faster... although it's already had some optimization done I think we can do better. Just takes time... I still can't believe that we've built in a year.
  15. Tontow

    Tontow Active Member

    Messages:
    459
    Likes Received:
    64
    One of those far off polish things to add to the loading screen: a progress bar.
  16. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    Progress bars are usually lies. Honestly we don't have much way of tracking how finished it is without really guessing.

    How about something better? Send the planets when people are hanging out in the lobby and build them before the game even starts so you don't have to wait.
    Ortikon, zaphodx and exterminans like this.
  17. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    That actually sounds like a great idea, but then again only with a indicator so you can see who you are waiting for and a barrier at game start to ensure that all players have loaded the planet yet.
  18. ooshr32

    ooshr32 Active Member

    Messages:
    749
    Likes Received:
    141
    True. But they help people feel better about the situation as they wait.
    It's psychology, it doesn't have to make sense, engineering types struggle with that type of thing which why so many of their UI attempts are terrible.
    You've made me a happy man...
  19. Tontow

    Tontow Active Member

    Messages:
    459
    Likes Received:
    64
    That would work.

    I tried a 14 planet game and my everyone's computer either melted or took forever.


    Btw, I seem to remember a default asteroid belt way back when, that would be good to see again.
  20. radtoo

    radtoo Member

    Messages:
    40
    Likes Received:
    5
    Agreed. The earlier things start to load, the better.

    This way, people could already check out the map while people still join up in the lobby and so on, if they're done with loading. And chats would never be interrupted by a "loading" screen, either.

    All that you need to somehow avoid is that, when the host is still making adjustments, people -including the host- get an unresponsive interface.

    And clients shouldn't react late to changes on the host's side. (I don't know why, but some games just wait for threads / processes to finish instead of killing / scheduling them behind the new tasks required for the new maps / parameters, right away. I suspect you weren't going to do it like this anyways, but I thought I'd mention it.).

Share This Page