You just got to love the chunk system used on vehicles.

    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    >If you look at the images you can read the group block count.
    You can read it yourself in the image block count starts at 76,800 then drops to 73673 then 28380 and finally 21555.
    That 76800 as I said was stable for over 30 seconds. 76,800 is also the right block count.
    There is no one else on the server and the only events what-so-ever that happens around that ship is me moving. No re-clicking of Control V or anything of the sort.

    This is still not how the game works. You can try it in singleplayer which eliminates network lag and it will always almost instantly display the right amount. I know my code, and I know that there is not even a connection between the camera or player position with that system. It's code wise not even close to each other. What you have seen is either client bug (which i couldn't reproduce with 125000 missile tubes), or it is still catching up from that huge amount of data. Keep in mind that you are sending requests AND getting back answers from the server client finishing doesn't mean the server finished.

    Do you actually think I would lie about my own code? I can give you a version where you can watch the server reporting it's collection processing if you don't believe me. I have no reason to lie about this, because what you are saying is happening would actually take more work to implement, because as said, there is no such system in place to even remotely touch that number from the view system, as it should be.


    >Well if it was me I would be transferring only the representation of the ship to clients. The server should be doing the hit calculations and damage. The ships 3d model representation with this is vastly smaller. Transferring and updating sections of it would be much smaller to send over a network.

    Because you can actually compress chunks very well. And the worst case is is reached a lot faster than you think in a battle. Since damaged block pretty much counts as a different block that cannot belong to the same group.


    >Are you having clients also runs stuff like power calculations and so on or missile damage?

    Any damage is actually done server side ONLY and then sent to relevant clients. The raytracing is done on the client too, so beams etc will actually stop when you hit something and display damage, do appropriate effects, etc obviously, as it#s done with pretty much any multiplayer game.
    Physics is also done on client and server. Doing that server side only would be horrible. Any movement would be completely lag/RTT dependent.

    Power calculations are cheap because the groups calculation gives me single values for ships. No block is being looked at when doing the per update power calculation. With network sending a bunch of floating point values per update would be incredibly bad. The worst bottleneck for bandwidth are positional data, which is just 9 floats sent when a ship moves. It is a big advantage to have the same group representation on clients because of not only debugging but also future features like system scanning.


    >If not why do they need to know every single block of the ship?

    For physics, for rendering, for other calculations. Not only that, but the client actually needs to check blocks for their state a lot of times before sending out requests. And the connection info has to be there anyways. Sending Chunks is not equal to sending every single block individually. That's because they are compressed, and they compress very well, and in a sense it's no different than putting the blocks into a data structure that groups them. The size on average isn't much different as I actually did some tests on it in the past.


    So if the data sent to the client is as big, the only difference again is its representation in memory vs performance loss through doing grouping when referencing blocks. Block writing is completely on the server already.

    I still don't see a gain in your system, except being smaller in memory in best case.

    • No real physics gain since the outer surface of ships is rarely a rectangle made of the same cubes. It would lose an optimization by not being able to do a faster low level calculation on cube v cube.
    • No render gain since light information would be lost.
    • Referencing performance if any block is referenced.
    • Need to do a full group change operation on every single block change, be it damage, activation state, or adding/removing.
    [doublepost=1474564270,1474563825][/doublepost]I'm uploading a version to dev (0.199.226) in which you can enable the server.cfg option DISPLAY_GROUPING_DEBUG_INFORMATION.
    This will display the server group calculation when they are scheduled and when they finished executing. In singleplayer it will also do the same for the client
    [doublepost=1474564409][/doublepost]

    As i assumed it appears to be a client display bug
    It happened first in single player then test on server as well. That particular server sits about 6 feet from my work station.

    As for the graphics engine model you have your own ideas / misconceptions but you are right there are trade offs.
    You are obviously quite smart having got this far in your development. You'll choose either to research it on your own or you won't. I spent more time than I should have at this point discussing it.
    I took time out of my work to post there is an issue and there are options. It doesn't benefit me in the least other than if the game is improved. Then maybe I get a better experience in playing.

    If you are wondering what I mean by misconceptions just look at your reply about surface area. You assume everything needs to be in a nice neat box to make use of it. My guess you probably are also thinking something on the line of a single type of block in that group as well. Those were examples I gave to make it easier to explain the basic concept not the complete system.

    It is simply the perspective you are looking at the data from.

    Consider this a ship is 3 dimensions. Blocks have different types. If you looked at that by itself. It would look very similar to a 3D bitmap image.
    We compress those. Now your ship has other data that goes with those blocks right. Such as damage level, which way it is facing.
    Just think of that as another channel like RGBA when it comes to image compression.

    When it comes to loading data it is almost always faster to run compression on the data in memory than transfer it back and forth to a hard drive such as when paging occurs. Which is why virtual memory compression is used and now built into Windows 10. The point is that reducing your data will save you on time a single drive access will cost you far far more than any CPU computation.

    Some image formats don't just work on channels but break the image into other components as representations of parts of the image. Yes, there are parts of the image that have higher frequencies of change such as transitions from one object or color to another. They don't make a image uncompressable.

    In short there are a lot of ways to reduce 3D data. Block system which is similar to chunks, You could reduce by layer, and channel, you can use component/groups, I even seen a sphere tree used the position on the tree determined which color was dominant. If you want to simply see a lot of ways of reducing mixed data look at all the different image formats available. Great book to have encyclopedia of graphic file formats.

    In short there are a lot of ways the skin of a ship with the different blocks can be reduced in data size using a group system.
    You could effectively store the ship as an mpeg file. Not saying that would be good for the game but it actually is possible.
    Just think of layers as images over time. You could use a lossless format like motion png or others.

    No need to respond as of the last message I deleted the game and all content. I'm not coming back.


    Just checked something:

    View attachment 32360
    (All Reports our bug tracker knows that you authored)

    One has been worked on and fixed.
    One is waiting on being fixed.
    One was rejected as it was a valid report, but a cross influence of two other bugs that got fixed while investigating the details.

    The one T1822 is there and still "hidden from public" as we had no time yet to review it.
    The report contains a lot of infomation that needs to be sorted first to find out what may have cause it. (Its basically the lost weapons issue described here)

    Is there any report missing you sent?
    Its in theory impossible, but IF someone messed up view permissions on processing it, it would be possible to make a report visible to only the author, or one person. If you remember a title/topic in it, and a rough estimate when you reported it, I can check the database directly if this was the case. (But its unlikely as I do this from time to time to see if all is in shape.)

    - Andy

    [EDIT]

    While reading the description that the number was correct and then decreases looks like a sync issue.
    Like your client cache is seeing and calculating the blocks, but the server then reverts them.
    However this should not happen more than once.
    I'll make sure someone checks the report.
    (I'll do that myself tomorrow after work.)
    Validated and Picked up T1822 now.

    [/EDIT]
    Thanks you for the info.
    T1822 isn't showing up for me. Other than taking your direct link.
    That is why I figured it was deleted.
    It is happening in both local and server. Happened local first which is how I noticed it.
     

    Tunk

    Who's idea was this?
    Joined
    Sep 8, 2013
    Messages
    363
    Reaction score
    153
    • Purchased!
    • Community Content - Bronze 1
    • Legacy Citizen 4
    mein gott mate, at this point I am convinced you are just a troll now.
     

    Gasboy

    BLRP
    Joined
    Aug 11, 2013
    Messages
    1,311
    Reaction score
    360
    • Community Content - Bronze 2
    • Legacy Citizen 6
    • Purchased!
    I'll buy an extra copy of StarMade and give it away to a friend to make up for the lost player.
     

    takethispie

    Titan-class builder
    Joined
    Oct 3, 2012
    Messages
    239
    Reaction score
    103
    • Purchased!
    • Wired for Logic
    • Legacy Citizen 9
    I bought the game 3 times , we can resist 2 more trolls / backseat devs xD
     
    • Like
    Reactions: Gasboy