❤️ 2D Game Framework with ChaiScript
Go to file
Ryan 'Swingflip' Hamlin 3669d29731 Added A7A7
2018-11-05 20:36:35 +00:00
docs 0.28.0 2018-10-07 12:29:45 -04:00
examples 0.28.0 2018-10-07 12:29:45 -04:00
jni Fix up android jni makefiles 2018-04-12 15:47:57 -05:00
src 0.28.0 2018-10-07 12:29:45 -04:00
test 0.28.0 2018-10-07 12:29:45 -04:00
vendor Revert "Exclude this from static linking targets" 2018-10-10 05:10:33 +02:00
.editorconfig Initial commit 2017-06-19 15:30:00 -04:00
.gitignore Remove compressing the JSON savestate 2018-09-19 21:24:43 -04:00
.gitmodules Add love.data.encode() (#278) 2018-09-02 18:43:07 -04:00
.travis.yml travis: Only build branches master and dev (#296) 2018-09-07 23:29:54 -04:00
appveyor.yml appveyor: Disable email notifications 2018-09-13 22:47:19 -04:00
CHANGELOG.md 0.28.0 2018-10-07 12:29:45 -04:00
configure 0.21.0 (#243) 2018-05-02 10:14:53 -04:00
COPYING styles: Update coding style 2018-03-27 00:21:26 -04:00
link.T Add ChaiScript 2017-06-19 23:03:52 -04:00
Makefile Added A7A7 2018-11-05 20:36:35 +00:00
Makefile.common Update Makefile.common 2018-10-10 05:11:20 +02:00
Makefile.libretro Added A7A7 2018-11-05 20:36:35 +00:00
README.md Update documentation 2018-10-05 23:31:12 -04:00

ChaiLove ❤️

Travis Appveyor platform libretro Documentation

ChaiLove is an awesome framework you can use to make 2D games in ChaiScript. It's free, open-source, and works on Windows, Mac OS X, Linux, Android, and ARM through libretro/RetroArch.

Floppy Bird Gameplay

Usage

ChaiLove is a libretro core, which can be run through RetroArch. Floppy Bird is a free game you can download and play...

  1. Run RetroArch
  2. Online UpdaterCore UpdatorChaiLove
  3. Online UpdaterContent DownloaderChaiLoveFloppy Bird
  4. Load ContentDownloadsFloppy Bird.chailove

Alternatively, you can run the ChaiLove core through RetroArch via the command line:

curl -o FloppyBird.chailove https://github.com/RobLoach/ChaiLove-FloppyBird/releases/download/0.27.0/FloppyBird.chailove
retroarch -L chailove_libretro.so FloppyBird.chailove

API

The ChaiLove API is roughly inspired by the LÖVE API. The following main.chai is a simple Hello World example:

global logo
global x = 10.0f

def load() {
	logo = love.graphics.newImage("logo.png")
}

def draw() {
	love.graphics.print("Hello World!", 400, 300)
	love.graphics.draw(logo, x, 100)
}

def update(dt) {
	x = x + 20.0f * dt
}

To run it, execute the following:

retroarch -L chailove_libretro.so main.chai

See the ChaiLove API for coverage of all the callbacks and methods in ChaiLove.

Development

The following are some notes about the development process behind ChaiLove.

Compiling

ChaiLove requires a C++14 compiler, and has been tested with g++>=5.2. To compile it, run:

make

Testing

The automated tests can be run with:

make test

Run the testing suite through RetroArch with:

retroarch -L chailove_libretro.so test/main.chai

Documentation

See the ChaiLove API documentation. Build it through Doxygen by using:

make docs

Workflow

ChaiLove uses modified Gitflow and Semantic Versioning workflow...

  1. New features and fixes are added to the dev branch
  2. When a release is put out, the dev branch is merged to master, and a tag is made

Contributors

The following individuals contributed to ChaiLove in some way: