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 many standard systems by default, 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 linux && cc hello.c -lm -ldl -lXrandr
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 -lole32 -lwininet
- 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? 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,