gopdsdk v1.0.0 - Stable Offline Playdate Go SDK
gopdsdk v1.0.0 is the first stable release of the independent, cross-platform Go SDK for building offline Playdate games.
This release freezes the documented public API, ownership and error contracts, callback ordering and lifetime rules, CLI surface, device Go profile, compatibility policy, and semantic-versioning guarantees for the v1.x line.
Highlights
- Complete public Go contract for materially useful offline Playdate SDK capabilities.
- Stackless
playdate/schedulescheduler with:- fixed task capacity;
- deterministic FIFO execution;
- cancellation-safe task IDs;
- delayed, deadline, and repeating tasks;
- bounded non-blocking queues;
- deterministic round-robin polling.
- Bounded, reflection-free
playdate/jsonpackage. - Verified conservative-device support for:
- normal-return
defer; - the documented public reflection subset;
runtime.GC;- pure
time.Durationparsing and formatting.
- normal-return
- Complete offline audio graph support, including:
- nested channel routing;
- borrowed post-effects channel outputs;
- dry and wet level modulation signals;
- LFO initial phase, deterministic random seeding, and continuous global update.
- Explicit ownership, close, expiry, callback, and termination behavior across native resources.
- Stable SemVer, migration, support, compatibility, and deprecation policies.
Device Go profile
Device applications use sequential Go compiled with TinyGo, conservative GC, scheduler none, and fail-stop panic handling.
Goroutines, blocking channels, select, sleep, timers, and tickers are replaced by playdate/schedule. recover, finalizers, application cgo, and undocumented reflection paths remain unsupported. See API.md for the exact contract.
Verification
The release passed:
- formatting, the complete Go test suite, vet, and
git diff --check; - external-consumer CLI tests;
- native CI on Windows, macOS, and Linux;
- the Linux race detector;
- official Playdate SDK 3.1.1 Simulator builds;
- TinyGo 0.41.1 conservative hard-float device builds;
- USB deployment and physical Playdate execution;
- the combined Simulator and physical-device acceptance regression;
- conservative-GC soak and bounded memory/resource checks;
- lifecycle cleanup and unchanged post-run crash/error logs.
Official SDK, Simulator, device-build, USB, and physical-device verification is currently established on Windows. macOS and Linux are native-CI tested, but their official SDK and hardware levels remain unverified.
Verified toolchain
- Go 1.26.5
- Playdate SDK 3.1.1
- TinyGo 0.41.1 with LLVM 20.1.1
- Arm GNU Toolchain GCC 15.3.1
Other versions are not rejected solely by version number, but remain unverified until the relevant probe and acceptance level passes.
Install
go run github.com/Djunichi/gopdsdk/cmd/gopdsdk@v1.0.0 doctor
go run github.com/Djunichi/gopdsdk/cmd/gopdsdk@v1.0.0 init --module example.com/my-game ./my-game
cd my-game
go mod tidy