Build interactive comics for the Playdate console.
Provide Panels with a Lua table that describes the sequences in your comic (scroll direction, panel sizes, text, animation and effects) along with your layered graphics. Panels will handle layout, scrolling, animation, and even chapter navigation for you.
Comics built with Panels can support these features:
- layered, parallax scrolling
- nested panels
- sequences with different scroll directions
- manual (crank) scrolling and auto advancing (panel-by-panel)
- panel effects like shake and blink
- animated transitions between sequences
- animations and transitions within panels based on scroll position
- animated text layers
- panels with fully custom render functions
- branching "choose-your-own-adventure" storylines
Check out the full set of documentation here:
- Playdate SDK
- Playdate Console (optional)
- Clone the Panels Project Template. This is a Template Repo. Click "Use this template" to create your own fresh repo with all the contents of the project template.
- The template project includes the Panels framework as a git submodule. Be sure to properly initialize the submodule when cloning the repo.
- Start editing table in
myComicData.lua
.
- Clone this repo into your project into a
libraries
folder. - Inside your
main.lua
file import Panels. - Create or import your
comicData
table. - Start Panels with your
comicData
table as the sole argument.
import "libraries/panels/Panels"
local comicData = {
-- comic data goes here...
}
Panels.start(comicData)
- 📺 Watch these Tutorial Videos to get up to speed quickly.
- 🤖 Chat with the Panels Partner custom GPT to get answers to questions about your specific project.
- 💬 Post your question in the Playdate Squad Discord.
Add feature requests to the Issues page.
Include a description of the general functionality you need, along with your preferred implementation (if you have one). Please search first to see if someone else has already created an issue for your feature. If so, you can add a vote or comment to show your support.
File bug reports on the Issues page.
Each bug should be listed as a separate issue. Please search first to see if someone else has already filed the bug, and list all steps needed to reproduce the issue in the smallest possible project.
If you would like to contribute a feature or bug fix please contact me first and let me know which issue you want work on. If there isn't yet an issue for your proposed change, go ahead and write one.
Panels is licensed under a Creative Commons Attribution 4.0 International License.
TLDR: You can use this code (or modified versions) to create anything you want, public or private, free or commercial. For attribution, please retain the Panels credit (with URL and QR code) on the Credits page of your game so that others may find their way here.
👨🏻🦲❤️🛠