Hello Playdate
A minimal game built on the playdate-kit bindings: a bouncing box, a crank-aimed needle, button handling, a system menu item, and an FPS counter.
Build and run (Playdate Simulator)
With the Playdate SDK installed (and the one-time Scripts/install-pkgconfig.sh setup from the repository root done):
./build.sh
open -a "$HOME/Developer/PlaydateSDK/bin/Playdate Simulator.app" HelloPlaydate.pdx
The script compiles the game as a dylib, places it in Source/ next to pdxinfo, and runs the SDK's pdc to produce HelloPlaydate.pdx.
Device builds
The Makefile cross-compiles the game with Embedded Swift and packages a HelloPlaydate.pdx containing both the device binary and the simulator dylib. It needs:
- the Playdate SDK (
PLAYDATE_SDK_PATH, or the path in~/.Playdate/config), - the Arm GNU toolchain (
arm-none-eabi-gcc) onPATH, - a swift.org development-snapshot toolchain (Xcode's toolchain does not ship the Embedded Swift stdlib for the device target). A toolchain installed at
~/Library/Developer/Toolchainsis picked up automatically; otherwise passTOOLCHAINS=<bundle id>.
make
Swift code is compiled with -Osize by default; use make SWIFT_OPT=-O to favor speed over size. Sideload the pdx from the Playdate Simulator (Device > Upload Game to Device) or with the SDK's pdutil.
Make targets
All build targets package HelloPlaydate.pdx with the SDK's pdc. Note that every target — the simulator-only ones included — needs the device toolchain setup above, because the shared make rules resolve it up front; build.sh is the simulator flow without that requirement.
| Target | Effect |
|---|---|
make |
Build the device binary and the simulator dylib (alias: make all) |
make simulator |
Build the simulator dylib only |
make device |
Build the device binary only |
make run |
Build the simulator flavor and open the pdx in the Playdate Simulator |
make clean |
Remove the build/ and .build/ folders, the pdx, and the binaries copied into Source/ |