Make Pixels Great Again
-
Creep.plantPixel()
/Creep.hatchPixel()
could construct a temporary structure ("egg") that would disappear if it was not sat on by said creep for EGG_TICKS_TO_MATURITY ticks. It would cost EGG_CPU_COST CPU and after the EGG_TICKS_TO_MATURITY ticks, the junior pixel would grow to maturity and would be added to your account. Then you would actually farm pixels! This method of pixel generation should be more effectiveGame.cpu.generatePixel()
.Implementation of this mechanic is not trivial, but it seems to be fairly limited:
- Add
Creep.hatchPixel()
which costs EGG_CPU_COST CPU, spawns a little pixel "egg" and flags the creep with athis.hatching = eggId;
- If the creep moves or dies, delete the egg referenced by
creep.eggId
. - Make an egg expire like tombstone - just stays there until it expires.
- For ease of implementation and CPU speed lets forget about the creep needing to spend 1 energy per tick to warm it up. The creep will keep it warm with its ~butt~ electromegnetic radiation. Or make hatchEgg() consume 50 energy upfront, whatever.
- When egg expires through timer, add a pixel to the account of the player
if anyone is worried about pixels the pixel market, the deco price change with adding
* 3
to constants is a solution. This change is not about the economy aspect (which can be regulated through effective means like that). The goals this request meets:- no major coding effort
- somehow related to pixel generation
- no major changes to balance such as changing the CPU limits etc
Additional considerations:
- should be actually fun
- should be really easy to manage for the players who are just starting their adventure with Screeps (
Game.cpu.generatePixel()
should return to 5000 energy cost) - should NOT be really easy to manage for the players who are playing for a while now (the effectiveness of
Game.cpu.generatePixel()
will be a fraction of what you can do with planting the pixels, even if you'd just make your miners farm it, but then you can't afford to do it with all miners or you'll ruin your bucket - you need a mechanism in place to properly assign pixel farming to miners, taking into account the amount of CPU you want to burn on this, the fact that some miners will die from old age and would waste the egg and so on) - should not be really stupid for balance causing smurf accounts etc (like pixel generation cost getting higher with higher GCL)
- should not cause a massive community outrage, such as a) cancelling all intents in the pixel generation tick b) causing massive trouble to sophisticated code which currently relies on the bucket being non-empty right after a global reset which may happen just after your bucket is reset to zero by the pixel generator
OPTIONAL: allow the creep to move/die while it is on the egg, but that would add the egg to a list that would be checked by the server at the end of the tick. If by the end of the tick there is no new creep on the egg, THEN the egg dies. This lets us change EGG_TICKS_TO_MATURITY to something > CREEP_LIFE_TIME which makes it an even more interesting mechanic as creeps need to either get renewed (which as we know is not so CPU-friendly) or take turns hatching the egg.
Names are far from final, it can be planting sprouts instead of hatching eggs, that doesn't matter much.
- Add
-
As was said by the devs in the other thread, they do not want pixels to be generated via an in-game thing.
-
Maybe they might change their mind about it? Or is it final? If it is, then why?