3 ms·
Most of what goes into a game engine is not those. SDL is a similar level of abstraction to win32/x11/... Bgfx/diligent have a similar level abstraction to d3
by moonchild 6y ago
Most of what goes into a game engine is not those.
SDL is a similar level of abstraction to win32/x11/...
Bgfx/diligent have a similar level abstraction to d3d/opengl/...
(And if you are a solo engine-writer, you're not going to write more than one custom windowing/graphics target anyway, so those libs don't reduce the amount of work you have to do.)
A basic image loader for a format like bmp or netpbm is trivial.
Here are all the dependencies for my game engine right now:
- Assimp
- Freetype
- SDL
- Linear algebra library
- Intel intrinsics library (transitive dependency of the
math library)
- S7 scheme
- stb-image
- Toml parser
- Audio library
I estimate it would take under a week to replace all those except freetype and assimp, and freetype could be replaced with bitmapped fonts. Making an engine is as much (or as little) work as it's ever been because, similarly to a web browser or an OS, the challenge is designing and implementing application infrastructure.
_______________________________________________________
More interesting, IMO, is to look at the ways that general-purpose engines have allowed people to avoid building engines in the first place. Something like unity is a toolbox to let you build any game you would want without needing to write thousands of lines of infrastructure code. Even lighter-weight toolkits like love,fna,raylib are general enough to be usable for a broad variety of games, while still providing enough specific functionality that you can just start writing your game.