@artch said in Game.cpu.generatePixel change:
I don't agree this isn't a real coding problem. The limitation is artificial, but so are any other gameplay limitations in the game. This limitation forces you to think what you would like to perform on this tick - game actions or pixel generation. And now the real coding problem is how to decide this. How to predict what is the best tick to call generatePixel. The criteria was very simple before: run it whenever you have spare 5000 CPU. It's just one
if condition. Now this decision is a bit more complicated and involves more factors.
This is not like other limitations in the game. Other limitations exist in the game world and the decisions involved are about what your creeps/structures should do in the game world to react to those challenges or limitations in the game world. The whole game is about writing code to make better decisions in the game world.
This limitation or “decision” you want to introduce is very different because it takes you out of the world and you are basically choosing:
- Play the game this tick / participate in the world this tick
- Don’t play the game this tick / don’t participate in the world this tick
This is not an interesting choice and it seems to go against the very purpose of the game.
I believe many players have written their code in such a way that something useful is happening EVERY tick. I remember watching one of @Mototroller ’s rooms a long time ago and being so impressed that a remote mining creep showed up and moved into place on the exact tick that the previous creep died. It was beautiful in a way. There are many other types of things that can be optimized in similar ways that I believe many players have worked on. Skipping ticks entirely throws a wrench in all of this.
Choices and limitations are good, but I think it is bad if one of the options in the choice is to stop playing the game entirely for a tick.
Yes we can come up with complicated ways of deciding, but it places unnecessary complications on EVERY other part of your code, and still results in nullifying ALL of your code for a tick to perform one small action.