Framework to build Game Engines.
Still WIP. TBD
- v3 is a minimal C framework to help you build custom, scalable game engines and creative apps.
- 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.
- v3 is released into the public domain or, at your discretion, licensed under the 0-BSD, 0MIT, or uL.
- v3 is minimalist by design. Key benefits include:
- Build only what you need, without unnecessary features.
- Small footprint that fits on low-end hardware and boosts development cycles.
- Select libraries that match your preferred syntax or performance needs, avoiding rigid or unfamiliar APIs.
- The bring-your-own-tech approach encourages communities to experiment with v3 in new directions.
-
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, gcc6, 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.
- Embed: resource files embedded automatically.
- Images: WEBP, PNG, JPG, TGA, BMP, PSD, GIF...
- Logger, callstacks, memory leaks finder, unit-tests.
- OpenGL: GL2, GL3, GL4.
- Scripts: Lua.
- Time, threads,
timers, and coroutines (planned)utilities. - UI: buttons, sliders, checkbox, colors, popups.
- Double-click
v3.sh
file. - The action above should generate a
v3
executable with all demos included. - Other commands,
v3.sh tidy
to clean environment.v3.sh sync
to sync repo to latest.v3.sh ext
to un/install extensions.
- Alternatively, you can compile without any batch/bash scripts as follows:
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
- Build v3 as dll? Use
cl v3.c /LD
thencl game.c v3.lib
. - Build v3 retail build? Use
-DNDEBUG=2 /O2
flags. Add/MT
flag in Windows.
Still looking for alternatives? amulet, aroma, astera, blendelf, bullordengine, candle, cave, chickpea, corange, cute, dos-like, ejoy2d, exengine, game-framework, gunslinger, hate, high-impact, horde3d, island, juno, l, limbus, love, lovr, mini3d, mintaro, mio, ofx, olive.c, opensource, ouzel, pez, pixie, polycode, punity, r96, ricotech, rizz, rvnicraven, tigr, yourgamelib,