Shady development ordering



I'm a huge fan of scc. Lines of code isn't always a useful metric, but as a single developer on a single project, there's a few things I can find out.

Here's the count at the time of writing:

───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
C++ Header                  27      1065      260       130      675          7
C++                         25      1386      264       125      997        113
GLSL                         6        85       26         3       56          1
Markdown                     4        33       11         0       22          0
CMake                        2       136       18        40       78          4
Plain Text                   1         2        0         0        2          0
───────────────────────────────────────────────────────────────────────────────
Total                       65      2707      579       298     1830        125
───────────────────────────────────────────────────────────────────────────────

I also know what the code does. I have some theoretical scene management, basic physics engine design, and rendering. I also know this isn't something that takes 1830 lines.

Just from browsing the code, I can tell it's heavily affected by code sprawl. What I need to do is a substantial amount of cleanup. While migrating to Scenes, I indirectly changed the need for PhysicsWorld. It's now a somewhat redundant class that more or less just wraps some Renderer functionality.

Yet, separating out the physics may be necessary as the engine grows. These are all things I should be figuring out, especially because I'm really out of my depth here. Complete game engine design is far above what I've done before, so I don't have a concrete plan, or full control over everything I do. As a consequence, code quality some times suffers.

Yet, I sit down to start doing something, and decide to add settings instead of figuring that out. Nothing quite like shady development ordering in a sprawling project where I have no idea what I'm doing :')

It'll still work itself out after another refactor or two. There's so many things that pop up that I didn't think about that affect the architecture, and that I now need to account for. I guess inevitably needing to refactor is unavoidable.


Comments

All comments posted either through utteranc.es or manually on the associated GitHub issue end up on an associated issue in the website GitHub repo, and as such are required to follow the project code of conduct. Remember this while writing comments.