After a long time I have finally tinkered with the spring codebase again. Many moons ago I was looking into abstracting the modelformats and ultimately implent a new model format. But in the end I pretty much got turned off by the sheer amount of work to get the interfaces done and thinking about messing with the cluttered rendering code set my frustration-level to new unknown heights.
But I have always loved TA and I occasionally play BA. So it happened that contributing something back to the community was always on my list of things to do. Anyway I started out with a s3o-exporter for Maya which I wrote from scratch to get myself a bit dirty(if someone is interested, I have compiled it for maya6, pm me).
I discovered again how limited the fileformats and the spaghetti-renderer are.
So I got down to business with the .76b1 codebase once and for all:
- All opengl calls are gone
- All content fileformats are gone (models, textures, maps)
- Lua opengl stuff is gone
- Ogg vorbis is gone(temporarily, didnt want to compile another dep)
- lots of minor hacks
A high priority was to keep all the gamelogic intact as much as possible.
Every change I made(except for some lua calls) are marked by comments in the code.
Still, it's a huge mess. For me it's the first step of implenting a new renderer and new/updated fileformats into spring. I'm going to tackle everything step by step till I eventually arrive ingame with a unit on a terrain.
In the end I hooked up the lightweight Horde3d renderer(opengl 2.0). Spring starts up now, the window is setup by SDL, the opengl-context is handled by Horde3d and spring runs the pregame script-selection. Unfortunately, there is no eye-candy yet, so it's just a black screen.
Right now I plan my next step, which will be the reimplementation of the necessary 2d elements for CPreGame based on Horde's Overlay and Font capabilities.
Since this is a major but promising undertaking I wonder if anyone here wants to join the adventure.
On top of that I want to know what you(the developers) think about what I'm doing here. Ideally I don't want this to become a fork, so let me know what springs to your mind.
