{"id":21672819,"url":"https://github.com/jasonliang-dev/spry","last_synced_at":"2025-04-12T04:07:47.322Z","repository":{"id":171807499,"uuid":"648432990","full_name":"jasonliang-dev/spry","owner":"jasonliang-dev","description":"2D game framework made for rapid prototyping","archived":false,"fork":false,"pushed_at":"2024-01-29T07:53:59.000Z","size":26925,"stargazers_count":13,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T04:07:36.813Z","etag":null,"topics":["c","cpp","gamedev","lua"],"latest_commit_sha":null,"homepage":"https://jasonliang.js.org/spry/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasonliang-dev.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-06-02T00:56:28.000Z","updated_at":"2024-11-21T11:44:40.000Z","dependencies_parsed_at":"2024-11-25T13:48:27.426Z","dependency_job_id":null,"html_url":"https://github.com/jasonliang-dev/spry","commit_stats":null,"previous_names":["jasonliang-dev/spry"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonliang-dev%2Fspry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonliang-dev%2Fspry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonliang-dev%2Fspry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonliang-dev%2Fspry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasonliang-dev","download_url":"https://codeload.github.com/jasonliang-dev/spry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514224,"owners_count":21116903,"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":["c","cpp","gamedev","lua"],"created_at":"2024-11-25T13:32:52.970Z","updated_at":"2025-04-12T04:07:47.283Z","avatar_url":"https://github.com/jasonliang-dev.png","language":"C","readme":"# Spry\n\n[Spry](https://jasonliang.js.org/spry/) is a 2D game framework made for rapid\nprototyping.\n\n- [Download Spry](https://github.com/jasonliang-dev/spry/releases)\n- [Quick Start](https://jasonliang.js.org/spry/quick-start.html)\n- [API reference](https://jasonliang.js.org/spry/docs.html)\n\n## Basic example\n\nThe following code creates a window and draws `Hello, World!` to the screen.\n\n```lua\nfunction spry.start()\n  font = spry.default_font()\nend\n\nfunction spry.frame(dt)\n  font:draw('Hello, World!', 100, 100)\nend\n```\n\n## Spry vs. LÖVE\n\nSpry takes heavy inspiration from [LÖVE](https://love2d.org/). Below is a\nnon-exhaustive list of differences between the two:\n\n- Spry's API uses short function names more suitable for prototyping.\n- Spry implicitly loads all Lua scripts in a project.\n- Spry projects can be deployed to the web.\n- Spry has hot reload support for images, sprites, and tilemaps.\n- Spry can load Aseprite and LDtk files without needing to convert/export\n  assets to `.json`. LÖVE cannot load these files directly.\n- Spry is a single executable, weighting in at about 1.6mb (0.8mb zipped).\n  LÖVE is 10mb.\n- LÖVE uses LuaJIT 2.1. Spry uses PUC Lua 5.4.\n- LÖVE has lots of documentation and community support.\n- LÖVE is mature, stable, and battle-tested.\n- LÖVE uses `conf.lua` for configuration options. Spry does not need a\n  separate config file.\n- LÖVE has more overall features, such as system threads, touchscreen support,\n  filesystem access, gamepad input, and networking sockets.\n\n## Run the examples\n\nThis repository includes some project examples. You can run them with the\nfollowing commands:\n\n```sh\nspry examples/basic\nspry examples/planes\nspry examples/dungeon\nspry examples/jump\nspry examples/boxes\n```\n\n## Building from source\n\nRequires CMake and one of the following C/C++ compilers depending on the\nplatform:\n\n- Visual Studio for Windows\n- Clang for Linux\n- Emscripten for web browsers\n\nOther compilers might work, but they haven't been tested.\n\nIn the command line:\n\n```sh\nmkdir build\ncd build\ncmake .. # This command probably looks different\ncmake --build .\n```\n\nThe first `cmake` command might need extra flags depending on the environment.\nFor example, the command below generates a release build for a Linux machine\nthat has both `gcc` and `clang` installed, since CMake would likely choose\n`gcc` over `clang`:\n\n```sh\ncmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Release ..\n```\n\nThis command should be used when building for web browsers:\n\n```sh\nemcmake cmake -DCMAKE_BUILD_TYPE=Release ..\n```\n\n## Shoutouts\n\nSpecial thanks to:\n\n- floooh, for making [Sokol](https://github.com/floooh/sokol).\n- RandyGaul, for making [cute_headers](https://github.com/RandyGaul/cute_headers).\n- Erin Catto for making [Box2D](https://github.com/erincatto/box2d).\n- Casey Muratori, for showing me that I don't need to a huge engine to make\n  games through [Handmade Hero](https://handmadehero.org/).\n- rxi, for making [lite](https://github.com/rxi/lite). It was my introduction\n  to creating programs with Lua.\n- [LÖVE](https://love2d.org/), for being an awesome framework, and for being\n  the main inspiration for this project.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonliang-dev%2Fspry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasonliang-dev%2Fspry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonliang-dev%2Fspry/lists"}