PTR Changelog 2020-06-05: Decorations


  • Dev Team

    This post describes changes on the Public Test Realm. Planned release date is June 18.

    We are happy to introduce a new big feature that is coming soon: Decorations. It is not fully ready yet, but complete enough to be tested on the PTR.

    This update is going to add a whole new dimension in your in-game activities. You will be able to generate and collect resources that will allow you to decorate your rooms, creeps, structures and other assets, giving them unique look and individuality.

    Pixels

    Pixels is a new type of resource that will be used to craft decorations. It's an ephemeral resource stored directly in your account, like former Subscription Tokens. You can obtain pixels in three ways:

    • Generate 1 pixel using Game.cpu.generatePixel() method. It will consume 5000 CPU from your bucket.
    • Purchase at our official store (under development) or Steam Community Market.
    • Buy and sell on the in-game market.

    In order to test this new feature, every player on the PTR received 20,000 pixels in their inventory.

    Decorations

    When you collect at least 500 pixels, you can pixelizate (craft) a decoration. Just go to the new Inventory section and click Pixelizate. You will receive one decoration for every 500 pixels spent. Which decorations you get is fully random based on their rarity and type. This algorithm and its fine tuning is still work in progress; as well as images database. But we intend to have thousands of different decorations upon the release. Decoration are split into 5 types, all of them are functional on the PTR:

    • Graffiti - you can place this image as a graffiti on walls in your rooms.
    • Wall texture - you can place this image as a room-wide wall texture in your rooms.
    • Floor texture - you can place this image as a room-wide floor texture in your rooms.
    • Creep - you can use this image to decorate your creeps (either all of them or using a regular expression for name).
    • Badge - a custom player badge that you can set for your account.

    Each decoration is an item that is stored in your account for good. You can't lose it or destroy it. But you can convert any decoration to pixels, obtaining 400 out of 500 pixels back.

    Graffiti is the most common decoration type, so you probably will need to pixelizate/convert several times before you discover something interesting besides regular graffitis. But even graffiti can be more rare than other graffiti, for example some of them will have lighting animation, or even ability to choose custom color. Such rarity features are described in the decoration description. Here is the full table of rarity features:

    Graffiti

    • Rarity 1: None.
    • Rarity 2: Lighting animation
    • Rarity 3: Visible on the world map.
    • Rarity 4: Visible on the world map. Lighting animation.
    • Rarity 5: Choose your own color. Visible on the world map. Lighting animation.

    Wall/floor texture

    • Rarity 3: None.
    • Rarity 4: Controllable brightness.
    • Rarity 5: Choose your own color. Controllable brightness.

    Creep

    • Rarity 4: None / Lighting animation.
    • Rarity 5: Choose your own color. Lighting animation.

    Badge

    • Always rarity 5.

    In order to use the decoration, you have to activate it in any of your rooms or in your account. You can deactivate a decoration at any moment, and activate again without any limits. All these actions can only be done via UI. Game API doesn't have any information or methods regarding decorations.

    Walls, floor and graffiti decorations will be visible on the world map. However, this feature is temporarily disabled in this PTR release and will be added in a week or so.

    There will be a transfer mechanism between your Screeps Inventory and Steam Inventory, so that you can transfer decorations back and forth in order to trade them on the Steam Community Market.

    Decoration themes

    Besides types, all decorations are split into 7 color themes: Fire, Desert, Nature, Sea, Winter, Alien, Mono. They have no special meaning except specific color. Basically, they are just the names for the colors that are used in the decoration graphic. You can restrict pixelization by a specific theme if you wish to craft only decorations of the specific color to match your existing design. This option increases the pixelization cost from 500 to 5,000 pixels.

    Other resources

    This update also contains other ephemeral account resources revamp: CPU Unlocks and Access Keys. They are regular tradeable resources, so that now we have 3 account resource types on the market.

    CPU Unlocks is a new form of Subscription Tokens. Each CPU Unlock will provide 1 day of unlocked CPU to your account. All existing Subscription Tokens will be converted to 60 CPU Unlocks each automatically upon release.

    Access Keys are needed to get access to the upcoming Season World. You will need 5 Access Keys to unlock the first Season. We will announce its launch date later. We will sell Access Keys with 50% discount until that.

    You will be able to freely transfer these resources between Screeps Inventory and Steam inventory as well.



  • How about we can also convert a pixel back to 2500 bucket? (Probably with a cooldown of 100 ticks?)



  • All right, so you get a random decoration constrained by type and theme (color). Then, you can be activate and deactivate it at will, either way it stays in your account.

    You can't trade these on the in-game market. And that's good, in that it would completely pollute the RESOURCE_CONSTANT name space.

    But they can be transferred to the steam market, which allows trafficking in rare decorations or gambling on creating decorations that would have value to collectors.

    And... for people like me, that really don't have much interest in decorating their room, but take pride in not senselessly using up their 'bucket' "Just because it's there." There is a bucket to pixel conversion as a way to engage in that market as well.

    All in all, Nice! I think you've nailed all the bases here.



  • I have a few questions:

    Creep - you can use this image to decorate your creeps (either all of them or using a regular expression for name).

    My creeps' names are random numbers. Will there be another way to select a creep decoration via code?

    You can restrict pixelization by a specific theme if you wish to craft only decorations of the specific color to match your existing design. This option increases the pixelization cost from 500 to 5,000 pixels.

    If you restrict the decoration theme to X you get 1 item with theme X. If you instead buy 10 decorations (which costs the same amount of pixels) you get ~1.4 items with theme X on average and additionally other random things. So using the restriction feature isn't worth the cost. Is this intended? Will the numbers be changed?

    1. Will there be / are there ducks? 😁

  • Dev Team

    @duckymirror said in PTR Changelog 2020-06-05: Decorations:

    My creeps' names are random numbers. Will there be another way to select a creep decoration via code?

    No, decorations are not visible in the game API, this information just doesn't exist in user code space.

    If you restrict the decoration theme to X you get 1 item with theme X. If you instead buy 10 decorations (which costs the same amount of pixels) you get ~1.4 items with theme X on average and additionally other random things. So using the restriction feature isn't worth the cost. Is this intended? Will the numbers be changed?

    You may get items with theme X, or you may get no items with this theme. This is the cost of guarantees.

    Will the be / are there ducks?

    Absolutely!


  • Dev Team

    @cookies said in PTR Changelog 2020-06-05: Decorations:

    How about we can also convert a pixel back to 2500 bucket? (Probably with a cooldown of 100 ticks?)

    CPU to pixels conversion is supposed to be one way only.



  • @artch said in PTR Changelog 2020-06-05: Decorations:

    @cookies said in PTR Changelog 2020-06-05: Decorations:

    How about we can also convert a pixel back to 2500 bucket? (Probably with a cooldown of 100 ticks?)

    CPU to pixels conversion is supposed to be one way only.

    I think this is the right approach. As much as it would be a neat feature, that would definitely open up pay to win. Just think of the advantage of buying some sub tokens to get pixel cpu on shard3, or buying more than your cpu cap.

    ☝


  • I did a bit of grinding to get a creep decoration to play with on PTR. I found the process overly grindy. I could make it little less grindy by pixelizating a large batch, then converting back. But for the more rare decoration types it's grueling.

    I'd much prefer a way pay a premium to pick the decoration type like we can with the theme.


    Expanding from the current formula. The price appears to be 500/exclusivity * 1.43.

    So randomly pixelizating a single theme costs 500/(1/7) * 1.43 = 5000.

    Or pixelizating any theme except one: 500/(6/7) * 1.43 = 834.

    Assuming creep decorations are 1 in a 100, pixelizating a creep decoration: 500/(1/100) * 1.43 = 71500.

    Or a fire themed creep decoration: 500/(1/7 * 1/100) * 1.43 = 500500.



  • I think the cost of targeted pixelization is too high.

    A targeted pixelization is 5000 pixels for a 100% chance of getting a particular theme.

    Grinding 5000 pixels gives you 46 regular pixelizations. Grinding for a particular theme and you have (6/7)^46 chance of getting the theme you want. That's 99.927% of the time!

    Pixels: % chance
    500099.93
    400099.61
    350099.16
    300098.18
    200091.51
    100060.34
    90053.73


  • What happens if you get a duplicate decoration? Can you 'auto-dust' all duplicate decorations back to pixels?

    Also, the targetted decoration seems too expensive. It shouldn't be more then 1000.

    I I buy 1x targeted decoration, I only get 1 decoration for 1 targeted theme.

    If I buy 10x a normal decoration, these will, over long time, be evenly distributed over all the themes. That means 5000 pixels gives me 10/7 = 1,43 decorations on each theme (on average).

    It also gives me 8,57 other decorations which I can refund for 80% of cost, returning me 3428 pixels.

    Since I got 1,43 targeted decorations for 1572, I'm only paying 1099 pixels for one targeted decoration.



  • Deft:

    There IS a way to get the exact decoration you want. You wait for it to be available on the steam market and buy it. Obviously, you can't do that on the PTR.

    If this was a thing you actually needed to play the game, I would be aghast at this. But for a potentially rare vanity plate? This is fine and workable.

    This mechanic pipes cash flow into Screeps by creating a in-game pipe of (for example.) "farm pixels with CPU" => "Sell rares on Steam" => "Buy CPU tokens on Steam" => "Sell token for credits in game."

    What it doesn't address is the hyperinflation the injection of credits through other sources with no sink is causing. At some point, they will need to sell the same resources directly for credits in game, destroying the credits in the process.

    That would work like this: "Have lots of extra Credits" => "Buy CPU tokens with credits at current rate." OR "Pixelate decorations with Credits at a calculated rate based on the current CPU token price." Obviously, you would never be able to buy a specific decoration that way, that's reserved for the steam market.

    This, of course, dilutes the CPU token sales on the official store, which is why it is important to have a really good handle on the exact flow of CPU tokens. "Extra" tokens injected into the Steam market dilutes the price everywhere. It's like a leak in a supply chain.



  • @Smokeman good point about the steam marketplace. I rarely use it and completely forgot about it.

    I'm less sure about steam economics. I'd rather pay the devs $10 for some decoration than pay another player $10 on market place and hope some of that makes it back to the devs. But it's really up to the devs to make sure the steam marketplace transactions pay off.


  • Dev Team

    Thank you all for excellent feedback with math and everything!

    UPDATE

    We have tweaked some algorithms, formulas, distribution chances, and reset the PTR. All previous decorations have been deleted. Everyone received 20,000 pixels again.

    Restricted by theme pixelization now costs 2,000 pixels.

    Creep decorations are now fully functional and can be activated.

    Rarity is now related to higher configurability of the decoration. For example, more rare landscapes will have an ability to control brightness of various elements, and even set custom colors in the most rare ones. These "rarity features" are now described in the decoration description. Here is the full list:

    Graffiti

    • Rarity 1: None.
    • Rarity 2: Lighting animation
    • Rarity 3: Visible on the world map.
    • Rarity 4: Visible on the world map. Lighting animation.
    • Rarity 5: Choose your own color. Visible on the world map. Lighting animation.

    Wall/floor texture

    • Rarity 3: None.
    • Rarity 4: Controllable brightness.
    • Rarity 5: Choose your own color. Controllable brightness.

    Creep

    • Rarity 4: None / Lighting animation.
    • Rarity 5: Choose your own color. Lighting animation.

    Badge

    • Always rarity 5.

  • Dev Team

    @jerdaz said in PTR Changelog 2020-06-05: Decorations:

    What happens if you get a duplicate decoration? Can you 'auto-dust' all duplicate decorations back to pixels?

    Why would you need that? Several instances of the same decoration is a valid use case too.


  • Dev Team

    @deft-code

    I'm less sure about steam economics. I'd rather pay the devs $10 for some decoration than pay another player $10 on market place and hope some of that makes it back to the devs. But it's really up to the devs to make sure the steam marketplace transactions pay off.

    If you buy a decoration from another player, you can be sure that the devs already received their profit since this decoration is generated either by CPU or via purchasing pixels.

    We are strongly against selling decorations from the official store directly.


  • Dev Team

    Updated rarity features in the top post.



  • How do I get onto the PTR to try it? It says "New accounts are blocked" but that couldn't be literal. I clicked the activate button it said to click, and entered credentials through steam... but was told my account is not synced with PTR.


  • Dev Team

    @smokeman Please don't use Steam auth on the PTR. Only login/password auth is allowed.


  • Dev Team

    All active decorations have been deactivated, since we added more brightness controls to some of them. You can reactivate them again.



  • @artch

    "New account registration is disabled on the Public Test Realm server."

    It's going to be difficult to do that. And even then, I would technically have 2 accounts.



  • I was testing the creep decorations yesterday and I find I a bit too static how it is if I got it right. Here is my idea how to make the creep decorations more dynamic and improve the usage of different decorations:

    A decoration should have a name instead of the name regex as it is now. Then it should be possible to add a decoration to a creep by code e.g. creep.setVisual([decorationName]) or something similar. Or maybe just set a value in the creeps memory.

    This would enable us to change the creeps appearance on the fly. For example from the winter theme to the same visual but the fire theme if it is in attack mode or change the visual corresponding to the task the creep is doing.

    This way it would improve the usability of multiple creep visuals and make it more interesting to use them in the first place at the same time.