[SALVAGE TEST] What's wrong with the numbers I've got?

    Joined
    Aug 4, 2015
    Messages
    8
    Reaction score
    1
    I've decided to test resource harvesting myself and got numbers, which are different from what Wiki says, and from what all the others say.

    Playing on 3100 mhz ram, i7 6700k overclocked to ~4.6. No server.cfg options were changed.

    How I did the test: Built a straight line of blocks in space, which actually belong to the planet nearby. Placed rail dock near that line. Docked the ship with one salvage array in a single line, so that it's exactly in front of that line. Removed raildocker, so I can actually mine not-docked planet structure. Alinment remained.


    (Steam FPS counter is bugged after alt-tabbing, don't look at it, I had no lags)
    Then I was testing different amounts of salvage modules, every time rising my mouse up from mousepad to keep perfect alinement of the ship, when I enter flight mode.

    I've straight off placed an array of 300 salvage modules (overkill), to find out upper boundary and was confused to see that this thing harvested exactly 70 blocks per 1 computer click (2.5 seconds of actual salvage beam time). 70??? This does not match with any math I found on wiki. If the tickrate is 40 as it says, I should have got block/tick, 40*2.5 = 100 I guess?

    I've decreaced amount of salvagers, 100 this time. 70 blocks again. 90 - 69. Below 90 it became decreacing, so I found out that ~90 salavage modules reach maximum efficency, which is again differs from the Wiki, which says I should experience this at 100 modules.

    Then I've decided to slave down cannons and surprises continued. 100 salvage + 100 slaved cannons salvaged down 70 blocks per 1 computer click (2.5s), while I was expecting 35 blocks, because Wiki says, that salvage damage is decreased by half, if you slave cannons. But in reality efficiency stayed the same?

    Can anyone tell me what am I doing wrong, and why I'm getting this 70 blocks per 2.5 seconds maximum.

    I've also got a question about multiple ray salvageing. Last time I was playing the game about a year ago (I had slower PC back then though, DDR3 ram), I've built pretty big "waffle" salvage ship with over 100k SM + 100k CM slaved. I then tried to salvage with that and got speeds much slower, than expected by pure math. My FPS was staying around 60, but each individual ray was tunneling through blocks wery slowly, sometimes it even looked like they were not harvesting at all, and after some seconds huge chunks of landmass were updated as removed. Ship's storage was getting around 10k blocks per second, but mathematically that ship should had salvaged at faster rates.
    So my question is, what holds back? RAM speed? The fact that I had no SSD back then? How to increace performance and PRACTICALLY mine planets and asteroids as fast as possible?
     
    Last edited:

    Az14el

    Definitely not a skywanderers dev
    Joined
    Apr 25, 2015
    Messages
    848
    Reaction score
    325
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    <InitialTicks>10</InitialTicks> <!-- Ticks to do at the initial contact of beam with a block -->
    Think this one is the reason why 100 per group (200 salv power) isn't actually the ideal and its more like 91 per group (not arguing your 90 result, probably right, i've never bothered to do this test myself and still just use 200 salv power per tick beams)

    182 SP x 11 (10 initial + regular 1 tick) = 2002 = 10 blocks with 2 wasteage power, which should occur every time it hits a new block so one straight fired click i would imagine doing only 50 with this, so guess it doesn't quite explain the 70 block removal still *shrugs*

    To go beyond this just requires extra beams, it won't transfer over the leftover salvage power to the next block at the moment, just throws it out.

    *edit because herp de derp salvage doesn't have the refire rate i thought it did, ignore the "should only do 50" part, definitely wrong
     
    Joined
    Aug 4, 2015
    Messages
    8
    Reaction score
    1
    182 SP x 11 (10 initial + regular 1 tick) = 2002 = 10 blocks with 2 wasteage power, which should occur every time it hits a new block
    I didn't quite... understood the math in this sentence fully... "182 SP" means power of 91 salvage modules on tick I guess. Then multiplied by 11, but why? What is 10 initial ticks? Every time a block is removed, 10 ticks are wasted? Then you wrote "10 blocks". So I don't understand, 10 or 1? Explain this more...
     

    Az14el

    Definitely not a skywanderers dev
    Joined
    Apr 25, 2015
    Messages
    848
    Reaction score
    325
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    Sorry just a small bit from the salvage beam config, guess it's lacking context there
    Here's the full thing (without support entries, its pretty long)
    From starmade/data/config/blockbehaviourconfig.xml

    "<SalvageBeam>
    <BasicValues>
    <TickRate>0.025</TickRate> <!-- tick time in seconds, beam must remain on target entity or this timer resets -->
    <SalvageDamageNeededPerBlock>200</SalvageDamageNeededPerBlock> <!-- 0 will salvage on tick, otherwise the damage has to be met on the object to salvage one block -->
    <SalvageDamagePerHit>2</SalvageDamagePerHit> <!-- salvage damage done per tick to fill up SalvageDamageNeededPerBlock -->
    <PowerConsumptionPerTick>0.4</PowerConsumptionPerTick>
    <Distance>0.48</Distance> <!-- 1 is equal to 100% sector radius --> <!-- timeBetweenHits = 1 / (unitSize^pow)*mult -->
    <CoolDown>5</CoolDown> <!-- Time it takes to fire beam again from the start-time it first activated -->
    <BurstTime>2.5</BurstTime> <!-- Time the beam will fire -->
    <InitialTicks>10</InitialTicks> <!-- Ticks to do at the initial contact of beam with a block -->
    <RailHitMultiplierParent>0</RailHitMultiplierParent> <!-- Salvage Damage percent done to target in own Rail Chain when target is equal or closer to root than this entity -->
    <RailHitMultiplierChild>0</RailHitMultiplierChild> <!-- Salvage Damage percent done to target in own Rail Chain when target is further from root than this entity -->"

    So 200 is the "salvage HP" of a block, each beam tick on a new block can be considered at 11x power for the purposes of "penetration". Salvage beams themselves don't have an actual penetration mechanic as far as i know (just those extra "hidden" ticks), so going over 200 SP should be wasted blocks, at least how i comprehend this anyway.
     
    Last edited:
    Joined
    Jan 28, 2015
    Messages
    492
    Reaction score
    149
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 3
    I then tried to salvage with that and got speeds much slower, than expected by pure math. My FPS was staying around 60, but each individual ray was tunneling through blocks wery slowly, sometimes it even looked like they were not harvesting at all, and after some seconds huge chunks of landmass were updated as removed. Ship's storage was getting around 10k blocks per second, but mathematically that ship should had salvaged at faster rates.

    The Math is just one part of it. It is very complex Math to and it has to do this in almost real time.

    If the server CPU is weak. Or preoccupied with other things. From lets say lots of people on. The NPC going in a fleet wave storm. Or just because the server has not restarted in a while.

    Then Salvaging may lag behind. Salvaging is a "in the now real" process and that makes it very calculation heavy. If Salvaging was virtual. With the graphics just giving you an impression of blocks being mined. And the server deleting any left over structure after the virtual calculation has completed. Then it would be much more calculation friendly. Because it then does not have to do this Math in real time. Freeing up calculation power for other important stuff going on in the "now".

    It is debatable if seeing the whole mining process blocks for block. Or chunk update per chunk update is such a big addition to the game play of StarMade. Given that it is so calculation heavy.

    In the past Salvaging block updates were even broadcasted to everyone on the server. Creating a fantastically large amount of network traffic.
     
    Joined
    Aug 4, 2015
    Messages
    8
    Reaction score
    1
    I did not mention it, but I play locally (singleplayer). In this case:
    what holds back? RAM speed? The fact that I had no SSD back then? How to increace performance and PRACTICALLY mine planets and asteroids as fast as possible?
    What affects the speed, at which calculations are performed to remove blocks and get ready for the next layer of blocks to get removed? Only CPU core frequency? On my old PC I was reaching 10k blocks per second added to ship's storage. I hope, that on my current, new PC, the number will be higher, but as I understand, I still won't be able to swipe down planets fast?

    And by the way, I still have question up about why a group of 91 SMs + 91 CM slaved mines 70 blocks per one 2.5 second use too.
    Because I read on the Wiki, that when you slave a cannon computer, damage of salvage module is decreased from 2 to 1... If I understand it right, i should reach the efficiency cap only at 182 salavge modules in array then? But that does not happen.
     
    Joined
    Jan 28, 2015
    Messages
    492
    Reaction score
    149
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 3
    I still won't be able to swipe down planets fast?

    I could be wrong but as i see it it is not a linear process. As you try to mine more blocks. The hill you climb will get steeper. The server can not calculate your block removal request in the time you want them removed even with a powerful CPU. Because there is a time frame in which the calculation needs to be completed. "real time"

    Online or offline should not matter. It is also hard to guess what else StarMade is doing that you can not see. For a pure salvage CPU test you could disable all AI and NPC options. Create a completely stale universe and see how fast you can mine. But those conditions are offcourse not how one would play the game.

    Different earlier versions of the game also had a different "feel" on how things worked. In the current versions of StarMade to me it all feels a bit sticky/heavy. But that could be a biased personal observation.

    Because I read on the Wiki

    In general the StarMade Wiki is not always up to date or correct. I believe CM gives you a faster beam recharge time at the cost of block removal power. 100 Salvage Modules with 70 Cannon Modules linked to it 70%. Should give you a beam that runs almost continuous. But the block removal calculation still happens in stages. It is not a streaming process. I think :whistle:.
     

    Edymnion

    Carebear Extraordinaire!
    Joined
    Mar 18, 2015
    Messages
    2,709
    Reaction score
    1,512
    • Purchased!
    • Thinking Positive Gold
    • Legacy Citizen 5
    Yeah, the short of the answer is that there is no carry over of SP (salvage power) between blocks. It takes 200 sp to mine a block. If you pump a thousand SP at it, you've done nothing but waste 800 SP because it all hits the same first block and any extra is wasted.

    Due to the x10 on the initial tick (which helps small starter arrays not take forever to salvage), it actually only takes 90-91 blocks per line to hit maximum damage to a single block for salvaging without going over.
     

    Gasboy

    BLRP
    Joined
    Aug 11, 2013
    Messages
    1,311
    Reaction score
    360
    • Community Content - Bronze 2
    • Legacy Citizen 6
    • Purchased!
    As an aside, WryRai said in a recent Drakkart video that the minimum salvager/cannon array for constant salvaging was about 25:17(or 18) salvager modules to cannon modules.

    Sometimes the best thing is to hook it up to a clock and just wiggle the ship every so often. :P