Removal of the Blinking lights

@zeldafanboy said in Removal of the Blinking lights:

I think the blinking lights should contrast the faction colorβ€” i.e. Cybran should have yellow blinking lights and Seraphim blue blinking lights. Aeon should have red lights and UEF green lights.

yes, i think this is the best solution.

You just shuffled the faction colors around and I can't even figure out the logic which color goes to which faction, this isn't really contrast in an aesthetic sense. Using the player color seems like the better solution.

@blackyps

I wasn't aware the lights could obtain the individual player color, but my logic for the color selection uses "contrast" in a loose sense (for example, if Cybran is "red" the opposite color on the color wheel is green, not yellow) but I took the actual coloration of the factories and structures into account. Only UEF factories are actually blue, Cybran is black, Aeon is white, and Seraphim is chrome. I think yellow stands out on black better than green, so I used yellow instead of the actual contrast color, and then I shuffled the rest of the colors around.

put the xbox units in the game pls u_u

I also think that having the light colours be the player colour would be the best idea, it also adds to the already lackluster customization options in game so it would be a nice change of pace to see it happen.

Having the lights be the player color just adds more of the same color to the building. Having them be the faction color is a nice little nod to the "lore" while also not looking samey to all the other color the units/buildings already have.

Occams Razor.
Most players dont now this exists.
Players now cant decide whether to keep them or change its function or change its colours ect.
Remove altogether would be the simplest solution.

I’m in favor of removing them.

The blinking lights are re-introduced again since 3810. See also #6263 for all the changes and the reasoning.

We're looking for someone to improve the position of the blinking lights on all factories. No programming is required, but you do need a development environment to test and verify your changes. You can use #6266 to understand what type of changes it could involve.

If you're interested then do respond either here or introduce yourself on Discord. Then we can help you get started πŸ™‚ !

55882aba-949f-4005-8f6e-4db232928471-image.png

4dd5448a-3b83-4c18-8614-0045573f8495-image.png

c6c4908f-9dd6-43d3-bc8f-a8b563e65697-image.png

A work of art is never finished, merely abandoned

Nice!
Can you tell us a little more how the new implementation avoids the performance issues of the original one?

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
– Benno Rice

@brutus5000 said in Removal of the Blinking lights:

Can you tell us a little more how the new implementation avoids the performance issues of the original one?

Great question!

In general I don't think / am able to observe a significant performance issue with the previous or the current implementation when I reviewed it last month. In comparison to other changes such as #4539 or #3857 or the fact that a single formation (every order that involves some form of movement (!)) happily allocates 4kb of memory and can take several milliseconds to complete. I made a mistake by removing the blinking lights and by re-introducing it I'm rectifying the mistake πŸ™‚ .

In general the current implementation follows a few principles:

  • (1) No unnecessary memory allocations. Especially the type of 'use and forget' is exceptionally painful for performance. Not only is memory allocation on the heap slow in general, it also unnecessarily flushes the CPU cache.

  • (2) No unnecessary table access. Everything in Lua that involves : or . is not as 'cheap' as it is in compiled languages and involves a hash operation in combination with following a pointer into (random) memory. This expensive! And it compounds since our Lua is interpret and not compiled. As a quick example #5524 increases the performance of the score graph at the end of the game by several factors and the primary reason for this was to cache table accesses.

And unrelated to performance:

I hope that answers your question πŸ™‚

A work of art is never finished, merely abandoned