Framework to build Game Engines.
Still WIP. 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 previous v2 and v1 iterations, being lighter and more flexible than them.
-
Modern C++Simple C. -
Royaltie feeFree. -
Licensing clausesNope. -
Full featuredExtendable. -
Rich build systemgcc v3.c
- Ecosystem: Community-fueled by design, via decentralized extensions.
- Modular: Module APIs can be toggled, replaced or switched at runtime.
- Compilers: vs2022, gcc, clang, clang-cl, mingw.
- Desktops: Windows, Linux, OSX.
Emscripten (untested).
- App: window, icon, cursors, alerts.
- Archives: DIR, ZIP.
- Audio: 2D, 3D, OGG, WAV.
- Compression: Deflate.
- Devices: Battery, Keyboard, Mouse, Gamepads.
- Documents: INI, XML, JSON, JSON5, SJSON.
- DS: Arrays, HashMaps and Sets.
- Images: WEBP, PNG, JPG, TGA, BMP, PSD, GIF...
- Logger, callstacks, memory leaks finder, unit-tests.
- OpenGL: GL2, GL3, GL4.
- Resources: embedded into binary automatically.
- Scripts: Lua.
- Time, threads,
timers, and coroutines (planned)utilities. - UI: buttons, sliders, checkbox, colors, popups.
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:
- Customizable & Scalable: Build only what you need, without unnecessary features.
- Freedom of Choice: Developers can select libraries that match their preferred syntax or performance needs, avoiding rigid or unfamiliar APIs.
- Lightweight & Portable: Default small footprint that fits on low-end hardware and simplifies cross-platform development.
- Community-Fueled: The "bring your own tech" approach encourages communities to experiment with v3 in new directions, driving its future through innovative contributions.
- Double-click
v3.bat
file. Linux/OSX users can invokesh v3.bat
instead. That's all. - Other commands,
[sh] v3.bat tidy
to clean environment.[sh] v3.bat sync
to sync repo to latest.[sh] v3.bat ext
to un/install extensions.
- Alternatively, you can compile the demo launcher manually.
echo win/vc && cl v3.c
echo win/clang && clang v3.c
echo win/clang-cl && clang-cl v3.c
echo win/mingw && gcc v3.c -lgdi32 -ldbghelp -lole32 -lwininet
echo linux && cc v3.c -lm -ldl -lpthread -lasound
echo osx && SDKROOT=macosx10.14 cc -ObjC v3.c -framework cocoa -framework iokit -framework audiotoolbox
- Currently, all these extensions๐ are hosted on GitHub.
- It is planned that the v3 launcher will be used to un/install extensions in the future.
- For now, you can un/install extensions via
v3 ext
script:v3 ext dir
v3 ext [add|del|syn] *
v3 ext [add|del|syn] user/repo
v3 ext [add|del|syn] @filelist.txt
TBD
Runtime and extensions Andre Weissflog, Arne Koenig, Dale Weiler and Bach Le, James McLean, Lua authors and Eduardo Bart, Riley Mabb, Rxi, Sean Barrett, Teal authors,
This software is released into the public domain. Also multi-licensed as 0-BSD, 0MIT or uLicense at your will for those countries where public domain is a concern (sigh). Any contribution to this repository is implicitly subjected to the same licensing terms 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,