r-lyeh / Ava
Licence: other
A tiny unlicensed 3D game engine in C; with C++ and Lua interfaces. Written in 32 random ̷d̷a̷y̷s̷ m̷o̷n̷t̷h̷s̷ years.
Stars: ✭ 287
Projects that are alternatives of or similar to Ava
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (-36.93%)
Mutual labels: game-engine, gamedev, opengl, 3d, imgui
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+1198.95%)
Mutual labels: game-engine, gamedev, opengl, 3d
Overload
3D Game engine with editor
Stars: ✭ 335 (+16.72%)
Mutual labels: game-engine, gamedev, opengl, imgui
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (+29.62%)
Mutual labels: game-engine, gamedev, opengl, imgui
Lba2remake
A Little Big Adventure 2 / Twinsen's Odyssey reimplementation in JavaScript / Three.js / React
Stars: ✭ 116 (-59.58%)
Mutual labels: game-engine, gamedev, 3d
Mini3d
3D Software Renderer in 700 Lines !!
Stars: ✭ 1,320 (+359.93%)
Mutual labels: game-engine, opengl, 3d
Simplerenderengine
Small C++14 render engine
Stars: ✭ 253 (-11.85%)
Mutual labels: game-engine, opengl, imgui
Magnum Plugins
Plugins for the Magnum C++11/C++14 graphics engine
Stars: ✭ 66 (-77%)
Mutual labels: game-engine, gamedev, opengl
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-3.14%)
Mutual labels: game-engine, gamedev, 3d
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+957.49%)
Mutual labels: game-engine, gamedev, opengl
Duality
a 2D Game Development Framework
Stars: ✭ 1,231 (+328.92%)
Mutual labels: game-engine, gamedev, opengl
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+615.68%)
Mutual labels: game-engine, gamedev, 3d
Magnum Bootstrap
Bootstrap projects for Magnum C++11/C++14 graphics engine
Stars: ✭ 69 (-75.96%)
Mutual labels: game-engine, gamedev, opengl
Blue Flame Engine
A 3D/2D game engine that supports both DirectX11 and OpenGL 4.5
Stars: ✭ 129 (-55.05%)
Mutual labels: game-engine, gamedev, opengl
Bansheeengine
Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting
Stars: ✭ 2,906 (+912.54%)
Mutual labels: game-engine, gamedev, opengl
Magnum Examples
Examples for the Magnum C++11/C++14 graphics engine
Stars: ✭ 180 (-37.28%)
Mutual labels: game-engine, gamedev, opengl
Qfusion
Source code for cross-platform OpenGL gaming engine
Stars: ✭ 255 (-11.15%)
Mutual labels: game-engine, gamedev, opengl
Lighthouse2
Lighthouse 2 framework for real-time ray tracing
Stars: ✭ 542 (+88.85%)
Mutual labels: game-engine, gamedev, opengl
ΛVΛ
Small game engine.
Written in 32 random ̷d̷a̷y̷s̷ m̷o̷n̷t̷h̷s̷ years.
|
Features |
Rationale |
Getting started |
|
Unlicense |
Documentation |
Roadmap ᕕ(ᐛ)ᕗ |
Features
- [x]
C++. C. - [x]
Fast. Simple. - [x]
Modern. Readable. - [x]
Full featured. Extendable. - [x]
Object-oriented. Data-oriented. - [x]
Infinite documentation. Browsable sources. - [x]
Hundred of file formats supported. Unique binary format. - [x]
Royaltie fee. Free and unlicensed. - [x]
Other buzzwords. Small. Direct. Embeddable. Fun.
Rationale
- Minimalistic coding style.
- Less is more, DOD, ECS, KISS.
- Heap allocations under control.
- No installation, no makefiles, fast compilation times.
- Generic 3D editor, that can be decoupled from the project.
- Generic asset pipeline, that can be decoupled from the project.
- JSON workflow: still human-readable, still mergeable.
- Inspiration from: ands, bitsquid, ccxvii, jo, krig, ocornut, procedural, rjm, rlk, sgorsten, stb, vurtun.
Roadmap ᕕ(ᐛ)ᕗ
- [x] 00 Project structure, build system and makefiles.
- [x] 01 Window, rendering contexts and game loop.
- [ ] 02 File formats, hashing, encryption and compression.
- [x] 03 Timers, easings and interpolation.
- [ ] 04 Input bindings, digital+analog buttons, filters, gestures, chords and combos.
- [x] 05 Linear math, geometry, volumes and collisions.
- [x] 06 Cameras and frustum culling.
- [ ] 07 Regions, triggers, trees and spatial partioning.
- [ ] 08 Data pipeline and asset journaling.
- [ ] 09 World streaming and level loading.
- [ ] 10 2D/2.5D/3D/VR renderer and post-effects.
- [x] 11 Fonts, atlases and text rendering.
- [x] 12 Debug draw and debug UI.
- [ ] 13 Procedural content, brushes, voxels, noise and CSG.
- [ ] 14 Static meshes, decals, skyboxes and skydomes.
- [ ] 15 Sprites, sheets and spines.
- [ ] 16 Particles, billboards, emitters, trails and paths.
- [ ] 17 Skeletal animation, blending, blendspaces, IKs.
- [ ] 18 LODs, mesh instancing and scenegraphs.
- [ ] 19 Server/client architecture.
- [ ] 20 Message pipeline and serialization.
- [ ] 21 Digital signals, message buffering and event polling.
- [ ] 22 Entity/component/systems and world replication.
- [ ] 23 Scripting, bindings and game modules.
- [ ] 24 Navpoints, navmesh traversal and pathfinding.
- [ ] 25 AI, H/FSM, behavior trees and flocking.
- [ ] 26 Game flow and game UI.
- [ ] 27 Localization, subtitles and unicode.
- [ ] 28 2D/3D audio, HRTF, FFT, filtering and sound occlusion.
- [ ] 29 Dialogue, quests and inventory.
- [ ] 30 Full Motion Video and integrated cinematics.
- [ ] 31 Editor, gizmos, properties, timeline and data tracks.
- [ ] 32 Debugger, callstack, inspection, console, leaks, cvars and profiling.
Screenshots
Releases
2019.2 (Monkey3_Icarus), 2019.1 (YOB_Marrow)
Getting started
Execute the make.sh.bat
script file to build & run the editor.
Additionally:
-
make
(launch editor) -
make game [platform]
(launch game) -
make make [game] [platform]
(make game.exe executable) -
make cook [game] [platform]
(cook all raw game assets) -
make pack [game] [platform]
(pack all cooked game assets into game.pak file) -
make fuse [game] [platform]
(fuse game.pak and game.exe both together)
Disk structure
-
editor/
, generic 3d editor and viewer. -
engine/
, portable engine runtime. -
games/
, games and demos. -
tools/
, build tools & generic asset pipeline.
Download
Build
AVA as engine:
- [x] Compile the amalgamated
engine.c
source file to get a functional game engine. - [x] Compile your game as a dynamic library and place it near the
AVA
executable. - [x] Tip: Rename both executable and dynamic library as desired. Ie,
game.exe
withgame.dll
will work. - [x] Tip: Place an
.ico
icon close to the binary if you want to as well.
cl engine.c && echo AVA as engine (Windows)
g++ engine.c && echo AVA as engine (Linux)
clang++ engine.c && echo AVA as engine (OSX)
AVA as library:
- [x] Compile your game and link amalgamated
engine.c
source file with it.
cl game.c engine.c && echo AVA as library (Windows)
g++ game.c engine.c && echo AVA as library (Linux)
clang++ game.c engine.c && echo AVA as library (OSX)
Redistribution
- game.exe + .ico (engine player)
- game.dll/.lua/.socket (game logic) \
- game.rom/.pak (ro data storage) | game :)
- game.ram/.sql (rw data storage) /
License
The project is released into the public domain (as per this notice).
Any contribution to this repository is implicitly subjected to the same release conditions.
Alternatives
amulet, anvil, aroma, blendelf, chickpea, corange, ejoy2d, hate, island, juno, love, mini3d, mio, openframeworks, openkore, pez, moon, punity, roam, sushi, tigr,
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].