Energy reclaim will excess instead of contribute to overdrive
When a player reclaims energy, it is not correctly incorporated into overdrive/ team excess. What would be expected is that additional energy from reclaim is treated as temporary income, however it is not calculated towards things like overdrive. I've been told that energy reclaim also does not overflow into teammate's storage, but I do not have a demonstration of this. I suppose this could be checked via the endgame graphs of a substantial team game where someone is reclaiming energy past earlygame.
In the demo linked below, I set up an income/expenditure equilibrium of about 8m/s and 8 e/s. Then I start reclaiming trees at 7.5 e/s. Despite having a grid that can sustain an additional 6 e/s in overdrive, it excesses 7.5 e/s.
due to discussions with macrodeamon and electricboogaloo
Featured demo of behavior: https://zero-k.info/Battles/Detail/2103814
IIRC energy reclaim being ignored by the overdrive system is some mix of intended (because it's usually an emergency stalling measure or for things like dedicated earlygame shield/cloak rush shenanigans) and technically difficult (tracking reclaim properly used to require the AllowBuildStep callin which is too expensive for this sort of minor polishing).
My preference is for not breaking the overdrive system or making it really complicated. I'm not sure if reclaim can be added to OD without doing that. I think conceptually it is fine for energy reclaim to be independent, it doesn't come from energy structures.
However, I am confused by that screenshot. If your energy is full and you are reclaiming enough energy to run all of your stuff, then any energy being produced by your energy generators should be going to overdrive. Is it perhaps the issue not simply that reclaim energy can't be used for OD (which I think is reasonable), but rather that the net income increase caused by reclaiming energy doesn't even displace energy generator energy? Hm, or are those the same issues? When phrased like this the problem doesn't seem so intractable. OD only operates at 1Hz, so we wouldn't need to do things perfectly via AllowUnitBuildStep, we'd just need to read the energy generation of all constructors. This extra energy could contribute to total team energy income, which would then be compared to expenditure to check what proportion of energy should be sent to overdrive. The reclaim energy would not be intercepted or shared around in any unusual way, just read and used to shift how much generator energy is send to OD. So the change should be fairly safe.
My only ideas insert additional complexity to the system, and are based upon my lack of understanding the engine's and the gadget's code.
As it stands now, energy spent on overdrive is approximately (fullness of energystore)*(energy surplus, accounting all costs). Mex income/expenditure is calculated per frame by the gadget, which sees all but constructor reclaim. What if there was additional complexity, where overdrive aims for 80% full energy storage? This could be communicated to the player similarly to metal reserve, displaying "alternative energy storage" from max store downwards. Then, when energy stored is above the threshold, that energy is either shared to the team or eased into overdrive spending. This could be made additionally complex by attempting to smooth the overdrive expenditure of wind farms between high and low incomes.