{"id":16186849,"url":"https://github.com/libretro/libretro-chailove","last_synced_at":"2025-06-17T03:10:52.367Z","repository":{"id":22212715,"uuid":"94843952","full_name":"libretro/libretro-chailove","owner":"libretro","description":":heart: 2D Game Framework with ChaiScript","archived":false,"fork":false,"pushed_at":"2025-02-13T20:44:38.000Z","size":33751,"stargazers_count":73,"open_issues_count":32,"forks_count":23,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-02-13T21:32:36.781Z","etag":null,"topics":["chailove","chaiscript","libretro"],"latest_commit_sha":null,"homepage":"https://raw.githack.com/libretro/libretro-chailove/docs/index.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libretro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-20T03:04:20.000Z","updated_at":"2025-02-13T20:44:42.000Z","dependencies_parsed_at":"2023-01-11T21:31:49.758Z","dependency_job_id":"26412167-d4d0-41a0-a5e4-339beb4766e6","html_url":"https://github.com/libretro/libretro-chailove","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/libretro/libretro-chailove","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Flibretro-chailove","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Flibretro-chailove/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Flibretro-chailove/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Flibretro-chailove/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libretro","download_url":"https://codeload.github.com/libretro/libretro-chailove/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libretro%2Flibretro-chailove/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260281856,"owners_count":22985633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chailove","chaiscript","libretro"],"created_at":"2024-10-10T07:19:44.090Z","updated_at":"2025-06-17T03:10:52.346Z","avatar_url":"https://github.com/libretro.png","language":"C++","funding_links":[],"categories":["Game Development"],"sub_categories":[],"readme":"# ChaiLove :heart:\n\n[![Tests](https://github.com/libretro/libretro-chailove/actions/workflows/build.yml/badge.svg)](https://github.com/libretro/libretro-chailove/actions/workflows/build.yml)\n[![platform libretro](https://img.shields.io/badge/platform-libretro-brightgreen.svg)](https://git.libretro.com/libretro/libretro-chailove/-/pipelines)\n[![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](https://rawgit.com/libretro/libretro-chailove/docs/)\n\nChaiLove is an awesome framework you can use to make 2D games in [ChaiScript](http://chaiscript.com/). It's free, open-source, and works on Windows, Mac OS X, Linux, Android, and ARM through [libretro](https://www.libretro.com)/[RetroArch](http://retroarch.com).\n\n[![Floppy Bird Gameplay](docs/screenshot.png)](https://www.youtube.com/watch?v=RLVwTh6qDFI\u0026hd=1)\n\n## Gallery\n\n- [Floppy Bird](https://github.com/RobLoach/ChaiLove-FloppyBird)\n- [Nyan Cat](https://github.com/RobLoach/ChaiLove-NyanCat)\n- [Snake](examples/snake/Snake.chai)\n- [Game of Life](https://github.com/RobLoach/ChaiLove-GameOfLife)\n- [... and more](https://github.com/topics/chailove)\n\n## Installation\n\nChaiLove is a [libretro](https://www.libretro.com/) core, which can be installed through [RetroArch](http://retroarch.com/).\n\n1. Run [RetroArch](http://retroarch.com/)\n2. *Online Updater* → *Core Updator* → *ChaiLove*\n\n## Usage\n\n[Floppy Bird](https://github.com/RobLoach/ChaiLove-FloppyBird) is a [free game you can download and play](https://www.youtube.com/watch?v=RLVwTh6qDFI)...\n\n1. Run [RetroArch](http://retroarch.com/)\n2. *Online Updater* → *Content Downloader* → *ChaiLove* → *FloppyBird.chailove*\n3. *Load Content* → *Downloads* → *FloppyBird.chailove*\n\nAlternatively, you can run the ChaiLove core through RetroArch via the command line:\n\n``` bash\ncurl -o FloppyBird.chailove https://github.com/RobLoach/ChaiLove-FloppyBird/releases/download/1.0.1/FloppyBird.chailove\nretroarch -L chailove_libretro.so FloppyBird.chailove\n```\n\n## API\n\nThe [ChaiLove API](https://raw.githack.com/libretro/libretro-chailove/docs/index.html) is roughly inspired by the [LÖVE API](https://love2d.org/wiki/Main_Page). The following `main.chai` is a [simple Hello World example](examples/simple/main.chai):\n\n``` lua\nglobal logo\nglobal x = 10.0f\n\ndef load() {\n\tlogo = love.graphics.newImage(\"logo.png\")\n}\n\ndef draw() {\n\tlove.graphics.print(\"Hello World!\", 400, 300)\n\tlove.graphics.draw(logo, x, 100)\n}\n\ndef update(dt) {\n\tx = x + 20.0f * dt\n}\n```\n\nTo run it, execute the following:\n\n``` bash\nretroarch -L chailove_libretro.so main.chai\n```\n\nSee the [ChaiLove API](https://raw.githack.com/libretro/libretro-chailove/docs/index.html) for coverage of all the callbacks and methods in ChaiLove.\n\n## Development\n\nChaiLove is built with [pntr_app](https://github.com/robloach/pntr_app) under the hood to handle its graphics, audio and input.\n\n### Compiling\n\nChaiLove requires a C++14 compiler, and has been tested with `g++\u003e=5.2`. To compile it, run:\n\n```\ngit submodule update --init\nmake\n```\n\n### Testing\n\nThe automated tests can be run with:\n\n```\nmake test\n```\n\nRun the testing suite through RetroArch with:\n\n```\nretroarch -L chailove_libretro.so test/main.chai\n```\n\n### Documentation\n\nSee the [ChaiLove API documentation](https://raw.githack.com/libretro/libretro-chailove/docs/index.html). Build it through [Doxygen](http://www.stack.nl/~dimitri/doxygen/) by using:\n\n```\nmake docs\n```\n\n## Contributors\n\nThe following individuals contributed to ChaiLove in some way:\n\n- [@RobLoach](http://github.com/robloach)\n- [@phcoder](https://github.com/phcoder) for the many builtbot fixes\n- [@webgeek1234](http://github.com/webgeek1234) for the Android support\n- [@r-type](https://github.com/r-type) for [sdl-libretro](https://github.com/r-type/sdl-libretro)\n- [@mudlord](https://github.com/mudlord) for the [libretro-common](https://github.com/libretro/libretro-common) audio system\n- [@orbea](http://github.com/orbea)\n- [@fetzerch](http://github.com/fetzerch)\n- [@bparker06](https://github.com/bparker06)\n- [@twinaphex](http://github.com/twinaphex)\n- [@ToKe79](https://github.com/ToKe79)\n- [@konsumer](https://github.com/konsumer)\n- [@baxysquare](https://github.com/baxysquare) for the [Logo](docs/chailove.png)\n\nAnd many others!\n\n## License\n\n[MIT](COPYING)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibretro%2Flibretro-chailove","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibretro%2Flibretro-chailove","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibretro%2Flibretro-chailove/lists"}