Last Thursday night was a night from hell! I had to rebuild all of the libraries (GLTools, FREEGLUT, and MathEngine) from their sources, modifying their their projects' properties so that they compile and link without errors and warnings. Adding them to the Graphics engine project and get that to compile and link without errors or warnings was a whole other issue. I spent the whole night wrestling with Visual Studio. At 7 AM next day I finished the process successfully, but too tired to go ahead to write any code.
With the project all setup and ready for actual coding, the fun part started. Before taking SE456 - Architecture of Computer Games - last quarter, I thought I knew how to write software, but after I took that class, I discovered that I knew nothing about that before. Since then I fell in love with software architecture and anything related to that topic, including API design, OOP principles, and design patterns. When I apply these principles I learned, I really feel that I'm actually an ENGINEER as opposed to someone who just knows how to write code that runs.
I really didn't like the structure of the GLTools at all, or how the project was initially setup. So I played around a bit, using the baby steps approach. Wrapping all of what was originally there, transforming the project from a single file that had all the code in it to a project with multiple files and multiple classes. The main method now has only 5 lines of code. all the rest is handled by other classes.
It's far from being complete, but it's the very first step into a huge refactoring operation. This very first step is shown in the below UML. Very excited to continue the refactoring, hopefully transforming this into a strong graphics engine.

No comments:
Post a Comment