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

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

Quickstart

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

Manual builds

  • 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

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

Tips

  • Build v3 as dll? Use cl v3.c /LD then cl game.c v3.lib.
  • Build v3 retail build? Use -DNDEBUG=2 /O2 flags. Add /MT flag in Windows.

Links

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,

Issues Discord