PTR Changelog 2017-05-04


  • Dev Team

    This post describes changes on the Public Test Realm. The estimated launch date is May 11.

    • Changed terminal transfer energy cost formula:

      energy_cost = resources_amount * (1 - Math.exp(-range / 30))

      It creates the following graph (dashed line - old, solid line - new):



    • Introduced new StructureTerminal.cooldown feature. It is triggered on both StructureTerminal.send and Game.market.deal methods and is equal to 10 ticks regardless of the transaction size and range. Methods will return ERR_TIRED code if the cooldown is active.





  • Awesome news about the transaction cost change.

    What is the primary reason for introducing a terminal cooldown?


  • Dev Team

    Reducing server load on huge amounts of small transactions.



  • Interesting, this would suggest that you've isolated terminal transaction behavior as a performance issue. Good.

    However, 50 ticks feels quite restrictive. Would it not be possible to start with something more reasonable, ie 5 or 10, and increase it if that is insufficient.

    My code (and I assume the code of others) was based on small frequent transactions across the network to equalize resources. With a cooldown of 10, I can simply increase the current packet size and it should be fine. With a cooldown of 50, I need to rethink the whole logic from the ground up.

    A week is already a short timeframe to reconstruct a core protocol. However, I and a few others are locked in a large scale conflict and all of my free energies are dedicated to military code right now.

    Pretty please?



  • I'm assuming there will be a global constant for the cooldown period length?


  • Dev Team

    10 ticks is also an option we're considering.

    Yes, there is TERMINAL_COOLDOWN constant.

     


  • Culture

    Please reduce the cooldown to 10 ticks, especially if you're already considering doing so. 50 seems really extreme, but I can totally manage 10.

    Presumably if a "deal" is made the cooldown will affect the person making the deal, and the person who put the order up will be unaffected?



  • I would like to voice my vote for 10 ticks instead of 50 as well.

    Will we still be able to run multiple deals on the same tick? 

    What about adjusting the fee based on amount? Penalize smaller shipments and reward larger (up to a point). And in big bold print in the docs. Bulk shipping deals. Or maybe just a sliding scale, for example: Reduce the cost 1% for every 1000, up to 10-25% limit.

    Do you have any numbers on what an "ideal" packet size would be? I try to move in 1000-5000 at a time. Much larger and energy calculations and reserves complicate things.


  • Dev Team

    Presumably if a “deal” is made the cooldown will affect the person making the deal, and the person who put the order up will be unaffected?

    Correct.

    Will we still be able to run multiple deals on the same tick?

    Using one terminal - no.

    What about adjusting the fee based on amount? Penalize smaller shipments and reward larger (up to a point). And in big bold print in the docs. Bulk shipping deals. Or maybe just a sliding scale, for example: Reduce the cost 1% for every 1000, up to 10-25% limit.

    There is no fee for the dealer.



  • @artem You're right, fee was the wrong word. I meant transfer cost.


  • Culture

    Since the goal of this is to reduce small transactions an idea came up in slack that you might consider. Instead of penalties against everyone how about a cooldown after "microtransactions" occur, which can be defines as transferring less than 1k units.


  • Dev Team

    Cooldown changed to 10 on the PTR.



  • is this an account wide limit of one deal/send every 10 ticks, or a terminal limit ?

    Meaning if I own 20 rooms with a terminal each, can I still do 2 deals per tick on average (by using all available terminals, taking cooldown into account) ?


  • Culture

    It's a per terminal limit.



  • ok, thanks for clarifying, that sounds reasonable.


  • Dev Team

    The launch date is moved to May 11.