CMake has entered the chat
Over the weekend, I focused on refactoring mat4 and vec3. Additionally, I’ve made some adjustments to my toolset.
Refactoring and Benchmarking: helios.math.core
I took the time to refactor vec3 and mat4 into helios.math.core.
By isolating these (and some more) core components, I hope to ensure a more fine grained separation of concerns right from the beginning. I also depend now on Google Benchmark and put mat4 to the test:
Surely, the power house in OpenGL mathematics is GLM (OpenGL Mathematics library), which I frequently use. However, to get a hang of C++ I decided to implement some of the (basic) requirements myself.
Here’s a look at the numbers:

In both constructor and multiplication tests, the helios implementation shows a promising performance. Of course I’m nowhere close to the optimizations of glm which sports much, much more functionality than my basic implementations, but its nonetheless nice to see how the two compare.
Benchmarking Guid Pointer To Implementation
Remember my bold claim about theperformance drawbacks of pointer-to-implementation and heap allocation? I’ve put together a benchmark here, comparing the regular and PIMPL versions. As expected, the latter comes with a noticeable performance hit:

A New Workflow: CLion and CMake
I’m parting ways with MSVS (for now) in favor of a more automated, cross-platform workflow with CLion and CMake. The goal is to let modern tooling take care of the heavy lifting, especially with dependency management: It turned out that incorporating Google Benchmark was too much of a hassle (for me at last), but CMake did the trick in no time. I also feel pretty much right at home coming from composer), packagist and npm.

It wasn’t without its challenges, and I’m still navigating the learning curve, but the potential benefits in productivity and project maintainability are promising.
helios
helios is a custom game framework built from first principles, written in C++.
| Status | Prototype |
| Category | Tool |
| Author | GarageCraft Games |
| Tags | cpp, eductational, engine, gamedev, linearalgebra, programming, software-architecture |
More posts
- helios: Design and prototypical implementation of a C++ game framework1 day ago
- Just make it exist first!23 days ago
- Onwards to the rendering model44 days ago
- Event Queue and Application Controllers50 days ago
- From Camera- to Clip-Space, to NDCs and z-Fighting55 days ago
- Updates to main()58 days ago
- The Great Modular Restructuring59 days ago
- Layer Abstraction initiated65 days ago
- inb4 Clip Space66 days ago
- Model Matrix: Rotations70 days ago
Leave a comment
Log in with itch.io to leave a comment.