Podcast Summary: Game Development on the PICO-8 with Johan Peitz
Software Engineering Daily | November 27, 2025
Host: Joe Nash
Guest: Johan Peitz
Episode Overview
This episode delves into the world of game development on the PICO-8, a fantasy console that emulates vintage 8-bit hardware. Host Joe Nash interviews Johan Peitz, a prolific PICO-8 creator, exploring his journey, the unique appeal of building games within PICO-8's constraints, and how these limitations inspire creativity. They cover technical deep-dives, the PICO-8 toolchain, commercializing PICO-8 games, and the emergence of community-built tools like Picocad.
Key Discussion Points & Insights
Johan Peitz's Journey into Game Development and PICO-8
-
Early Days with Board Games and Computers ([01:36])
-
Johan loved board games as a kid and was captivated by the Commodore 128, which led him to explore making games on computers.
-
The simplicity and immediacy of platforms like the Commodore, Amiga (AMOS), and Flash/ActionScript influenced his taste for accessible, all-in-one development tools.
"You just launch it, there's a prompt, you can just start typing. Everything is testable from the get go. ... And for me, [PICO-8] is also similar." — Johan Peitz ([01:36])
-
-
Finding and Joining the PICO-8 Community ([03:45])
- Started with PICO-8 about 6-7 years ago, after it was more established.
- Navigated industry non-competes when balancing professional work and passion projects.
What is PICO-8? The Console Metaphor and Constraints
-
Defining the Platform ([04:32])
-
More than a game engine—PICO-8 is a "fantasy console," intentionally restricted in color (16), resolution (128x128), memory, and CPU time.
-
These restrictions force developers to make creative trade-offs.
"It's almost like a game like experience when you develop for it...making these trade-offs back and forth. And it's super rewarding when you actually get to fit your ideas into this extremely confined space." — Johan Peitz ([04:32])
-
-
The community is friendly, accessible: games are distributed natively via a BBS, and downloadable cartridges are .png files embedding code and assets ([13:12]).
Constraints as Creative Catalysts
-
Scope Control and the Sculptor Metaphor ([07:07])
-
PICO-8's limitations help avoid scope creep and force shipped projects.
-
Johan compares his process to sculpting: letting the "stone tell you what it wants to be," adapting ideas to fit what's possible.
"Whoops, I broke the tail. Can't really put that stone back on. Right. ... Didn't really turn out the way I wanted. But what changes do I make to the design?" — Johan Peitz ([07:30])
-
-
Technical Achievements as a Selling Point ([09:11])
- Doing something surprising within harsh constraints can become the core of a game's appeal, allowing for the removal of unnecessary 'fluff'.
The PICO-8 Development Environment & Tools
-
The All-in-One Philosophy ([10:00])
- Most tools are baked into PICO-8: code editor (Lua), sprite editor (128x128, 16 colors), tile map editor, sound and music editor (tracker).
- Sprite and tile map memory is shared—using more for one leaves less for the other, driving clever optimization ([10:42]).
- Lua is friendly but loose; "leaves you open to all the mistakes...no type checking" ([12:11]).
- Developers use hacks: repurposing sprite memory for music, custom compression, bespoke editors for advanced projects ([10:41]).
-
"Cart" Distribution and Multi-Cart Projects ([13:12])
-
A "cart" is a single file containing game code and assets, exported as a PNG image.
-
"Multi-karting" is used to overcome memory limits by chaining multiple carts (e.g., Golf Monday uses a separate cart for course data, [14:01]).
"...the image actually stores all the code, all the memory stuff you made, and the whole thing, which is a technical achievement in itself..." — Johan Peitz ([13:12])
-
Exporting & Commercializing PICO-8 Games
-
Cross-platform Export ([16:35])
- "Horribly easy" — PICO-8 exports Windows, Mac, Linux, and Raspberry Pi binaries out of the box.
- Most of Johan's sales are on Steam and Itch, and everything "just works" across platforms.
-
Business and Community Tensions ([34:26])
-
Feeling "guilt" about monetizing when so much of the community's spirit is open and free.
-
Donationware worked for early releases; building to a sustainable, modest profit through rapid releases.
-
Patreon and open-sourcing code via higher supporter tiers help reconcile commercial and community values ([39:17]).
"How do I break out of the dev community?" — Johan Peitz ([40:09])
-
Toolmaking Inside PICO-8: Picocad, Picosynth, and More
-
Tools Born of Necessity and Experimentation ([17:33])
-
Many tools started as game features, which then took on lives of their own (e.g., Picocad arose out of needing 3D models, Picosynth from springy cable prototyping).
"Usually I prototype stuff. If I find something that's fun, ... then the actual application doesn't matter so much to me." — Johan Peitz ([18:12])
-
-
Picocad: 3D Modeling in PICO-8 ([19:04])
-
Retro-inspired, four-view 3D modeling tool limited to cubes/primitive extrusion, with signature "chunky" style due to grid snapping and palette constraints.
-
The distinctiveness is partly intentional, partly a product of technical limitations.
"...you can have lights, so some sort of lighting and shading model on it... it's super simple. But the same way PICO-8 breeds this creativity..." — Johan Peitz ([19:04])
-
The Tech Behind 3D in PICO-8 ([23:36])
-
Built atop the included "dots3D" demo; uses tline for texturing along lines between points.
-
Perspective is faked—producing a PlayStation-1 aesthetic with jittery, "janky" movement.
"...PlayStation 1 art is a lot of people’s childhood." — Joe Nash ([25:39])
Lighting & Dithering Tricks ([25:59])
-
PICO-8 supports dithering patterns; light/dark is achieved by manipulating color bits and dithering faces according to angle.
"...I can use the dithered lighting module even on textured faces." — Johan Peitz ([27:18])
Extending and Reusing Code in PICO-8 ([29:58])
- A limited "import/include" exists, but reusability is hampered by needs for project-specific optimization.
- Custom UI, split functions, and input handling: all hand-rolled, often in unconventional ways due to constraints ([29:58], [32:24]).
Memorable Quotes & Notable Moments
-
On the Joy of Constraints:
"As you learn more about the program, you also know...how to bend the rules slightly...those super harsh restrictions, they aren’t really that harsh..." — Johan Peitz ([04:32])
-
On Technical Achievements:
"When you can fit that type of gameplay or technical solution into the game that people didn’t really think was possible...this becomes the main driver of the game." — Johan Peitz ([08:28])
-
On Exporting for Multiple Platforms:
"It's horribly easy. It's so easy. ... I've never tested the Windows builds, I just uploaded them and they're like 90% of my players use Windows, obviously. But it just works so well, so I don't even need to test it." — Johan Peitz ([16:35])
-
On Commercialization and Community:
"It felt like I stopped paying back to the community, so to speak...that was a bit difficult on a mental level." — Johan Peitz ([34:26])
-
On Picocad's Unique Visuals:
"...it promotes a certain chunkiness or roughness of the models...And that then stops stuff from bleeding through..." — Johan Peitz ([22:27])
Commercial Success and Distribution
- Itch.io vs. Steam vs. Patreon ([38:16])
- Built a following on Itch over years; better long tail vs. Steam’s short spikes.
- Patreon tiers: most supporters value access to source code over early access ([39:17]).
Challenges Breaking Out of the Developer Audience
-
PICO-8’s reputation and technical chops are part of the appeal—for developers.
-
On Steam, non-PICO-8 audiences might see hardware constraints simply as flaws, not features; clear expectation management is crucial ([40:45]).
"You have to live with that. And if it starts to slow down, you're doing it wrong." — Johan Peitz ([41:23])
Transitioning Beyond PICO-8
-
Using Love2D for Bigger Projects ([41:45])
- Ported "Cosmic Collapse" to Love2D for iOS, using a custom PICO-8-like API.
- "Coco's Delivery Service" and a future submarine game are in development using this expanded toolkit—keeping nostalgia but losing memory constraints (both blessing and curse) ([43:07]).
-
Thoughts on Picotron (PICO-8's Successor) ([46:00])
-
Dabbled, but prefers building his own stack; waiting for Picotron to mature and for native export capability.
"Now a deal breaker for me is that it can't export to native binaries at the moment." — Johan Peitz ([47:04])
-
Timestamps for Important Segments
- [01:36] Johan's formative experiences and the Commodore 128
- [04:32] What is PICO-8? Core design philosophy and constraints
- [10:00] The PICO-8 tool suite (editors, memory, and workflows)
- [13:12] What is a "cart"? Distribution, memory, and multi-carting
- [16:35] Exporting games to commercial platforms
- [17:33] Tool creation inside PICO-8: Picocad and Picosynth origins
- [19:04] Picocad: Capabilities and aesthetic, technical explanation
- [23:36] How 3D works in Picocad (technical breakdown)
- [25:59] Dithering and lighting tricks within the engine
- [34:26] Philosophy and experience of commercializing PICO-8 games
- [38:16] Itch vs. Steam vs. Patreon for PICO-8 games
- [41:45] Transition to Love2D and new engine workflows
- [46:00] Reflections on Picotron and future plans
Episode Tone & Takeaways
The conversation is candid, technical, and infused with nostalgia for old-school game creation. Johan Peitz’s openness about learning, experimenting, and balancing artistic passion with commercial sustainability offers inspiration—not just for game developers, but for anyone wrangling with creative constraints. The episode blends deep dives into code and workflow with discussions about community and business, always returning to the joy—and ingenuity—born from doing more with less.
Recommended for:
- Game developers curious about working within constraints
- Indie devs navigating between hobby, open community, and commercial goals
- Anyone interested in how limits foster invention and play in software
