Skip to content

r-lyeh/v3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Framework to build Game Engines.

Screenshots

Still WIP. TBD

About

  • 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.

Features and roadmap แ••(แ›)แ•—

  • Modern C++ Simple C.
  • Royaltie fee Free.
  • Licensing clauses Nope.
  • Full featured Extendable.
  • Rich build system gcc 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).

Preinstalled extensions

  • 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.

Minimalism everywhere. Why?

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.

Quickstart

  • Double-click v3.bat file. Linux/OSX users can invoke sh 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

Un/installing extensions

  • 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

Publishing and Sharing your extensions.

TBD

Credits

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,

License

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.

Links

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,

Issues Discord

About

๐Ÿ’Ž Framework to build Game Engines, v3.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published