Hello all. I have recently discovered the Glest project and think it has wonderful potential. I downloaded the source, compiled it, and ran the game. So far so good. THEN I actually looked at the source code...
The code structure is a nightmare. Many header files declare a dozen different classes, code is littered throughout the header files, and worst of all is the coupling. An Ai has an AiInterface which in turn has a pointer to an Ai... And the same spaghetti coupling exists for AiRule. I haven't made it past the A's yet
Are there any attempts to enforce good coding practices in this project? I am a professional programmer and this code makes my head spin. Heaven help the newbies who are trying to learn C++ and want to contribute to this project as well. Even a small thing such as running AStyle against all the code would be a good starting place. And then for the sake of readability and navigation, enforce a rule that one header file may only contain one class declaration (excluding subclasses) , you may never define a method in the header file, and then refactor the old code to meet the new standards.
I have already started making these changes in my code set, but the coupling is a huge obstacle. Are any of the main devs interested in the ideas I have mentioned or am I alone in my quest for readability and maintainability?