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.