How to make your own game engine (and why)
medium.com