Zefz wrote:Porting to SDL2 and preferably C++11 would be major steps towards making this project more maintainable.
A long standing problem with the Egoboo codebase has been that it is a complete spaghetti mess. And a lot of hacks for optimizations or portability.... A lot of code cleanup is severely needed to make the code more readable.
The previous two active developers (me and bbirdsey) were only using Windows (visual studio) which also made support for Linux and osx lacking.
Full ack. This is part of the roadmap. SDL2 is crucial because SDL (in particular the image/sound libraries) reached the end of their lifecycles. C++ is kinda a no-brainer, it is/will be supported on all major systems/compilers. I suppose that the code base will shrink dramatically (50% or more). Check the progress on GitHub. FYI, we based our changes on the 2.8.x branch. I consider this less as a problem (needs a bit of experience and time, but in the end it will simply work out), i.e. i can do that in a one-man show (though help is always welcome) but you guys just don't have to bother with it.
My major concerns are: One are simply bugs, in particular numeric overflows/underflows, divide-by-zero and documentation(!).
We have a lot of file formats here, they MUST be documented. Other thing is an unacceptable low frame rate on some systems - eventually the reasons will become apparent by the time the source code becomes more modular. penguinflyer is currently sweeping the source for those NaN/Inf bugs and anything he can fix, I think he'd appreciate some help. Those bugs also slow down C++ conversion.
Other thing are those terrible patterns in which values assigned to struct elements indicate if an object is constructed (i.e. a sphere with radius -1.0f indicates that it is not valid). However, the worst problem is the broken physics system; I can barely play/play test because simply hitting/targeting doesn't work. Movement is sluggish. It got a bit better as a side effect of some fixes but is still not the Egoboo I remember. A crisp, fun hit/targeting/movement physics system is mandatory. Input and or help is appreciated in that field.
Another issue is the broken website, this does not look good. Furthermore, even if we work on GitHub, we should sync the GitHub and SourceForge repos somehow. Releases should be put on SF and linked from the Egoboo site. In the end, the website, this forum are Egoboo somehow. I'd appreciate if someone can take care of that: In particular fix broken links and make a notice that development continues - we need that because we need for example artists/asset/content creators and maintainers.
Artists/asset/content creators and maintainers: The original artists are gone I think. We somehow need to cope with the problem of maintaining/streamlining/creating artwork and/or other assets. In particular, the MD2 files need to be converted to some more modern file formats at some point. A big question will be which? Eventually Collada together with a "baking" tool which takes Collada files as input and creates efficient binary (for production) and textual (for development) representations which can be used by the game. We currently have lore and ideas scattered (there are dev docs in OpenOffice format, there is a Wiki, ...). This needs consolidation, too.
There's nothing that can't be solved; however, a vision for the gameplay and artwork are essential: We need to kinda push Egoboo to 2015 but keep its unique charm: It doesn't take itself too seriously, it knows that it can't be an AAA title (problem of many Open Source games - they just don't know) - keep it small and fun, use the facilities we have text/story, exploit modern effects (shaders, for instance cell shaders might be nice). Eventually, multiplayer and mobile devices should also receive some attention (I saw a Wii port on GitHub somewhere, could be great).
Just some thoughts. Discuss! By the way, nice that some of the old devs show up - welcome back.