29

GitHub - r-lyeh/AVA: A tiny unlicensed 3D game engine in C; with C++ and Lua int...

 5 years ago
source link: https://github.com/r-lyeh/AVA
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

README.md


free_logo_2.png
Λ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 | Todo ᕕ(ᐛ)ᕗ |


Discord Travis Issues Unlicensed

Features

  • C++. C.
  • Fast. Simple.
  • Modern. Readable.
  • Full featured. Extendable.
  • Object-oriented. Data-oriented.
  • Infinite documentation. Browsable sources.
  • Hundred of file formats supported. Unique binary format.
  • Royaltie fee. Free and unlicensed.
  • 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: bitsquid, stb, rlk, krig, mio, tigr, jo.

Todo ᕕ(ᐛ)ᕗ

Screenshots

01

Project structure, build system and makefiles. demo.gif

02

Window creation and basic framework. demo.png

03

Audio. demo.png

Releases

v001_Monkey3_Icarus, v000_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

  • .git/, dot folders are always ignored.
  • editor/, generic 3d editor and viewer.
  • engine/, engine runtime.
  • games/, all your game sources here.
  • tools/, build & data pipeline that imports foreign data.

Download

Build

AVA as engine:

  • Compile the amalgamated engine.c source file to get a functional game engine.
  • Compile your game as a dynamic library and place it near the AVA executable.
  • Tip: Rename both executable and dynamic library as desired. Ie, game.exe with game.dll will work.
  • 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:

  • 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) /

Licensing

  • The project is multi-licensed: MIT-0, Zero-BSD or Unlicense. Pick one.

Alternatives

amulet, anvil, aroma, blendelf, chickpea, corange, ejoy2d, hate, island, juno, love, mini3d, mio, openframeworks, openkore, pez, moon, punity, roam, sushi, tigr,


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK