I propose to end the maintenance branch (104+) as we know it. It uses a lot of legacy graphics code that:
- Slow. The newer rendering approaches are at least a magnitude faster.
- Totally deprecated. The older approach required that drivers hold huge state and handle peculiar 20+ years legacy interactions. The newer drivers tend to introduce bugs here and there, this bugs will never be fixed, because no commercial games run old OpenGL anymore.
- It significantly holds back development of new graphical features for spring, game/Lua and engine sides as well. Even if something is developed, the developer needs to implement at least three rendering paths to make universally compatible. No one wants to do that.
- We are in mid of 2020, even embedded Intels support the "new" OpenGL, let alone GPU/APU from NVidia/AMD. Each day the more legacy hardware gets phased out and the new one gets purchased. If you have no money or desire to change your 10+ years old laptop or GFX card, we are sorry, but that's not something engine or game developers can help you with.
- Last, but not least. For those unaware we have had no lead engine dev since last year, merely part time contributors. The reason is that no one wants to fix or work on the current "maintenance" engine.
Moving on, my plan is to modify the Lua graphics API of the current "maintenance" such that it's API compatible with the other branch of the engine called "develop". "Develop" uses fully updated OpenGL code and runs several times faster as far as rendering is concerned, that said the current "develop" doesn't even use the extended acceleration capabilities of new OpenGL to full extent, meaning that it can be made even faster once it gets the deserved attention. There is a big likelihood that not-only the current "maintenance" engine will need to move towards "develop", but also that "develop" will need to be readjusted to ease the transition and stay compatible with hardware/drivers of as many as reasonable.
Once the "maintenance" or better call it "transition" is extended with new API, I expect that developers of BAR, ZK, Chobby/Chilli will lead the transition on the Lua side. A lot of widgets and gadgets will need to be rewritten so they use new common API. Gradual introduction of the new API and gameside changes allow for uninterrupted game development (in areas other than graphics) and for almost unaffected user experience (since we talk about the process similar to continuous integration each misstep on the game or engine side could be easily reverted). The final step would be to fully switch over to "develop" as a "transition" branch serves only as a mean to bridge the gap towards the future spring ("develop"). The developers of other games interested in moving on are more than welcome to join the endeavor or follow on on the results.
I was advised to get approval of the plan above from spring project wardens: @Kloot, @hokomoko, @gajop, @abma and @SilentWings. Please speak up.