{"id":13633065,"url":"https://github.com/GamesRightMeow/playbit","last_synced_at":"2025-04-18T10:33:54.476Z","repository":{"id":37840166,"uuid":"411501275","full_name":"GamesRightMeow/playbit","owner":"GamesRightMeow","description":"Playbit is a framework for creating cross-platform Playdate games from a single Lua codebase.","archived":false,"fork":false,"pushed_at":"2024-11-06T16:45:17.000Z","size":1335,"stargazers_count":63,"open_issues_count":18,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-07T06:08:51.847Z","etag":null,"topics":["game-development","game-engine","love2d","lua","playdate","playdate-console"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/GamesRightMeow.png","metadata":{"files":{"readme":"docs/readme.md","changelog":null,"contributing":"docs/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"gamesrightmeow","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2021-09-29T02:16:11.000Z","updated_at":"2024-11-06T16:45:21.000Z","dependencies_parsed_at":"2023-10-03T02:59:46.979Z","dependency_job_id":"76dd4e4d-50b1-46e2-9b03-5ec3f4b8fa8e","html_url":"https://github.com/GamesRightMeow/playbit","commit_stats":{"total_commits":399,"total_committers":4,"mean_commits":99.75,"dds":"0.23057644110275688","last_synced_commit":"8252e970c7dcc9eb8d44364112501f9746c38f0d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GamesRightMeow%2Fplaybit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GamesRightMeow%2Fplaybit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GamesRightMeow%2Fplaybit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GamesRightMeow%2Fplaybit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GamesRightMeow","download_url":"https://codeload.github.com/GamesRightMeow/playbit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223779418,"owners_count":17201175,"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":["game-development","game-engine","love2d","lua","playdate","playdate-console"],"created_at":"2024-08-01T23:00:26.300Z","updated_at":"2025-04-18T10:33:54.465Z","avatar_url":"https://github.com/GamesRightMeow.png","language":"Lua","funding_links":["https://ko-fi.com/gamesrightmeow"],"categories":["Game Development"],"sub_categories":["Programming Frameworks \u0026 Languages"],"readme":"# Playbit\n\n![Playbit template running](media/playbit-example.gif)\n\nPlaybit is a framework for creating cross-platform [Playdate](https://play.date/) games from a single [Lua](https://www.lua.org/) codebase. To accomplish this, it has two key components:\n* A reimplemention of the [Playdate API](https://sdk.play.date/Inside%20Playdate.html) in [Love2D](https://love2d.org/).\n* A build system that utilizes [LuaPreprocess](https://github.com/GamesRightMeow/LuaPreprocess) to strip/inject platform dependent code.\n\n**⚠ IMPORTANT:** This project is in active development and has not reached a stable 1.0 release yet. Use in a production environment at your own risk. \n\n## Why should you use Playbit?\n\nIf you're looking for a framework for creating cross-platform Playdate games from a single Lua codebase, then that's Playbit's primary goal!\n\nHowever Playbit's features also can help improve your workflow when working on Playdate-only games too. For example:\n- [Builds scripts](build-scripts.md) allow you to create automated build configurations. Do you have a separate demo build and paid build? Create a separate build script for each!\n- Process assets at build-time with [file processors](file-processors.md) to generate more performant versions e.g. work directly with [Aseprite (.aseprite)](https://www.aseprite.org/) to retain layers, tags, and other features and then auto-generate PNGs at build-time.\n- Compile out blocks of code with [preprocessor flags](core-concepts.md#preprocessor-flags) that aren't relevant for builds e.g. add development tools to test builds without adding bloat to your final production builds.\n- Write more performant and maintainable code e.g. instead of calling `math.abs(num)` in a performance critical area (function calls can add up!) you can inline the method with a [macro](core-concepts.md#macros).\n\nAdditionally, if you're not creating a cross-platform game, all Playdate SDK functions are available to you since Playbit doesn't need to emulate them for Love2D.\n\n## Current features\n\n* Customizable preprocessor flags\n* Customizable build scripts\n* Process assets at build-time with file processors\n  * Export PNGs from [Aseprite (.aseprite)](https://www.aseprite.org/) files\n  * Convert [Caps](https://play.date/caps/) fonts to [BMFonts](https://www.angelcode.com/products/bmfont/)\n* Macro support (via LuaPreprocess's [macros](https://github.com/GamesRightMeow/LuaPreprocess/blob/master/docs/extra-functionality.md#insert))\n  * Compile asserts out for release builds (via LuaPreprocess's [ASSERT() macro](https://github.com/GamesRightMeow/LuaPreprocess/blob/master/docs/api.md#assert))\n* Automatic generation of pdxinfo file with auto-incrementing build number\n* A [template repo](https://github.com/GamesRightMeow/playbit-template), featuring:\n  * A working barebones example project\n  * Example build scripts for common configurations\n  * Pre-configured build tasks for VS Code.\n\nAdditionally, a core aspect of Playbit is the the implementation of Playdate API in Love2D. It's still a work-in-progress; more functions will be added over time. The following are currently available, with noted caveats:\n- `playdate.graphics`\n  - Basic drawing functions like `fillRect()`, `line()`, `circ()`, etc\n  - Push/pop contexts\n  - Draw modes - only `copy`, `fillWhite`, `fillBlack`\n- `playdate.image`\n- `playdate.imagetable`\n- `playdate.easingFunctions`\n- `playdate.font`\n  - Has limitations, see issue [#20](https://github.com/GamesRightMeow/playbit/issues/20).\n- `playdate.sound`\n  - Only `sampleplayer` and `fileplayer`\n- Some functions under the general `playdate` namespace\n  - Input (button presses, crank, etc)\n    - Supports remapping\n    - Supports keyboards and controllers\n  - `getCurrentTimeMilliseconds()`\n\nThis list is _not_ comprehensive. For complete details on currently implemented SDK functions, review the [source code](../playdate/) and [review open issues](https://github.com/GamesRightMeow/playbit/issues).\n\n## Documentation\nDocumentation can be found in the [docs](../docs/) folder. If you're new, it's recommended that you first read [Getting Started](getting-started.md).\n\nIf you want to jump straight in, create a new repository using the [Playbit template](https://github.com/GamesRightMeow/playbit-template).\n\n## Get help\nIf you want to report a bug, request documentation, or ask for feature: [open an issue](https://github.com/GamesRightMeow/playbit/issues).\n\nIf you want to ask a question, get help, or start a general discussion topic, you have several avenues:\n  - [Start a new Github discussion](https://github.com/GamesRightMeow/playbit/discussions)\n  - [Join official Discord server](https://discord.gg/PSt3aCcBtk)\n  - Join the [Playbit thread](https://discord.com/channels/675983554655551509/1161743444255965354) in the [Playdate Squad Discord](https://discord.gg/VDqzTmtHR7)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGamesRightMeow%2Fplaybit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGamesRightMeow%2Fplaybit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGamesRightMeow%2Fplaybit/lists"}