{"id":25499957,"url":"https://github.com/oval-tutu/bootstrap-love2d-project","last_synced_at":"2025-04-10T05:52:59.101Z","repository":{"id":270724631,"uuid":"907020907","full_name":"Oval-Tutu/bootstrap-love2d-project","owner":"Oval-Tutu","description":"LÖVE Game Development \u0026 Automated Build System ⚡","archived":false,"fork":false,"pushed_at":"2025-03-11T18:33:51.000Z","size":2684,"stargazers_count":77,"open_issues_count":7,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-24T07:06:58.554Z","etag":null,"topics":["android","apk","appimage","ci","github-action","github-actions","html5","ide","ios","linux","love2d","love2d-framework","lua","macos","sfx-archive","template","vscode","windows"],"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/Oval-Tutu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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":"flexiondotorg"}},"created_at":"2024-12-22T15:38:51.000Z","updated_at":"2025-03-23T11:02:47.000Z","dependencies_parsed_at":"2025-02-18T18:45:08.043Z","dependency_job_id":"1c763948-db2d-4a07-bbae-2dc4a4e828c0","html_url":"https://github.com/Oval-Tutu/bootstrap-love2d-project","commit_stats":null,"previous_names":["oval-tutu/love2d-vscode-template","oval-tutu/bootstrap-love2d-project"],"tags_count":11,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oval-Tutu%2Fbootstrap-love2d-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oval-Tutu%2Fbootstrap-love2d-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oval-Tutu%2Fbootstrap-love2d-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oval-Tutu%2Fbootstrap-love2d-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oval-Tutu","download_url":"https://codeload.github.com/Oval-Tutu/bootstrap-love2d-project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166927,"owners_count":21058480,"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":["android","apk","appimage","ci","github-action","github-actions","html5","ide","ios","linux","love2d","love2d-framework","lua","macos","sfx-archive","template","vscode","windows"],"created_at":"2025-02-19T03:28:33.368Z","updated_at":"2025-04-10T05:52:59.090Z","avatar_url":"https://github.com/Oval-Tutu.png","language":"Lua","funding_links":["https://github.com/sponsors/flexiondotorg"],"categories":[],"sub_categories":[],"readme":"# LÖVE Game Development \u0026 Automated Build System\n\nTurn your [LÖVE](https://love2d.org/) game ideas into polished multi-platform releases with this powerful template! Featuring professional IDE integration, automated builds, and everything you need to go from prototype to published game. Built for LÖVE 💕\n\n- 🛑 **Don't fork this repository directly!**\n- 🟢 [**Create a new repository from this template**](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for your game.\n\n## Features\n\n- 🗂️ Organized with [Workspaces](https://code.visualstudio.com/docs/editor/workspaces)\n  - 🌕 Rich Lua language features with [Lua Helper](https://marketplace.visualstudio.com/items?itemName=yinfei.luahelper)\n    - \u003csmall\u003eSuperior, high-performance, cross-platform compatible Language Server Protocol for Lua. And so much more.\u003c/small\u003e\n    - \u003csmall\u003e`.luarc.json` is included for people wanting to use [Lua Language Server](https://marketplace.visualstudio.com/items?itemName=sumneko.lua)\u003c/small\u003e\n  - 🩷 [Intellisense for the LÖVE API](https://marketplace.visualstudio.com/items?itemName=pixelbyte-studios.pixelbyte-love2d)\n  - 🐛 Debugging with [*Second* Local Lua Debugger](https://marketplace.visualstudio.com/items?itemName=ismoh-games.second-local-lua-debugger-vscode)\n    - \u003csmall\u003eA maintained fork of the original [Local Lua Debugger](https://marketplace.visualstudio.com/items?itemName=tomblind.local-lua-debugger-vscode)\u003c/small\u003e\n  - 🎑 Deterministic Lua code formatting with [StyLua](https://marketplace.visualstudio.com/items?itemName=JohnnyMorganz.stylua)\n  - 👨‍💻 Consistent coding styles with [Editorconfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)\n  - ️⛱️ [Shader languages support](https://marketplace.visualstudio.com/items?itemName=slevesque.shader)\n  - 🐙 [GitHub Local Actions](https://marketplace.visualstudio.com/items?itemName=SanjulaGanepola.github-local-actions)\n  - ️👷 Automated builds of the `.love` file from within the IDE\n- 📦 GitHub Actions for automated builds - compatible with [act](https://nektosact.com/)\n  - 🤖 Android (.aab and .apk)\n  - 📱 iOS (.ipa)\n  - 🌐 HTML5\n  - 🐧 Linux (.AppImage and tarball)\n  - 🍏 macOS (App bundle and .dmg Disk Image)\n  - 🪟 Windows (Installer, SFX .exe and .zip)\n  - 🔐 [lua-https](https://github.com/love2d/lua-https) built-in to LÖVE 11.5\n  - ⤴️ Automatic publishing to [itch.io](https://itch.io/)\n- ️⚙️ [Shared product configuration](game/product.env) between the game and the GitHub Actions\n- 🎮 [SteamOS DevKit](https://gitlab.steamos.cloud/devkit/steamos-devkit) integration\n- 📊 Integrated performance metrics overlay\n- ️❄️ Nix flake to provision a dev shell\n\n### Prerequisites\n\n- [Visual Studio Code](https://code.visualstudio.com/) or [VSCodium](https://vscodium.com/)\n- [LÖVE 11.5](https://love2d.org/) (*currently only 11.5 is supported*)\n  - **`love` should be in your `PATH`**\n- `bash`\n- `7z`\n- [`miniserve`](https://github.com/svenstaro/miniserve) (*optional ️for local testing of HTML builds*)\n\n## Platform Support\n\n| Platform | Artifact Type | Extension        | Store      | lua-https |\n|----------|---------------|------------------|------------|-----------|\n| Android  | App Bundle    | `.aab`           | Play Store | ✅        |\n| Android  | Package       | `.apk`           | Itch.io    | ✅        |\n| iOS      | App Archive   | `.ipa`           | App Store  | ️🚧        |\n| Linux    | AppImage      | `.AppImage`      | Itch.io    | ✅        |\n| Linux    | Tarball       | `.tar.gz`        | Steam      | ✅        |\n| macOS    | App Bundle    | `.app.zip`       | Steam      | ✅        |\n| macOS    | Disk Image    | `.dmg`           | Itch.io    | ✅        |\n| Web      | HTML5         | `-html.zip`      | Itch.io    | ❌        |\n| Windows  | Install       | `-installer.exe` | Itch.io    | ✅        |\n| Windows  | SFX           | `.exe`           | Itch.io    | ✅        |\n| Windows  | ZIP           | `.zip`           | Steam      | ✅        |\n| LÖVE     | Game          | `.love`          | -          | ️️✔️        |\n\n- The Store column indicates which store front the artifact is best suited for.\n- The lua-https column indicates if supplemental HTTPS support is included with LÖVE 11.5 builds\n  - The `.love` file includes https native libraries for supported platforms, see [**USAGE.md**](USAGE.md) for more details.\n\n## Quick Start\n\n- **Don't fork this repository directly!**\n- [**Create a new repository from this template**](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for your game, then clone that repository.\n- Open the `Workspace.code-workspace` file with [Visual Studio Code](https://code.visualstudio.com/) or [VSCodium](https://vscodium.com/)\n  - You will be prompted that there are recommended extensions.\n    - Click *'Install'*\n- Remove our example *\"game\"* by:\n  - Rename `game/main.template.lua` to `game/main.lua`.\n  - Delete `game/eyes` directory.\n- Configure [`game/product.env`](game/product.env) and [`game/conf.lua`](game/conf.lua) with the settings specific to your game.\n  - Disable any platforms you do not want to target.\n  - Full details on configuration can be found in the [**USAGE.md**](USAGE.md) file.\n- Replace `resources/icon.png` with your game's high-resolution icon.\n- If you are targeting Android, you need to create a keystore for signing your game; full details are in the [**USAGE.md**](USAGE.md) file.\n- If you want to publish your game to [itch.io](https://itch.io/), you need to add [`BUTLER_API_KEY`](https://itch.io/user/settings/api-keys) to your GitHub repository; full details are in the [**USAGE.md**](USAGE.md) file.\n\n### Running\n\n- Press \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eF5\u003c/kbd\u003e to **Run** the game.\n- Press \u003ckbd\u003eF5\u003c/kbd\u003e to **Debug** the game.\n  - In debug mode you can use breakpoints and inspect variables.\n  - This does have some performance impact though.\n  - You can switch to *Release mode* in the `Run and Debug` tab (\u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eD\u003c/kbd\u003e)\n\n### Building\n\nBuilds a date stamped `.love` file and puts it in the `builds` folder.\n\n- Press \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eB\u003c/kbd\u003e to **Build** the game.\n\n### Performance Metrics\n\nWhen the game is running you can access the performance metrics overlay by pressing \u003ckbd\u003eF3\u003c/kbd\u003e.\n\n#### Keyboard Controls\n\n- \u003ckbd\u003eF3\u003c/kbd\u003e: Toggle Overlay\n- \u003ckbd\u003eF5\u003c/kbd\u003e: Toggle VSync (only when benchmark is active)\n\n#### Controller Controls\n\n- Select + A: Toggle Overlay\n- Select + B: Toggle VSync\n\n#### Touch Controls\n\n- Double Tap top right corner: Toggle Overlay\n- Double Tap the overlay itself: Toggle VSync\n\n### How to Register/Unregister Particle Systems for performance metrics\n\n#### Basic Usage\n\n```lua\n-- When creating a particle system\nlocal particleSystem = love.graphics.newParticleSystem(imageData)\noverlayStats.registerParticleSystem(particleSystem)\n\n-- Later, when you no longer need the particle system\noverlayStats.unregisterParticleSystem(particleSystem)\n```\n\n#### Implementation Details\n\n- **Where to register**: After creating any particle system you want tracked in your stats overlay\n- **When to register**: Immediately after creating the particle system, typically in your load/initialization code\n- **When to unregister**: When destroying the particle system or when it's no longer relevant to track\n- **Implementation note**: Only active particle systems (`particleSystem:isActive()`) are counted\n\n## Detailed Documentation\n\n- [**USAGE.md**](USAGE.md)\n\nFor more detailed technical information about development workflows, build configurations, and deployment processes, please see [**USAGE.md**](USAGE.md). This companion document covers:\n\n- Complete project structure and file organization\n- Project configuration and settings\n- Local development and GitHub Actions workflow details\n- Platform-specific build configurations\n- Release management and publishing workflows\n- Web deployment configurations\n- Android signing setup\n- Local testing procedures\n\n## References\n\nInspired by and adapted from [LOVE VSCode Game Template](https://github.com/Keyslam/LOVE-VSCode-Game-Template), [LÖVE Actions](https://github.com/love-actions) and [love.js player](https://github.com/2dengine/love.js) from [2dengine](https://2dengine.com/).\n\n\n### Credits\n\nThe sample \"game\" included in this template uses the following assets:\n- [Aargh! (male screams)](https://opengameart.org/content/aargh-male-screams)\n- [Eyeballs](https://opengameart.org/content/eyeballs)\n- [Fireplace Sound Loop](https://opengameart.org/content/fireplace-sound-loop)\n- [Parallax Backgrounds](https://opengameart.org/content/3-parallax-backgrounds)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foval-tutu%2Fbootstrap-love2d-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foval-tutu%2Fbootstrap-love2d-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foval-tutu%2Fbootstrap-love2d-project/lists"}