Initialize the Shipyard Space

    Edymnion

    Carebear Extraordinaire!
    Joined
    Mar 18, 2015
    Messages
    2,709
    Reaction score
    1,512
    • Purchased!
    • Thinking Positive Gold
    • Legacy Citizen 5
    Might have changed recently as its been a little while since I've built anything big in a shipyard, but I've had times before where I'd be building large in a shipyard and got hit with "build area not initialized".

    Really?

    Since the shipyard has known boundries, can't we just initialize the entire thing as soon as we load it?
     

    therimmer96

    The Cake Network Staff Senior button unpusher
    Joined
    Jun 21, 2013
    Messages
    3,603
    Reaction score
    1,053
    • Legacy Citizen 10
    • Top Forum Contributor
    Since the shipyard has known boundries, can't we just initialize the entire thing as soon as we load it?
    No.

    This would mean creating files for a space that might never be used, which would increase not only RAM usage, but database size aswell.
     

    Lukwan

    Human
    Joined
    Oct 30, 2015
    Messages
    691
    Reaction score
    254
    O.K. how about a 'pre-initialize' slider for % of max area of the shipyard? That way you could dial in just the amount you think you will need immediately before starting to build a ship.
     
    Last edited:

    Edymnion

    Carebear Extraordinaire!
    Joined
    Mar 18, 2015
    Messages
    2,709
    Reaction score
    1,512
    • Purchased!
    • Thinking Positive Gold
    • Legacy Citizen 5
    No.

    This would mean creating files for a space that might never be used, which would increase not only RAM usage, but database size aswell.
    Temporarily, yes. But if it gets loaded/unloaded only while you are actively working on it, it shouldn't be that big of a deal.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    An initialization error sounds like a bug to me. If I were the dev team, I'd alter the game keep a bubble of 27 chunks (3^3) initialized around all astronauts in the shipyard area to keep them from seeing this problem.

    However, that doesn't take into account the admins being able to increase the maximum advanced-mode dimensions. However, it would be relatively easy to implement math to increase the loaded chunk count, based on the current selected dimensions. (E.g. ChunksToLoadX = ( Ceil ( ( MaxXLength * 2 + 1 ) / 32 ) + 2 ), repeat for Y and Z, and then multiply the three numbers together to get the number of total chunks to load, centered on the astronaut.

    Example Result: if the maximum build length across all 3 axes were set to 200 instead of 10, the game would need to load a total of 3,375 chunks (a cube of chunks, 15 per side), centered on the astronaut.

    Additional geometry math is needed to check for intersections between multiple astronauts' Chunks-To-Load and consolidate all of them so that overlapping chunks are only loaded once for all astronauts.)

    If the devs were to maintain some sort of dynamic object chain that describes all the chunks, it would be relatively easy to compare to another astronaut's list and to update the list as the astronaut moves across chunk boundaries. (Need to update to unload unneeded chunks and load in more, to keep the group of loaded chunks centered on each astronaut.)

    Right now, I suspect the game only initializes one chunk at a time, per astronaut.
     

    Lukwan

    Human
    Joined
    Oct 30, 2015
    Messages
    691
    Reaction score
    254
    I'd alter the game keep a bubble of 27 chunks (3^3) initialized around all astronauts in the shipyard area to keep them from seeing this problem.
    The problems I have had with non initialized space occurred while using symmetry mode on a server with expanded X,Y,Z, groups set to 100 (each). When you are adding to a long row of mirrored blocks the ones near you will be fine since the space around you is initialized but the symmetry blocks that are added glitch out. The blocks are too far away from the astronaut so they either fail to place or get placed as derped blocks that behave strangely. This can be prevented by making a scaffolding around your work area first. I would like to see a system that negates the need for scaffolding. (Ironic to have to make scaffolding within the bounding box of a shipyard no?)
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    The problems I have had with non initialized space occurred while using symmetry mode on a server with expanded X,Y,Z, groups set to 100 (each). When you are adding to a long row of mirrored blocks the ones near you will be fine since the space around you is initialized but the symmetry blocks that are added glitch out. The blocks are too far away from the astronaut so they either fail to place or get placed as derped blocks that behave strangely. This can be prevented by making a scaffolding around your work area first. I would like to see a system that negates the need for scaffolding. (Ironic to have to make scaffolding within the bounding box of a shipyard no?)
    Yes.
    Symmetry brings up a good point that I had not thoroughly considered.
    The symmetry plane is not necessarily centered on the astronaut's current chunk. So the game would need to double, quadruple, or even octuple the number of loaded chunks, depending on the number of symmetry planes currently active.
    In the case of a server with a maximum length of 100 on all three axes, plus one active symmetry plane, the game will need 9^3 (729 total) chunks loaded around the astronaut, plus up to 729 more chunks loaded on the other side of the symmetry plane!
    Edit: This is a good spot where comparing chunk groups will come in handy. Chances are, some chunks will overlap over the symmetry plane, so the number of chunks loaded won't always be double, depending on how close the astronaut is to the symmetry plane.