Awesome Playdate

A list of awesome resources for game development on Panic's Playdate console.
⚠️ Links may include spoilers
Contents
Game Development
Programming Frameworks & Languages
Pulp + Pulpscript
A "no-code alternative to the full SDK", Pulp provides a "click-and-place" game editor right in your browser.
Articles on Pulp + Pulpscript
Lua
Playdate SDK
Panic publishes two versions of their SDK: a high-level API for Lua, similar to LÖVE, and a lower-level C library for applications with higher performance needs.
Official
Unofficial
Playdate SDK Previews
Lua Libraries
The following libraries are expected to work well-enough on the Playdate:
- AnimatedSprite - A lua-based library for animating sprites. Containing finite state machine, json configuration and plugNplay behaviour.
- deep - An "action-queue" library; helpful for things like z-indexing (although the Playdate already has z-index support in its draw ordering).
- GFXP - A library with a collection of dithering patterns for the Playdate. An online version of the editor can be seen here.
- Knife - A collection of useful micro-modules for Lua.
- Jumper - A pure Lua pathfinding library for grid-based games.
- lua-star - A* pathfinding in pure Lua.
- middleclass - A simple OOP library for Lua that introduces inheritance, operator overloads, static variables, and mixin support.
- Noble Engine - Noble Engine is a Lua-based game engine library built on top of the Playdate SDK that offers a variety of helpful features.
- profile.lua - Performance profiling for Lua applications.
- rxi/classic - A tiny class module for Lua. Attempts to stay simple and provide decent performance by avoiding unnecessary over-abstraction.
- rxi/json.lua - A lightweight JSON library for Lua.
- rxi/lume - A collection of functions for Lua, geared towards game development.
- rxi/shash - A simple, lightweight spatial hash for Lua.
- rxi/tick - A small Lua module that simplifies the calling of functions at a set interval or after a delay.
- tiny-ecs - An entity component system in pure Lua.
- vector.lua - An alternative 2D vector library for Lua.
- bump.lua - A 2D colission detection library.
- philanc/plc - Pure Lua Crypto. Crpytographic functions and utilities implemented in pure Lua.
- Keyboard Based Menu - A menu that uses the playdate's keyboard to navigate and select.
LOVE
The Lua-based LÖVE framework offers a similar API to the Playdate Lua SDK, useful for prototyping before the public release of the Playdate SDK.
See love2d-community/awesome-love2d for additional resources.
C
- Playdate Game Development in C - Alberto Benavent Ramón's Bachelor's Thesis in Multimedia Engineering, explores the hardware and software of the Playdate
- Taxman Engine - A 2D, platform-independent game engine designed for the Playdate. Online demo here.
- Prismatic Engine - A 2D game engine designed for faster prototyping and simplified development with the Playdate C API.
Low-level Hardware Documentation & Datasheets
This information was gleaned from a developer preview unit and screenshots.
Experimental & Other
These projects represent experiments with the Playdate. Use at your own risk.
- Crankstart - An experimental Rust crate to write games for the Playdate in Rust.
- playdate-rs - Unofficial Rust binding for Playdate C API.
- playdate4j - Unofficial Java binding for Playdate C API.
- playdate-nim - Nim bindings with extra features for the Playdate SDK.
- VSCode-PlaydateTemplate - VSCode autocompletion with the Playdate simulator. For Windows & Linux.
- VSCode-PlaydateTemplateForLinux - VSCode autocompletion with the Playdate simulator. Linux based system only.
- playdate-vscode-build-macos - VSCode one click build and simple starter template. macOS only.
- mini3d-plus - 3D engine based on the mini3d library provided in the SDK examples.
- pd-usb - JavaScript librarty for interacting with a Playdate connected over USB.
- playbit: Build cross-platform Playdate games, create build scripts, and utilize preprocessor macros!
- GitHub Action: get-playdate-sdk Installs the Playdate SDK in your GitHub Actions Workflows
- pd.sh: A shell script to create a new project from a template, run/stop simulator directly from the terminal.
- Tiled - 2D map editor
- Thrshold - Figma plugin to apply a threshold effect filter
- LDtk - A modern 2D level editor with a strong focus on user-friendliness
- PlaydateLDtkImporter - Load tilemaps created with LDtk in playdate games
Development Concepts
Game Programming Patterns
Graphics & Art
Physics
Procedural Generation
Graphics
Fonts
Open Source Playdate Games & Example Code
Tutorials & How-Tos
Playdate SDK
Pulp
- Pulp Pong - How to recreate the all-time classic Pong
Playdate Games & Dev Blogs
Social
Discussion groups
Accounts to follow
Official Playdate accounts
Game Dev Accounts
Playdate & Panic
Third-party Devs
Contributing
Contributions welcome! Read the contribution guidelines
Official Links
News, Background, and Fluff
Panic & TE Announcements