https://neumont-gamedev.github.io/posts/gamedev-cg-2d-setup/
Computer Graphics 2D Rasterization Setup - Neumont Game Dev