sf::RectangleShapes were created brand new each frame, which takes a lot of time.
Instead, keep an array of them available and update them instead of creating new ones.
This also allows a nice optimization of only updating them if needed, by checking their
previous value.
Update the available number of rects when the window resizes.
Use memmove to shift the whole array by one measure to the left,
dropping the oldest one and adding a new one at the head.
This creates a better visual effect of a graph being produced on the right
and scrolling to the left, rather than a looping writing head that overwrites
previous data.
Introduce Dear ImGui to the CMakeBuild, allow building without it.
Add two debug interfaces : one FPS counter and frame time graph,
one map visualizer and editor.
Handle window resizes by resizing the view frame as well.
Clean up the event handling to allow interleaving other code between
different checks.
Remove early first frame, handle it like the others.
Player: Add rotation and linear speeds, as well as their current state.
Player: Allow to move in the local coordinates and compute
world-speed equivalent.
Player: Update movement axis while rotating.
World: Add a function to advance a step.
Main: Handle key events, add world step in the main loop.
Implement the basic raycaster, checking every block intersection and the block
linked to that position.
Split the screen uniformally along the width.
Add data needed for camera maths in the Player class
Specify constraints on the raycast parameters.
Render the screen using the raycasts.
Call the renderer in the main loop.