I think some GUI would be necessary, some games like RPG need GUI and some others too, like for a video dialog or such. And it’s not easy to write ones own from scratch. Please consider kiss_sdl https://github.com/actsl/kiss_sdl and the thread here Kiss_sdl - Simple universal GUI widget toolkit for SDL . Because it’s the smallest, yet generic. This GUI will never be other than some files added to the project, to give the user the ability to change it the way one wants. It is entirely made using SDL2, so like who knows the LazyFoo tutorials, knows how to change this. This is my principle of Principal GUI, which is an Immediate GUI, but goes further in that it is easily changeable and extendable, enabling the user to adopt the GUI to ones needs by changing it, yet it provides enough functionality for simple generic GUI that is enough for most users. This enables to make a very small GUI, with some 10 times less code than even in the small Immediate GUI-s. The smaller code is important because it is more easily understandable for the user, making it easier for the user to change it if necessary. But it is also made easily changeable by its structure, like with drawing and general functions abstracted away from the widget functions and with the principles of making even a very advanced GUI built in. When adding a simple GUI, your software may have an advantage which the other similar ones don’t have. Thank you for considering it.