Framework to build Game Engines.
TBD
- v3 is a minimal C framework to help you build custom, scalable game engines.
- v3 is modular at its core, allowing you to toggle or replace its APIs at runtime.
- v3 is community-driven, enabling developers to create and share extensions without requiring approval.
- v3 is a major overhaul of the earlier v2 and v1 iterations.
- v3 is lighter and more flexible than previous v2 and v1 efforts.
-
Modern C++Simple C. -
Royaltie feeFree. -
Licensing clausesNope. -
Full featuredExtendable. -
Rich build systemgcc v3/v3.c
- Ecosystem: Community-driven by design, via extensions.
- Modular: Module APIs can be toggled, replaced or switched at runtime.
- Compilers: MSVC, GCC, clang, clang-cl, mingw.
- Desktops: Windows, Linux, OSX.
Emscripten (untested). - App: window, icon, cursors, alerts.
- Input: Keyboard, mouse, battery and
gamepad (untested)devices. - Archives: DIR, ZIP.
- Images: PNG, JPG, TGA, BMP, PSD, GIF...
- Scripts: Lua and Teal languages included.
- UI: buttons, sliders, checkbox, colors, popups.
- Time,
timers, threads and coroutines (planned)utilities. - Logger, callstacks, memory leaks finder, unit-tests.
- Resources: embedded into binary automatically.
- Compression: Deflate.
- Documents: JSON, JSON5, SJSON, XML, INI.
- Upgrade V3. How to Install extensions.
- Extend V3. How to Publish and Share your extensions.
v3 is a minimal C framework that omits standard systems (e.g., rendering, audio, math libraries, or asset tools) unless specific extensions are added. This deliberate choice lets developers integrate their preferred tools to build a tailored game engine, enabling game creation with minimal bloat. Key benefits include:
- Freedom of Choice: Developers can select libraries that match their preferred syntax or performance needs, avoiding rigid or unfamiliar APIs.
- Lightweight & Portable: A small footprint boosts performance on low-end hardware and simplifies cross-platform development.
- Customizable & Scalable: Build only what you need, from simple to complex projects, without unnecessary features.
- Clear & Maintainable: A lean codebase enhances understanding, reduces overhead, and eases debugging.
- Community-Fueled: The "bring your own tech" approach encourages community to experiment with new directions for v3, driving its future through innovative contributions.
- Double-click
MAKE.bat
file. Linux/OSX users can invokesh MAKE.bat
instead. - Other commands,
MAKE tidy
to clean environment.MAKE sync
to sync repo to latest.MAKE plug
to un/install extensions.
- Alternatively,
echo win/vc && cl hello.c
echo win/clang && clang hello.c
echo win/clang-cl && clang-cl hello.c
echo win/mingw && gcc hello.c -lgdi32 -ldbghelp
echo linux && cc hello.c -lm -ldl -lXrandr
- Currently, all these extensions are hosted on github.
- It is planned that the hello demo will be used to un/install extensions in the future.
- For now, you can un/install extensions via
MAKE plug
script:MAKE plug dir
MAKE plug [add|del|syn] *
MAKE plug [add|del|syn] user/repo
MAKE plug [add|del|syn] @filelist.txt
Runtime Dale Weiler and Bach Le, Lua authors and Eduardo Bart, Riley Mabb, Rxi, Sean Barrett et al., Teal authors,
This software is MIT-0 licensed (No Attribution clause). Any contribution to this repository is implicitly subjected to the same licensing conditions aforementioned.
Still looking for alternatives? Have some:
amulet, aroma, astera, blendelf, bullordengine, candle, cave, chickpea, corange, cute, dos-like, ejoy2d, exengine, game-framework, gunslinger, hate, horde3d, island, juno, l, limbus, love, lovr, mini3d, mintaro, mio, ofx, olive.c, opensource, ouzel, pez, pixie, punity, r96, ricotech, rizz, rvnicraven, tigr, yourgamelib,