PICO-8 Maker Imposes Engine Limits to Cure Developer Decision Fatigue

PRACTICE 2018: Joseph White — NYU Game Center

NYU Game Center

Arbitrary technical constraints foster creative freedom by eliminating logistical paralysis and giving developers guilt-free license to abandon bloated projects by shifting the blame onto the platform.

AI-assisted summary of PRACTICE 2018: Joseph White — original source. Check the original for full context.

Source published:

Key ideas

  • Fantasy consoles like PICO-8 operate as 'impressionist hardware,' prioritizing emotional resonance, nostalgia, and psychological comfort over authentic silicon CPU emulation. (34:00)
  • PICO-8 establishes a 'cozy design space' by taking on major logistical decisions—enforcing a 128x128 resolution, a fixed 16-color palette, and a 32 KB cartridge limit to eliminate decision fatigue and software friction. (40:36)
  • Strict technical limitations act as an emotional safety valve for creators, providing guilt-free permission to abandon projects once token or memory budgets run out by shifting the blame onto the platform's designer. (42:38)
  • While open-source reimplementations aid long-term software preservation, PICO-8's official core remains closed-source to prevent community fragmentation and protect its shared cultural baseline. (57:11)

Detailed notes

## Background Published on YouTube by NYU Game Center on August 7, 2018, this video documents Joseph White's talk 'PICO-8 and the Search for Cosy Design Spaces' recorded at PRACTICE 2018. According to the event description, the presentation examines how creative tools can actively guide ideas and operate as design manifestos, using the development history and community culture of the fantasy console PICO-8 as a primary case study.

## TL;DR Joseph White details the philosophy behind PICO-8, framing fantasy consoles as impressionist virtual platforms engineered to evoke specific feelings rather than strictly emulate legacy retro hardware. By locking down rigid technical constraints—including a 128x128 square resolution, a custom 16-color palette, and strict code token limits—PICO-8 intentionally eliminates decision fatigue and commercial pressure to foster a 'cozy design space.' White explains that a tool's architecture serves as an implicit design manifesto, showing how features like steganographic PNG cartridges, integrated editors, and memory-poking encourage remixing, playfulness, and guilt-free project abandonment. The talk concludes by highlighting how meta-designing boundaries transforms tedious technical friction into bite-sized creative challenges.

## Atmosphere & style The presentation has a warm, intimate, and gently eccentric atmosphere, emphasized by White delivering his entire slide deck inside PICO-8 using its idiosyncratic, ultra-compact pixel font. His delivery is soft-spoken, self-effacing, and reflective, punctuated by dry humor and candid personal admissions about everything from interface-induced 'software rage' to the visceral stress caused by modern startup sounds. Listening to the talk feels like sitting beside a thoughtful craftsman in a quiet workshop, discovering how deliberate digital friction can rekindle the pure, childlike joy of making things.

## Bulletin - [34:00](https://www.youtube.com/watch?v=87jfTIWosBw&t=2040s) Fantasy consoles like PICO-8 operate as 'impressionist hardware,' prioritizing emotional resonance, nostalgia, and psychological comfort over authentic silicon CPU emulation. - [40:36](https://www.youtube.com/watch?v=87jfTIWosBw&t=2436s) PICO-8 establishes a 'cozy design space' by taking on major logistical decisions—enforcing a 128x128 resolution, a fixed 16-color palette, and a 32 KB cartridge limit to eliminate decision fatigue and software friction. - [42:38](https://www.youtube.com/watch?v=87jfTIWosBw&t=2558s) Strict technical limitations act as an emotional safety valve for creators, providing guilt-free permission to abandon projects once token or memory budgets run out by shifting the blame onto the platform's designer. - [57:11](https://www.youtube.com/watch?v=87jfTIWosBw&t=3431s) While open-source reimplementations aid long-term software preservation, PICO-8's official core remains closed-source to prevent community fragmentation and protect its shared cultural baseline.

## Key takeaways - [04:03](https://www.youtube.com/watch?v=87jfTIWosBw&t=243s) A fantasy console is defined more by its community, distribution channels, and shared cultural constraints than by physical hardware. - [15:04](https://www.youtube.com/watch?v=87jfTIWosBw&t=904s) Self-contained development tools eliminate external software friction and the cognitive clutter of modern cross-platform deployment. - [18:52](https://www.youtube.com/watch?v=87jfTIWosBw&t=1132s) The virtual cartridge concept was introduced to give creators independent authorship over standalone games rather than feeling like subordinate level editors. - [24:15](https://www.youtube.com/watch?v=87jfTIWosBw&t=1455s) PICO-8's 16-color palette was engineered through annealing and folding, forcing single tones like dark blue to multitask as shadows, skies, and accents. - [27:35](https://www.youtube.com/watch?v=87jfTIWosBw&t=1655s) The API intentionally omits built-in collision and complex sorting routines, encouraging developers to solve lightweight, satisfying 'cute problems' from first principles. - [29:14](https://www.youtube.com/watch?v=87jfTIWosBw&t=1754s) Code capacity limits were transitioned from character counts to tokens to prevent counterproductive minification and keep community code human-readable. - [31:17](https://www.youtube.com/watch?v=87jfTIWosBw&t=1877s) The dedicated boot sequence and audio chime serve as a psychological boundary, transitioning creators away from OS stress into an isolated virtual workspace. - [35:47](https://www.youtube.com/watch?v=87jfTIWosBw&t=2147s) Instead of treating save data corruption as a software bug, the community embraced it as authentic hardware behavior and built redundant voting logic. - [37:09](https://www.youtube.com/watch?v=87jfTIWosBw&t=2229s) Tools inherently act as implicit design manifestos by setting defaults that invite specific creative behaviors without requiring written dogma. - [39:00](https://www.youtube.com/watch?v=87jfTIWosBw&t=2340s) When stuck in a design rat hole, stepping up into meta-design allows creators to solve issues by reshaping boundary constraints rather than forcing content solutions. - [40:36](https://www.youtube.com/watch?v=87jfTIWosBw&t=2436s) Cozy design spaces eliminate ego and fear of failure, allowing developers to create small, disposable projects purely for the joy of making. - [54:58](https://www.youtube.com/watch?v=87jfTIWosBw&t=3298s) The engine remains an inadvertent self-portrait of its author, balancing user artistic autonomy against the personal aesthetics baked into the environment. - [57:11](https://www.youtube.com/watch?v=87jfTIWosBw&t=3431s) PICO-8's core remains closed-source during active development to preserve the integrity of its common baseline against platform divergence.

## Detailed walkthrough ### [00:07](https://www.youtube.com/watch?v=87jfTIWosBw&t=7s) Introducing Joseph White and the Fantasy Console Concept

An NYU host opens the talk by introducing Joseph White, widely known by his handle "zep." The host characterizes White as one of the longest-standing indie game developers around, noting that his first commercial title debuted in 1993 as shareware distributed across dial-up bulletin board systems (BBSs). Around 2007, White gained wider indie prominence under his Lexaloffle Games banner by releasing well-received puzzle titles such as *Zen Puzzle Garden* and *Chocolate Castle*. Today, however, White is speaking as the inventor and pioneer of the "fantasy console"—a concept gathering momentum across independent game development and education.

The host defines a fantasy console as a videogame hardware platform that exists exclusively as an emulation layer and a deliberate set of virtual hardware specifications. Addressing why someone would seek out an intentionally constrained environment, the host argues that the format fundamentally clarifies the creative process:

> “I think for me I would kind of encapsulate it as it simplifies and scopes down game development in a way that just makes it more enjoyable...”

To illustrate that impact, the host recounts teaching a semester-long class where students developed their projects exclusively within PICO-8. After grades were submitted, the host saw an end-of-semester tweet from one student that captured the platform's core appeal:

> “...we've been using exclusively PICO-8 in my class this semester and in my last few months at college I finally understand why game—why game development is fun...”

[02:04](https://www.youtube.com/watch?v=87jfTIWosBw&t=124s) Defining the Concept and Setting Up the Talk

Taking the podium, Joseph White admits he is grateful for the host's clear intro because he still dislikes trying to explain what a fantasy console is himself. The concept grew out of two motivations: observing how expressive, scoped development environments like Anna Anthropy's PuzzleScript and Twine established strong identities that showed through directly in the games created with them, and needing a clear vocabulary to explain his own idiosyncratic design goals to his users.

White explains the visual layout of his presentation slides, which he runs natively inside PICO-8. He uses a color-coding scheme to orient the audience through different registers of the talk: - **Warm colors**: Practical, familiar topics describing the concrete mechanics of PICO-8 and how the engine came to be. - **Cold colors**: Text-heavy, theoretical musings exploring the broader philosophical nature of tools, the fantasy console concept, and its implications for creators.

Ultimately, White intends to reconcile the theory and practice around PICO-8's guiding creative goal: cultivating a "cozy" design space. Before diving into the technical breakdown, White takes an audience poll to see how many people have used PICO-8, specifically asking attendees to keep their hands raised only if they have finished and released a cartridge, thanking them directly for putting work into the ecosystem.

[04:03](https://www.youtube.com/watch?v=87jfTIWosBw&t=243s) Virtual Hardware Constraints and the Built-in Suite

White stresses that what truly defines a videogame console is not physical hardware silicon, but rather the ecosystem surrounding it: the culture, community, shared conventions, and distribution methods. Because PICO-8 must artificially simulate those conditions, its technical specifications were chosen with extreme care to give the engine its distinctive personality.

```mermaid flowchart LR accTitle: PICO-8 Built-in Development Pipeline accDescr: A linear flowchart illustrating the built-in PICO-8 workflow from text prompt to code, visuals, audio, and exported PNG cartridge.

subgraph CoreEngine["Engine & CLI"] CLI["Command Line Prompt<br/>(Reboot / Lua Execution)"] end

subgraph Editors["Integrated Toolset"] Code["Code Editor<br/>(128x128 Micro-Font)"] Sprite["Sprite Editor<br/>(128x128 Pixel Sheet)"] Map["Map Editor<br/>(8-bit Grid Data)"] Audio["SFX / Tracker<br/>(4 Ch Sync Synth)"] end

subgraph Export["Distribution"] Cart["Cartridge Export<br/>(RGBA Steganography PNG)"] end

CLI --> Code Code <--> Sprite Sprite <--> Map Map <--> Audio Audio --> Cart ```

White walks through the core constraints that define the environment: - **Resolution**: Scaled to the absolute smallest dimensions viable (128×128 pixels) while still offering enough visual clarity to construct nearly any genre of game. - **Palette**: A fixed 16-color palette, designed obsessively to function as an aesthetic microcosm of the platform's overall design constraints. - **Cartridge Size**: Capped strictly at 32 kilobytes, prioritizing rapid design iteration and concept capture over raw asset volume: “I want people to just make something, capture the concept, and then just move on to something else and to feel okay to do that.” - **Sound**: A four-channel, synthesizer-based audio toolset reduced to its absolute fundamentals. - **Integrated Environment**: All development tools (code editor, sprite canvas, tilemap editor, sound synthesizer, and tracker) reside entirely inside the engine itself.

[05:33](https://www.youtube.com/watch?v=87jfTIWosBw&t=333s) Live Coding, Trackers, and the Ritual of CLS

Hitting the Escape key, White drops straight from his running slide deck into the native PICO-8 command-line interface to demonstrate live development. He highlights the interactive Lua prompt, draws a fast "standard test bunny" sprite in the pixel editor, and sketches a screen in the tilemap editor. The map data is intentionally stripped of semantic engine assumptions: it is simply an open matrix of 8-bit memory cells whose meanings are decided entirely by the author.

He toggles to the audio editor, showing that sound effects and music share identical foundational data, with music effectively acting as slowly sequenced sound patterns. Switching into the Amiga-style tracker view, he layers polyphonic voices across channels to produce an instant chiptune loop, joking to the audience, “Okay, we can ship it, right?”

Moving to the built-in code editor, White addresses the engine's polarizing, ultra-compact 128×128 pixel font:

> “About half of the users do everything in this horrible font, and I wanted to make you suffer today by reading this font for this presentation so you can feel what it's like for a PICO-8 user...”

White writes an update and draw loop in Lua from scratch, opening with a clear-screen command and reflecting on its emotional resonance:

> “I love CLS—as soon as I type CLS, I feel good... when you're starting a new program, when you type CLS you're not just clearing the screen, you're clearing your mind and your soul, preparing for something new.”

He finishes the demo script by calculating sine-wave offsets to animate the bunny sprite bouncing across the screen and prints text with embedded control glyphs.

[09:54](https://www.youtube.com/watch?v=87jfTIWosBw&t=594s) Steganographic Cartridges and the Reality of Memory Glitches

Wrapping up the quick demo, White demonstrates how PICO-8 cartridges are exported and shared. The entire project—source code, map arrays, sprites, and audio patterns—is encoded steganographically into the lower bits of the red, green, blue, and alpha color channels of an ordinary `.png` image. By zooming into the exported label image, White shows the subtle, noisy fuzz of the payload pixels. Anyone who downloads that image file can drag it into their local PICO-8 shell, immediately run it, or press Escape to open the hood, inspect the raw Lua source, and tweak the assets.

White then loads *Jumpy*, a simple platformer cart he published during PICO-8's first alpha release three years earlier. At the top of the unedited script sits a visible, unfinished to-do note reading `TODO: levels and monsters`. White intentionally left that artifact intact across thousands of player downloads:

> “That turned out to be a good thing to do, because it sort of like showed by example it's okay just to release stuff, it's fine, you know, you're—you're among friends.”

To expose the raw materials of the virtual architecture, White activates an in-engine corruption mode using native `poke()` operations: - **Pixel Mapping**: One memory byte corresponds directly to two horizontally adjacent 4-bit screen pixels. - **Live Memory Corruption**: Injecting random values across memory addresses every frame dynamically warps the visual tiles, scrambles sound filter frequencies, and flips binary bit flags (turning map decorations into live enemy entities on the fly). - **Crash Prevention**: Even under violent memory trash, the virtual machine never hard crashes because the active Lua engine and execution bytecode are quarantined inside a separate, protected memory allocation.

White concludes that glitches are crucial for grounding an abstract software system:

> “When you see glitches in games or anything, it sort of shows the underlying material of the system, and one thing like the first thing I did as soon as everything was running in PICO-8 was: okay, I need to corrupt this and see if it glitches nicely.”

He ends the segment by previewing the cart explorer (`SPLORE`), flipping through experimental community creations that range from talking procedural cats and hugging simulators to projects designed specifically to stress-test the machine beyond its intended limits.

[14:01](https://www.youtube.com/watch?v=87jfTIWosBw&t=841s) Drawing Spiderwebs and Returning to the Slides

Joseph White continues demonstrating a project on PICO-8, emphasizing the physical feel of digital drawing. He observes that in traditional art, the essence lies in nuance and precision, noting that “the point of calligraphy is is the the touch and the nuance.” In his interactive sketch, control is deliberately imperfect: operating with an eight-directional digital pad, he added inertia to the brush, resulting in a playful tension where things naturally go wrong. He explains that it is essentially a game centered on drawing and weaving spiderwebs. While it technically includes traditional mechanics like goals, scores, and action, White admits he prefers to simply relax and take the time to construct web strands across the screen. Concluding the live demonstration, he switches back to his presentation slides to examine the origins of the console.

[15:04](https://www.youtube.com/watch?v=87jfTIWosBw&t=904s) Creative Motivations and the Plague of "Software Rage"

Reflecting on the creation of PICO-8, White describes it as an exceptionally enjoyable endeavor because an intricate mix of practical considerations, aesthetic ambitions, and creative impulses naturally pushed it forward. He notes that with certain projects, once the foundational problem and goals are set, the momentum carries you straight through to the finish. White’s love for writing creative software began in childhood, when he constantly coded pixel-art drawing tools purely for the joy of it. With PICO-8, his primary goal was to construct an environment that allowed him to work on his own terms rather than constantly fighting against hostile commercial software. He wanted to strip away mental clutter regarding target platforms and deployment, settling instead on a self-contained aesthetic world where games could exist purely in an abstract space.

```mermaid flowchart LR accTitle: Creative Friction vs PICO-8 Design accDescr: Modern tool friction and delay leading to rage compared to PICO-8's focused environment. subgraph Modern["Modern Workflows"] A["Clicking UI Elements"] --> B["Half-Second Latency"] B --> C["Lizard-Brain Rage & Interruption"] end subgraph Solution["PICO-8 Philosophy"] D["Abstract House Style"] --> E["Zero Platform Overhead"] E --> F["Immediate Creative Flow"] end ```

White vents his deep exasperation with the modern software landscape, bluntly declaring, “software sucks it's terrible.” While he considers himself an exceptionally calm person who has never experienced road rage, he suffers severely from what he calls "software rage." He describes how even a mere half-second delay between clicking an icon and a window appearing sends his mind into an animalistic fury:

> “I don't get road rage I have no idea what that feels like but I have software rage like the the time between doing clicking on something and waiting for half second for a window to pop up that half a second my mind is completely lizard brain raging animal and I feel as it's much more disruptive to a creative work then then we generally realized...”

[16:50](https://www.youtube.com/watch?v=87jfTIWosBw&t=1010s) Napkins, the Demoscene, and "Cute Problems"

To guide the design of PICO-8, White looked backward to specific tactile and emotional experiences he wished to recreate: - **Rummaging through mystery disks:** Digging through unorganized boxes of Commodore 64 and Amiga floppy disks, where running an unlabeled program offered the thrill of discovery because you had no advance knowledge of what was on the disk. - **The disposable napkin effect:** Realizing that his best creative thinking occurred on restaurant paper napkins precisely because they were destined for the trash. He deliberately worked on napkins to access that relaxed, low-stakes mindset, eventually accumulating piles of crumpled napkins in his bag. - **The demoscene spirit:** Growing up isolated in New Zealand, White viewed demoscene productions not as commercial products, but as heartfelt digital letters shared between coders. Because these non-commercial demos were made simply for the love of the craft, watching them generated an intimate sense of personal connection to their creators.

White also draws a sharp distinction between "cute problems" and "annoying problems." He feels genuine relief when tasked with implementing a concrete algorithmic challenge, such as writing a collision system from scratch, saying, “thank goodness I can do some computer science.” By contrast, he laments that contemporary programming largely consists of engineering tedious "glue" to force disparate software frameworks to cooperate. PICO-8 was built to dispense with that glue code, offering a gentle, pressure-free environment designed for play.

[18:52](https://www.youtube.com/watch?v=87jfTIWosBw&t=1132s) Voxatron and the Origin of Fantasy Cartridges

White traces the conceptual origins of the fantasy console back to his earlier project, Voxatron, which he initially released in 2011. Voxatron was designed around a 3D volumetric display consisting of a cube of voxels, making it suited for destructible physics environments. White demonstrates this by loading a 3D voxel remake of his game *Jasper's Journeys* (which he jokingly references as the "hug game" from his earlier slide, *Suspension and Souls*), rotating the volumetric view to showcase its depth.

When Voxatron first launched, the unifying metaphor of the "fantasy console" did not yet exist. White had framed the software monolithically, offering built-in "game modes" alongside an integrated "level designer." However, this terminology created a severe authorship dilemma:

> “The problem is that it's monolithic and I didn't know how to present work made in it as as something that felt like his you know separate creation and I wanted people to feel that they were the authors of this thing they weren't just making a level for another platform...”

To give creators true ownership over their work, White conceived of "cartridges" as a shareable, atomic unit of creative expression. Even after adopting cartridges in Voxatron and beginning work on PICO-8, it took him years to realize that Voxatron itself should be classified and packaged as an equivalent fantasy console. He notes that the next major update will allow Voxatron to emerge from its cocoon as a fully realized fantasy system.

[21:16](https://www.youtube.com/watch?v=87jfTIWosBw&t=1276s) Designing a Cohesive Fantasy Console Medium

White emphasizes that PICO-8 is designed to be completely self-contained, with its own unified identity, ecosystem, and distribution methods, such as exporting programs into digital cartridge files. Unlike software emulators, PICO-8 does not attempt to reproduce historical hardware like the BBC Micro or the Commodore 64. Those retro platforms had rigid specifications dictated by the physical chip manufacturing limits of their respective decades; PICO-8, by contrast, is an intentional, contemporary design created entirely from scratch.

White follows several core design principles to make PICO-8 behave like an artistic medium rather than an open-ended software engine: - **Paternalistic constraint:** Deciding arbitrary limits on behalf of the creator, ensuring that users cannot make visually disharmonious work. He compares this to a curated box of crayons where every color combination works naturally together. - **Balanced internal specifications:** Ensuring memory, sound, display resolution, and code capacity interact harmoniously. Providing immense graphical capabilities without sufficient code space to drive them produces a frustrating, unbalanced platform. - **Strategic friction:** Injecting friction into specific areas of the toolchain to steer users toward compelling, bite-sized creative challenges while shielding them from uninteresting technical boilerplate. - **Medium-like material qualities:** Bestowing the software with innate texture and behavioral weight, analogous to how paint interacts with the woven tooth of a canvas.

Addressing specific hardware choices, White explains that the 128x128 display is intentionally square. This eliminates the developer's dilemma over choosing between horizontal and vertical screen orientations. Although users frequently lobby for a widescreen aspect ratio suited to modern PC monitors, White intentionally retained the square format because its eccentricity signals to users that they are stepping into an entirely separate, distinct realm. Architecturally, the display connects directly to his 3D work: the volumetric display of Voxatron is literally composed of 64 PICO-8 screens stacked vertically.

[24:15](https://www.youtube.com/watch?v=87jfTIWosBw&t=1455s) The 16-Color Palette: Annealing and Folding

White considers the creation of PICO-8’s iconic 16-color palette to be a microcosm of how the entire console was engineered. Its balance was found through two interrelated design processes:

```mermaid flowchart TD accTitle: Palette Design Mechanics accDescr: Annealing and Folding processes shaping the 16-color PICO-8 palette. subgraph Annealing["Simulated Annealing"] A1["High Temperature: Wild Placeholder Swaps"] --> A2["Gradual Cooling & Interaction Tests"] A2 --> A3["Low Temperature: Subtle Micro-Adjustments"] end subgraph Folding["Gravitational Folding"] B1["8-Color Top Rainbow Ramp"] --> B4["Interlocking Blue Values"] B2["Dedicated Grayscale Ramp"] --> B4 B3["Cold Tones Leading into Warm Light"] --> B4 end Annealing -.-> B4 ```

1. **Annealing:** Borrowed from computer science and metallurgy, this approach begins at a "high temperature," where hundreds of wildly differing placeholder ideas bounce around the design space. Over time, the temperature is steadily lowered, reducing variance until elements make only microscopic adjustments relative to one another. 2. **Folding:** A dynamic where multiple competing requirements generate internal gravity, warping and pulling components into multifaceted roles.

When designing the palette, White required a bright, eight-color looping rainbow across the top row to give creators instant access to vibrant color ramps. Simultaneously, he had to integrate a legible grayscale ramp and provide cool tones that transitioned smoothly into warm colors for natural outdoor lighting. Certain colors—most notably the dark blue—had to perform double duty across multiple palettes, serving simultaneously as a shadow tone, a midtone for sky, and an accent.

This complex balancing act reflected the console's wider development. Every constraint was intimately linked: expanding the sound effect footprint applied gravitational pressure against the available code storage limits, while introducing a single new API function altered the creative utility of every other command in the system.

[26:13](https://www.youtube.com/watch?v=87jfTIWosBw&t=1573s) The Freedom of Tiny Cartridges and Minimal Audio

Joseph White reflects on tracking his own development rhythm in his notes, observing how the rush of early progress inevitably slows down over time. Turning to the strict constraints of PICO-8, he explains that the cartridge size was deliberately capped so that developers simply cannot build sprawling, massive projects. Being restricted to small scopes creates a liberating environment where creators feel permission to make modest things. Instead of getting bogged down in manufacturing huge volumes of content, developers are forced to contemplate core design, isolate what truly matters to them, and discard unnecessary fluff. Tight constraints also push authors into confronting what White calls “cute problems”—such as figuring out how to squeeze data into tight spaces—which frequently open up unexpected, rewarding creative paths.

```mermaid flowchart TD accTitle: Constraint to Creative Path accDescr: Flowchart showing how small cartridge limits drive focus on core game design and cute technical puzzles. A["Strict Cartridge Limit"] --> B["Cannot make big things"] B --> C["Focus on core design over content manufacturing"] B --> D["Solve cute data-packing problems"] C --> E["Creative breakthrough"] D --> E ```

That same philosophy extends directly to sound design. The sound effects editor is pared down to the absolute bare minimum, making it almost impossible for users to make catastrophic mistakes. A developer can quickly doodle random waveform shapes, hold down the control key to snap the pitch grid to a pentatonic scale, and immediately produce charming music suitable for a title screen. As White emphasizes:

> “I think it's just really liberating to make small things enter be and to feel okay to make small things it make it forces you to think more about design then manufacturing a lot of content and and to focus on what's important to you in throw away things that are not important and it forces you to confront the cute problems like how to fit your data in and often you know those problems lead you down a new path that you wouldn't have otherwise considered.”

- **Cartridge Philosophy:** Hard data limits force creators to abandon content bloat in favor of intentional, essential design decisions. - **Audio Simplicity:** The built-in tracker/synthesizer allows drawing sound curves freely, with modifier shortcuts (like holding `Ctrl` for a pentatonic scale) ensuring musical results with zero music theory background.

---

[27:35](https://www.youtube.com/watch?v=87jfTIWosBw&t=1655s) A No-Magic API and the Joy of Hand-Rolled Code

When designing the PICO-8 application programming interface (API), White prioritized extreme minimalism, not merely for convenience, but to avoid introducing “magic” abstractions into the environment. There is no built-in collision routine and no high-level object handling; if a creator wants two sprites to interact, they must either code the math from scratch or paste an implementation from another cartridge. White believes this friction directly introduces newcomers to foundational computer science concepts, granting them the satisfaction of solving classic problems themselves.

To illustrate, he admits that while developing his own games, he temporarily implemented a native sorting function out of convenience, only to consciously remove it before release. For visual tasks like drawing rotating objects in pseudo-3D, a massive standard-library sorting algorithm is unnecessary anyway; a simple bubble sort routine pasted into the script works beautifully because the relative depth of rotating items barely changes from one frame to the next. He describes his exhaustion with sprawling modern APIs whose documentation is overwhelming to navigate, contrasting that fatigue with PICO-8’s philosophy:

> “So yeah I wanted an API that you can just hold in the palm of your hand and see the whole thing at once.”

- **No Black Boxes:** Omitting high-level collision and sorting routines demystifies programming and encourages learning from first principles or cartridge inspection. - **Micro-Algorithms:** A simple bubble sort is often optimal for spinning 3D wireframes/sprites because the elements remain almost sorted across consecutive frames. - **Single-Page Scale:** The complete PICO-8 API fits comfortably on a single cheat sheet or in the palm of a hand.

---

[29:14](https://www.youtube.com/watch?v=87jfTIWosBw&t=1754s) Three User-Driven Evolutions: Patterns, Tokens, and Multicarts

Once community cartridges began circulating, user behavior drove three major systemic adaptations in PICO-8's core architecture:

```mermaid flowchart LR accTitle: User-Driven PICO-8 Features accDescr: Three community behaviors leading to engine changes: dither patterns to fill patterns, minification to token limits, and cartridge limits to multicarts. subgraph Users ["User Behaviors"] U1["Manual 3D dithering"] U2["Aggressive code minification"] U3["Pushing past 32KB cartridge ceiling"] end subgraph Engine ["Engine Adaptations"] E1["Native 4x4 binary fill patterns"] E2["Token limit replaces ASCII char count"] E3["Multicarts export feature"] end U1 --> E1 U2 --> E2 U3 --> E3 ```

1. **Fill Patterns:** Users were writing custom dithering patterns to overcome the 16-color palette and simulate shaded 3D geometry. White loved the tactile, physical appearance of these textured surfaces at low resolution and added native fill patterns to reduce friction. This feature also serves an educational purpose: setting up a 4×4 pixel pattern requires developers to calculate powers of two across a 16-bit binary mask, serving as a friendly gateway to binary representation. 2. **From Characters to Tokens:** The original release limited source code by raw ASCII character count. This inadvertently incentivized programmers to minify their code—stripping whitespace and shortening variable names to single letters—which destroyed readable, shareable code. White redesigned the limit around a token counter, where an identifier, keyword, or operator counts as a single token regardless of length. This stopped minification and turned code golf into a playful economy: “it just feels cuter spending tokens.” 3. **Multicarts:** Creators constantly chafed against the 32 KB compressed cartridge boundary. Unwilling to sacrifice the sacredness of the cartridge limit, White implemented “multicarts,” allowing standalone executables to bundle multiple cartridges together and swap between them dynamically. Yet in practice, almost nobody actually used the multicart feature once it existed, prompting White to chuckle: “people don't know what they want.”

White summarizes the driving problem behind the initial character-count system:

> “The code was too small on the first release and so I and people were minifying their code that was a big problem it defeated the purpose of having shareable code so I changed the code size limit from s key characters to tokens you know so one word or one variable name is a token and that helped a lot to avoid minification and also it just feels cuter spending tokens.”

---

[31:17](https://www.youtube.com/watch?v=87jfTIWosBw&t=1877s) Framing the Boot Sequence and Reclaiming the Chime

White explains that the boot sequence is not just decorative flair; it establishes crucial psychological framing and presentation. Launching the program immerses the user in an alternate space where they feel truly “inside the machine.” The boot chime plays a vital role in resetting the creator's mental state, serving as a mnemonic call back to creative play.

This design choice was born directly out of personal trauma from past contract work. White recalls spending miserable periods doing development work inside environments like Xcode. Over time, classical Pavlovian conditioning turned his Mac's hardware startup chime into a visceral trigger: whenever he booted his Macintosh, he could physically feel the back of his head burning with dread. Designing the PICO-8 chime was a deliberate act of emotional reclamation, crafting a sonic ritual that triggers curiosity and calm focus rather than corporate fatigue. He reflects:

> “And every time I turned on my Macintosh and I heard that time I could feel the bank of my head burning like just from the chime just because of heavy on conditioning and so I'm trying to reclaim that I'm trying to wipe that.”

---

[32:22](https://www.youtube.com/watch?v=87jfTIWosBw&t=1942s) The Blue Zone: Impressionist Hardware and Conceptual Scaffolding

Entering what he calls the “Blue Zone” of his presentation, White introduces his definition of a fantasy console: it is fundamentally “impressionist hardware.” Rather than solving strict electronic engineering challenges, the designer crafts an aesthetic illusion focused entirely on evoking the psychological and nostalgic sensations of operating physical hardware. The designer must deliberately draw the line where literal simulation gives way to artistic metaphor. PICO-8 does not emulate an authentic CPU instruction set; it runs a standard Lua virtual machine, because a custom assembly instruction set was not necessary to achieve a tactile, authentic retro feel.

```mermaid flowchart TD accTitle: Fantasy Console Triangulation accDescr: Mapping PICO-8 and Voxatron alongside speculative scaffolding designs PICO-16 and PICO-64 to define design boundaries. subgraph Real ["Actual Consoles"] P8["PICO-8<br/>(2D / 128x128)"] VX["Voxatron<br/>(3D Voxel Arena)"] end subgraph Scaffolding ["Negative Scaffolding (Unmade)"] P16["PICO-16<br/>(What NOT to build)"] P64["PICO-64<br/>(Equidistant conceptual probe)"] end P8 <-->|"Defines design axis"| VX P16 -.->|"Negative boundary"| P8 P64 -.->|"Equidistant probe"| VX ```

Language plays a foundational role in shaping this illusion. Simply labeling a program a “cartridge” immediately reconfigures user expectations, imbuing digital code with tangible permanence and historical context. White stresses that fantasy consoles are defined not by rigid dogmas, but by a Wittgensteinian “family resemblance” of features shared with systems like PuzzleScript or game jam ecosystems.

To clearly understand what PICO-8 was, White needed a comparative frame of reference. Only after having both PICO-8 and Voxatron side by side could he trace the outline of the medium. To test those boundaries further, he constructed hypothetical “scaffolding” consoles that he had no intention of releasing: - **PICO-16:** Designed as an explicit negative guidepost to illustrate design choices that felt bloated and broken, reminding him what *not* to build. - **PICO-64:** A thought experiment to determine what a fantasy console placed at an equal conceptual distance from both PICO-8 and Voxatron would look like.

White captures the essence of this design philosophy:

> “Fantasy consoles are basically impressionist hardware when you're designing one you're not thinking about how to solve engineering problems you're thinking about the feeling of the person using the console and and how to provoke all of those associations and emotions and it's really just a knife holder if something is a console of feels like a console you have to choose when it starts not being real.”

---

[35:47](https://www.youtube.com/watch?v=87jfTIWosBw&t=2147s) The Glitch Economy: Framing and Accidental Memory Corruption

Because PICO-8 presents itself as an idiosyncratic fantasy machine rather than a professional software suite, incoming developers arrive with clean expectations: “all bets are off,” giving White unprecedented freedom to experiment and fail. This unique framing was demonstrated when White introduced a reboot effect that injected random byte noise into memory upon resetting a cartridge to create an authentic visual glitch.

He inadvertently forgot that permanent saved data was mapped directly into that same memory region. As a consequence, resetting a cartridge routinely clobbered persistent user data. In standard software, corrupting save files would be met with outrage; in PICO-8, players assumed the glitch was an intentional, playful puzzle mechanic. Developers embraced it as an authentic hardware quirk and began engineering voting logic algorithms across redundant memory sectors to safeguard their data. While White eventually patched the bug, the episode highlighted how framing transforms software flaws into charming, atmospheric hardware traits. White notes:

> “So Pico eight is different enough from things that people have used in the past both as a player and a developer that when you see a boot you don't really expect anything of it and all bets are off and so I can kind of get away with anything.”

- **Glitch Injection:** Random values were intentionally pushed into RAM during reboots to simulate visual screen tearing and memory corruption. - **Save Corruption:** Permanent storage addresses overlapped the randomized memory range, resulting in corrupted persistent player records. - **Community Reaction:** Instead of complaining about broken software, the community treated the bug like quirky hardware behavior and devised mathematical fault-tolerant voting systems to store data reliably.

---

[37:09](https://www.youtube.com/watch?v=87jfTIWosBw&t=2229s) Tools as Implicit Manifestos

In his concluding thoughts for this segment, White explores the porous boundaries separating the tools we build, the media we produce, and the creative processes we follow. Every creator must construct or adopt a space of possibilities—whether by embracing Disney’s 12 basic principles of animation or targeting a specific console format. While tool, medium, and process can be treated as conceptually distinct, they are deeply coupled: altering one reshapes the others.

White points out that a designer does not need to publish a written ideological manifesto. When built with strong convictions, a tool embodies that manifesto within its very constraints and defaults, naturally encouraging practices that harmonize with those values while discouraging discordant workflows. A well-crafted tool goes beyond functional utility; its specific constraints act as an open invitation, sparking an immediate desire to create something within its idiosyncratic world. White explains:

> “So just by just by using a tool that you don't you don't need to state a manifesto the the tool sometimes has the manifesto inside itself because it lets you do things which are congruent with with that set of design values.”

[39:00](https://www.youtube.com/watch?v=87jfTIWosBw&t=2340s) Meta-Design and Shaping Creative Possibility Spaces

Joseph White reflects on how creative tools interact with the creative process. Much like a traditional watchmaker must handcraft specialized tools before assembling a watch, building tools is an unavoidable, entangled step in design. The medium shapes the tools, and the tools reach directly into both the development workflow and the final artifact, resulting in a single “very big fuzzy blob.”

When game designers find themselves trapped in a creative quagmire or design rat hole, the only reliable escape route is to pop up one frame on their mental stack and engage in meta-design to examine the boundaries they are operating within. Instead of attempting to design the final object outright, a developer can design the surrounding constraints. By intentionally engineering these boundaries, the designer creates a possibility space fertile enough that anyone operating inside it cannot help but stumble into captivating creative solutions.

“When you're a designer and you get into a design rat hole, into a quagmire, the only way to get out is to pop up one frame of your stack and sort of do meta-design and see what are the boundaries that you're operating inside.” — Joseph White

[40:36](https://www.youtube.com/watch?v=87jfTIWosBw&t=2436s) Cozy Design Spaces, Cuteness, and Banishing Decision Fatigue

Bringing these ideas back to PICO-8, White summarizes its core design objective as offering a “cozy” design space. He connects this feeling to cuteness—a quality that machines and software environments can possess when they are small, inviting, and somewhat vulnerable. Rather than feeling limiting, this compact scale paradoxically fosters a deep sense of psychological safety and artistic freedom. Within a cozy space, developers do not worry about doing things wrong or impressing peers; they leave their egos at the door and create purely for the joy of making, playfully casting their creations out into the world like messages in a bottle.

Above all, a cozy design space wages war on decision fatigue. Large-scale software projects overwhelm creators with paralyzing logistical questions: How large should the game be? What is the monetization model? How will it be distributed? How will it physically exist? PICO-8 sweeps all of that existential friction away by shouldering the architectural burden on behalf of the creator.

“In a cozy design space you don't feel afraid to do anything wrong, you can leave your ego behind and not try to be impressing anybody or anything like this, you just want to make something for the love of making.” — Joseph White

- **Decisions eliminated by PICO-8:** Screen resolution, display palette, distribution pipeline, file formatting, asset packaging, and runtime environment. - **Creator mindset:** Users are freed from logistical worry through a simple design contract: “I'll take care of that, just make a PICO-8 cart.”

```mermaid flowchart TD accTitle: Creative Design Spaces Comparison accDescr: Diagram contrasting unconstrained boundless design spaces that induce decision fatigue with cozy bounded spaces like PICO-8 that foster rapid exploration.

subgraph Unbounded ["Boundless Possibility Space"] U1["Infinite Design Decisions"] --> U2["Decision Fatigue & Sparseness"] U2 --> U3["Distant Points of Light: Abstract & Paralyzing"] end

subgraph Cozy ["Cozy Bounded Space (PICO-8)"] C1["Hard Limits: Code, Colors, Audio"] --> C2["Eliminated Logistical Overhead"] C2 --> C3["Lush Planet Surface: Playful, Low-Ego Exploration"] end ```

[42:38](https://www.youtube.com/watch?v=87jfTIWosBw&t=2558s) The Jungle Planet: Freedom Through Constraint and Permission to Abandon

Operating within clear boundaries produces an apparent paradox: constraints expand practical creative freedom. White contrasts this with an infinite, boundaryless creative void. Without constraints, a creative space is so sparse that it resembles floating in deep space—celestial bodies may be intricate and massive, but from afar they register only as cold, distant pinpricks of light. Imposing tight boundaries is like landing directly on the surface of a single, vibrant planet teeming with lush jungles and dense alien wildlife.

Having tangible boundaries also gives creators a clear baseline against which they can deliberately rebel, producing clever hacks and demoscene-style work that technically shouldn't fit within the machine. Furthermore, small constraints give developers emotional permission to abandon projects guilt-free. When a cart runs out of memory or tokens, developers are forced to move on, redirecting any guilt away from themselves and onto the platform creator.

“Being in a cute space gives you license to abandon things and just move on to the next thing, because you need more space and you have to do—there's no choice—and so you can blame that on me, the creator of the space.” — Joseph White

[44:33](https://www.youtube.com/watch?v=87jfTIWosBw&t=2673s) The Implicit Design Manifesto of PICO-8

PICO-8 fuses the journey of the toolmaker with the journey of the user into an implicit design manifesto embedded directly within the software's architecture. The central tenet of this philosophy is that small things have profound, standalone value. Modest creative artifacts are meaningful in their own right, and they serve as bite-sized modular components that can be easily remixed, inspected, and shared by others.

Rather than forcing creators to pioneer exhausting new paradigms from scratch, cozy tools encourage users to submit to the natural physics of the environment, letting themselves be gently carried along by the platform's idiosyncrasies while shutting out real-world pressures. White wraps up his presentation by crystallizing his five underlying points into a single realization: building a cozy space is ultimately about creating a safe, comfortable room to work in.

“The principles are that small things matter: you can make small things, they're valuable by themselves or as components for other things that can be remixed.” — Joseph White

- **Core tenets of the cozy design space manifesto:** 1. Small things have intrinsic, isolated value. 2. Artifacts can serve as remixable building blocks for others. 3. It is healthy to finish or abandon a small idea and cleanly move on. 4. Work joyfully inside defined, discoverable boundaries. 5. Allow yourself to be carried along by the space and ignore real-world noise.

[46:03](https://www.youtube.com/watch?v=87jfTIWosBw&t=2763s) Q&A: Joining the Party at 1.0 and Re-converging with Voxatron

The presentation transitions to audience questions. When asked about his immediate future plans, White jokes about his longing to finally step away from the software engine room. He likens his role as tool creator to being trapped alone in the kitchen preparing party snacks while hearing all the guests in the next room laughing, chatting, and drinking. His immediate goal for PICO-8’s eventual 1.0 release is to finish the core toolset so he can finally join the party, sit down, and make games as a regular user.

An audience member asks how PICO-8’s evolution will feed back into White's original voxel project, Voxatron. White explains that while Voxatron originally spawned PICO-8, the relationship has inverted: PICO-8 is now leading the architectural design of Voxatron. He is porting PICO-8's entire fantasy console ecosystem back into Voxatron, including the PNG cartridge format, cart browser (SPLORE), cartridge sharing mechanisms, and exporter pipeline. Because Voxatron's scripting API is built as a direct superset of PICO-8's API, developers can run existing PICO-8 scripts inside Voxatron and render them directly into the 3D voxel volume. White commits to shipping a major fantasy console update for Voxatron within the year.

“At the moment I feel like I'm sort of in the kitchen making snacks and I can hear everyone laughing and talking in the other room, and at 1.0 I just want to join the party and drink some wine.” — Joseph White

[48:58](https://www.youtube.com/watch?v=87jfTIWosBw&t=2938s) Q&A: Choosing Lua and the Cuteness of the Virtual Machine

White addresses why PICO-8 uses Lua instead of a retro dialect like BASIC. Nostalgia originally drove him to attempt a BASIC implementation, but lacking formal compiler training—joking that he took a philosophy degree specifically to avoid a university paper on compilers—he initially decided to transpile BASIC source code into Lua. Working under the hood with Lua led him to study its clean C source code and fascinating language history, dissolving his initial reservations (such as Lua's 1-based table indexing, which can simply be indexed at zero anyway).

When asked whether Lua itself qualifies as a "cute" language, White agrees enthusiastically. Because PICO-8 meters its simulated CPU cycle budget via the quantity of Lua virtual machine instructions executed per frame, the VM feels less like an abstract hardware abstraction layer and more like a living creature. Users can project human empathy onto the runtime engine, imagining it as an earnest little animal busily toiling away inside the computer to keep the game running.

“One aspect of cuteness, I think, is that you can project human qualities on the thing and feel like it's a little animal earnestly working away, and that's how I feel about the Lua virtual machine.” — Joseph White

[51:10](https://www.youtube.com/watch?v=87jfTIWosBw&t=3070s) Q&A: Retro Hardware DNA and Conscious Constraints

Asked about the historical systems that influenced PICO-8's aesthetic and interface, White enumerates several key retro microcomputers: - **Commodore 64:** Heavily shaped PICO-8's palette logic. While the colors differ, PICO-8 adopted the C64 demoscene technique of hue-shifting ramps, branching tonal gradients, and unconventional color-replacement tricks that pixel artists had spent decades refining. - **Amiga:** Directly inspired the vertical layout, pattern structure, and functional feel of PICO-8's integrated tracker audio tool. - **BBC Micro:** Inspired the immediate tactile feedback of turning on a machine, dropping straight into a raw command prompt, and writing executable code from line one. - **Enhanced Graphics Adapter (EGA):** Provided inspiration for bold, vibrant colors, though White softened EGA’s blunt, garish tones into warmer tertiary hues.

When asked whether the fantasy console framework represents an objectively "better" methodology for video game development or merely an interesting aesthetic niche, White stresses that PICO-8 is an intentionally hyper-specific artifact. The broader lesson he hopes to offer the design community is not that every game should look like a retro cartridge, but that creators should remain intensely mindful of how their chosen tools reach into and shape their creative process.

“If I'm trying to offer something to improve the process of making games, it's not this particular choice, it's the idea that you can be conscious of the reach.” — Joseph White

[53:20](https://www.youtube.com/watch?v=87jfTIWosBw&t=3200s) Tools as Creative Manifestos and the Problem of General-Purpose Engines

Closing the presentation and moving into the audience Q&A, Joseph White reiterates that software tools are not passive instruments existing in isolation from the work they produce. Rather than treating an engine or editor merely as a utility to execute pre-formed ideas, creators can treat toolmaking itself as a central component of artistic expression. As Joseph White puts it: “You can incorporate designing and developing tools as part of your creative process.”

An audience member asks what constitutes an "un-cozy" engine or programming environment under this philosophy. White explains that an un-cozy tool is typically any general-purpose engine designed to be as universal and feature-exhaustive as possible, citing standard IDEs or broad engines like Unity. However, he quickly qualifies that this is not an outright dismissal of such platforms. Unity contains distinct cozy sub-spaces within its ecosystem and successfully eliminates severe friction points, such as the headaches of cross-platform porting. For some developers, wrapping that complexity away inside an engine works, even if knowing the underlying machinery exists might bother others. White invokes the metaphor of ascending a ladder: the ideal setup allows a creator to climb up the ladder and then kick it away, freeing them from having to worry about what is happening on the outside.

[54:58](https://www.youtube.com/watch?v=87jfTIWosBw&t=3298s) The Lack of True Red and PICO-8 as an Unintentional Self-Portrait

The discussion turns to the sensory constraints of PICO-8's palette when an audience member asks about the conspicuous absence of pure red, asking whether the missing color prevents designers from depicting violence and blood. White notes that there are indeed surprisingly few violent PICO-8 titles, partly because the engine's graphical restrictions make it difficult to render violence in a gruesome way. While he would love to claim that this was a deliberate ideological choice to curb violent content, the reality comes down to personal aesthetics: White simply dislikes straight primary red and raw primary tones in general. The color labeled red in PICO-8 is actually a soft pinkish-red, a shade he had used across earlier personal projects. Beyond his color preference, applying that strange pink-red tone across the top and bottom toolbars of the editing suite served as an intentional visual disruptor. While typical development environments default to clean, corporate palettes of white and blue, the odd "Play-Doh bar" signaled that PICO-8 was not restricted to any single demographic or serious professional mould.

This reliance on personal taste prompts an audience member to ask whether PICO-8, and by extension the games created on it, essentially functions as an indirect self-portrait of White. White smiles at the tension between his desire to empower independent creators and his own attachment to the platform's aesthetic signature. He acknowledges that while his stated goal is to grant authorship entirely to the community, he still feels an instinctive, greedy impulse to share credit for the work produced inside the fantasy console. “It's unavoidable that anything you make is going to be a reflection of of you I think,” White admits, accepting that his idiosyncrasies inevitably shape everything built on the platform.

[57:11](https://www.youtube.com/watch?v=87jfTIWosBw&t=3431s) Open Source, the "Secret Basement," and Hardware Offshoots

The conversation next addresses how open-source software and community-built tools align with the cozy philosophy. White expresses genuine appreciation for third-party open-source implementations of the PICO-8 API, emphasizing that alternative runtimes provide developers with peace of mind by guaranteeing their cartridges will survive indefinitely into the future. Nonetheless, he defends his decision to keep PICO-8's core proprietary for now. With a conspiratorial grin, he jokes that one reason is the existence of a “very large secret basement to PICO-8 that I don't want anyone to know about yet,” pleading with the audience not to tell anyone.

More seriously, White argues that premature open-sourcing would fragment the platform before its cultural norms could fully solidify. “If it was open source at this point there would be many variations of PICO-8 that would sort of eat away at that shared experience,” White warns, stressing that the value of the platform stems from everyone understanding the exact same boundaries—the fixed cartridge limits, the 16-color palette, and the screen resolution. While the system should eventually become more open and fixable to guarantee long-term software preservation, immediate openness would dilute the communal baseline.

In a final brief exchange, an audience member asks about physical hardware and micro-scale variations. White highlights community hardware experiments such as the Pico Boy created by Josh Blood, handhelds with minuscule screens that emulate the PICO-8 ethos, as well as fringe creative experiments like the "Tiny TV Jam," where developers were challenged to design games for an 11-by-10 voxel television display. The host then closes the session, reminding attendees to deposit their lunch discussion topics into the collection box before the coffee break and leading a round of applause for White.

- **Open Source Preservation vs. Current Cohesion:** Third-party API clones guarantee future software preservation, but White keeps the core engine closed-source to prevent forks from fracturing the universal standard (fixed screen size, 16-color palette, token/cartridge limits). - **Physical and Ultra-Low-Res Spin-Offs:** Community members have extended the fantasy console philosophy into physical hardware (such as Josh Blood's handheld Pico Boy) and extreme resolution jams (such as the Tiny TV Jam with an 11×10 display).

## Notable quotes > [40:36](https://www.youtube.com/watch?v=87jfTIWosBw&t=2436s) In a cozy design space you don't feel afraid to do anything wrong, you can leave your ego behind and not try to be impressing anybody or anything like this, you just want to make something for the love of making. — Joseph White

> [53:20](https://www.youtube.com/watch?v=87jfTIWosBw&t=3200s) You can incorporate designing and developing tools as part of your creative process. — Joseph White

> [39:00](https://www.youtube.com/watch?v=87jfTIWosBw&t=2340s) When you're a designer and you get into a design rat hole, into a quagmire, the only way to get out is to pop up one frame of your stack and sort of do meta-design and see what are the boundaries that you're operating inside. — Joseph White

> [57:11](https://www.youtube.com/watch?v=87jfTIWosBw&t=3431s) If it was open source at this point there would be many variations of PICO-8 that would sort of eat away at that shared experience — Joseph White

> [09:54](https://www.youtube.com/watch?v=87jfTIWosBw&t=594s) When you see glitches in games or anything, it sort of shows the underlying material of the system — Joseph White

> [04:03](https://www.youtube.com/watch?v=87jfTIWosBw&t=243s) I want people to just make something, capture the concept, and then just move on to something else and to feel okay to do that. — Joseph White

## Mentioned Joseph White, PICO-8, Voxatron, Lexaloffle Games, NYU Game Center, Zen Puzzle Garden, Chocolate Castle, Anna Anthropy, PuzzleScript, Twine, Lua, Jumpy, SPLORE, Commodore 64, Amiga, BBC Micro, Jasper's Journeys, Suspension and Souls, Xcode, Macintosh, PICO-16, PICO-64, Enhanced Graphics Adapter (EGA), Unity, Josh Blood, Pico Boy, Tiny TV Jam, Walt Disney

## Video description Joseph White PICO-8 and the Search for Cosy Design Spaces June 23, 2018

Development tools can play a creative role in shaping the work made with them; they can be made to not only implement, but also to guide and tease out ideas, or even to operate as a design manifesto.

This talk retraces the design of the fantasy console PICO-8 with these goals in mind, embracing the fuzzy boundary between tools and creative process, and the influence that user-made PICO-8 cartridges have had on PICO-8 itself.

Joseph White is a Tokyo-based designer and software author. He formed Lexaloffle Games in 2003 in order to pursue his interests in game design, graphics programming, electronic music, and creative tools. He is currently developing the concept of fantasy consoles (PICO-8, Voxatron) and exploring their use in creativity and education. With his wife Natsuko, Joseph also co-runs Pico Pico Cafe: an event space and meeting place for artists and developers.

For more from the NYU Game Center visit gamecenter.nyu.edu

[Source](https://www.youtube.com/watch?v=87jfTIWosBw)

中文简报

PICO-8开发者通过引擎限制化解决策疲劳 人为的技术限制消除了琐碎抉择带来的瘫痪感,并将放弃臃肿项目的责任归咎于平台,使开发者得以卸下负罪感,从而激发创作自由。 Joseph White详细阐述了PICO-8背后的设计理念,将幻想控制台定义为旨在唤起特定情感的印象派虚拟平台,而非对传统复古硬件的严格模拟。通过设定严格的技术约束——包括128x128方形分辨率、自定义16色调色板以及严格的代码Token限制——PICO-8有意消除了决策疲劳和商业压力,营造出一个“舒适的设计空间”。White解释说,工具的架构本身就是一份隐性的设计宣言,并阐述了隐写PNG卡带、集成编辑器和直接操作内存等特性如何鼓励重组二创、趣味探索,以及让人毫无愧疚感地放弃项目。演讲最后强调,通过元设计设定边界,能将繁琐的技术摩擦转化为一个个小巧而富有创意的挑战。 PICO-8等幻想控制台犹如“印象派硬件”,比起精确模拟物理CPU芯片,更注重情感共鸣、怀旧情怀与心理舒适感。 (34:00) PICO-8通过代劳重大技术决策来营造“舒适的设计空间”——强制执行128x128分辨率、固定16色调色板和32 KB卡带容量限制,以消除决策疲劳和软件使用摩擦。 (40:36) 严格的技术限制充当了创作者的情绪安全阀,一旦Token或内存预算耗尽,便可将责任推给平台设计者,让创作者能够心安理得地放弃项目。 (42:38) 尽管开源重新实现有助于软件的长期保存,但PICO-8的官方核心仍保持闭源,以防止社区碎片化并维护共享的文化基准。 (57:11)

Source quotes

[40:36] Joseph White: In a cozy design space you don't feel afraid to do anything wrong, you can leave your ego behind and not try to be impressing anybody or anything like this, you just want to make something for the love of making. [53:20] Joseph White: You can incorporate designing and developing tools as part of your creative process. [39:00] Joseph White: When you're a designer and you get into a design rat hole, into a quagmire, the only way to get out is to pop up one frame of your stack and sort of do meta-design and see what are the boundaries that you're operating inside. [57:11] Joseph White: If it was open source at this point there would be many variations of PICO-8 that would sort of eat away at that shared experience [9:54] Joseph White: When you see glitches in games or anything, it sort of shows the underlying material of the system [4:03] Joseph White: I want people to just make something, capture the concept, and then just move on to something else and to feel okay to do that.

Original transcript

[0:07] next speaker is Joseph white also known [0:10] as Zepp who is really one of the longest [0:15] time indie developers that I've met and [0:16] his first commercial release was in 1993 [0:19] as a kind of a shareware game [0:21] distributed on BBS's but really I mean I [0:24] became of became aware of Joseph's work [0:27] around 2007 I think he released a couple [0:29] of well-received games under the wexel [0:33] awful banner Zen puzzle Garden was one [0:36] and chocolate castle was the other one [0:37] so really a indie developer of some [0:41] repute but Joseph's here today to talk [0:44] to us as the inventor of the fantasy [0:47] console concept you know what is a [0:49] fantasy console fantasy console is a is [0:53] like a hardware platform for games that [0:56] exists only in emulation only as a kind [0:58] of set of specifications and an emulator [1:00] and Joseph invented that or sort of [1:03] started that idea which is sort of [1:05] gathering steam now with the picket [1:07] fence fantasy console and you might sort [1:10] of think to yourself if you've never [1:11] used a fantasy console you know why [1:12] what's the you know what's the what's [1:15] the attraction and that what's the point [1:16] of that and I think for me I would kind [1:19] of encapsulate it as it simplifies and [1:23] scopes down game development in a way [1:25] that just makes it more enjoyable and [1:27] you know I over the last year I ran a [1:30] class where students make games [1:32] exclusively in Pico eight and really [1:34] this this one thing summed it up for me [1:36] I was you know finished the class you [1:38] know sent out all my grades and I [1:40] noticed one of the students writing a [1:42] tweet on Twitter says you know we've [1:44] been using exclusively pick away in my [1:46] class this semester and in my last few [1:48] months at college I finally understand [1:51] why game why game development is fun and [1:54] I really can't say it any better than [1:56] that [1:56] so please join me in welcoming Joseph [2:04] all right thank you so I'm really glad [2:08] that um that gonna give you a sort of [2:12] introduction to what a fantasy console [2:14] is because I still don't like to explain [2:19] it myself but so it's a combination of [2:23] identifying what's already happening in [2:26] the software world with with tools like [2:27] puzzle scripts and twine you know things [2:31] like things like this that have an [2:32] identity that expresses itself in the [2:35] work made with it and creates a nice [2:37] space for people to work in but also [2:39] because I needed to come up with some [2:43] language to explain what I was doing to [2:45] my with with my work to my users so I've [2:51] color-coded this talk just to help [2:54] navigate a bit the the warm colors mean [2:58] they are familiar to me and this is you [3:01] know these sort of straightforward [3:03] things just what peak await is and how [3:06] it came about [3:07] so the cold colors um a little a little [3:12] more scary they are you know text heavy [3:14] and just theory and musing about what [3:18] fantasy consoles are and and what it [3:22] means for tools in general but then I'm [3:23] gonna try and bring it back to um pick [3:27] rights particular goal which is to [3:29] create a cozy space um and I'll talk [3:33] about what I think coziness is better so [3:38] I'll give you a Christian just by the [3:41] way how many people have actually used [3:42] pick right or roughly know what it is so [3:46] leave your hand up if you've made only [3:48] if you've made a cartridge okay that's [3:51] great [3:52] um by the way thank you for making [3:53] cartridges so it's fantasy console the [4:03] thing that makes a console a console is [4:06] not the hardware I think the important [4:08] thing is everything else so that the the [4:12] community the the design culture that [4:15] forms around that the tools that come [4:19] with the console really shaped the work [4:22] that's made made with it and the way [4:26] that it acts as a distribution platform [4:30] but you do have to choose participation [4:32] so these these are carefully selected to [4:35] give Pico eight its own character I went [4:39] with the smallest resolution I could [4:41] that can still express roughly you know [4:45] any game that someone's interested in [4:47] exploring the the palette was a big deal [4:50] I spend a lot of time working on the [4:52] palette and you'll see why did that the [4:56] design of the palette is actually sort [4:58] of an analogy for the design of the [4:59] whole system the choice of having only [5:03] 32 cartridges 32k cartridges was also [5:06] important because I'm valuing design [5:09] over content I want people to just make [5:11] something capture the concept and they [5:14] just move on to something else and to [5:15] feel okay to do that the sound yeah it's [5:21] it follows follows suit it's it's a [5:23] minimal end just does the job and maybe [5:28] the most important feature of Pico eight [5:29] is simply that is the tools built in so [5:33] you know naturally I'm giving this talk [5:35] in npq 8 so if I press escape um I get a [5:38] command prompt and so you can just type [5:42] lure commands directly [5:49] if I reboot this is what it looks like [5:51] when it starts up and I'll talk about [5:53] why it's important to put it into a [5:55] prompt later so here's a sprite editor [6:02] I'll see if I can make something real [6:05] fast sorry if this doesn't turn out well [6:11] okay this is just the standard test [6:13] bunny I use I use it a lot this is a map [6:18] it's just it's just a grid of 8-bit data [6:22] so you can decide what the meaning is [6:24] it's it's sort of quite you know this [6:26] I'm trying to remove the semantics this [6:28] is a sound editor let's see if the sound [6:29] works maybe see if I can should not [6:34] volume okay so yeah the sound is not [6:43] much data but you can use it to make you [6:46] know roughly what you need and music is [6:51] sound that's played slowly okay let's [6:59] see if you can hear this [7:00] [Music] [7:02] that's beautiful okay so if you go into [7:07] the tracking mode this is the same data [7:08] but just presented differently so this [7:10] is this is sort of like a um amiga styl [7:13] checker and you can assemble music into [7:19] sorry sounds into music by adding [7:23] channels so for example if I put like a [7:26] basic thing in and [7:31] [Music] [7:35] okay we can ship it right so this is the [7:40] code editor about sorry I wanted [7:44] everything to be contained about half of [7:47] the users do everything in this horrible [7:49] font and I wanted to make you suffer [7:53] today by reading this font for this [7:55] presentation so you can feel what it's [7:58] like for picot a user but also maybe you [8:00] can see that you get used to it it's [8:02] surprising that you can fit this into [8:03] 128 squared so what am i doing [8:09] draw so it's just Laura so clear screen [8:18] I love CLS as soon as I type cialis I [8:20] feel good I don't know if you're sort of [8:25] familiar with you know old basic [8:26] machines see how this was you know it's [8:29] what you typed first it feels like a [8:30] ceremony you know when you're studying a [8:32] new program we need will type CLS you're [8:35] not just creating the screen you're [8:36] clearing your mind and your soul [8:37] preparing for something new okay so [8:42] let's say [8:50] Plus 9/16 and radius and duplicate that [8:58] look if it different period I don't know [9:01] if this is gonna work [9:02] um please be with me while I do pike [9:05] this um so this is this is a command [9:08] sprite and we can I just draw a sprite [9:13] one it takes my okay great [9:19] so there's at least money doing his work [9:21] and you can print of course print is [9:26] another like classic basic thing I [9:31] really wanted to put weird characters [9:33] into the credits so you can just type [9:35] you know things like this [9:37] [Music] [9:44] so that says it's x dude [9:48] and color I'll see if that works okay [9:51] great this so there's a program and now [9:54] I want to share this with my friend so I [9:56] can I can save it as a PNG file let me [10:02] take a screen [10:06] woah that's not what I wanted captured [10:10] label okay now I can save it as P but P [10:14] a PNG and so now we have this this file [10:23] so this is the cartridge oops okay let [10:27] me zoom in so I so all of the data is [10:30] stored in the red-green-blue data it's [10:32] it's encoded in little bits of the RGB a [10:34] channels so if you look closely it's [10:36] actually I'm fuzzy and so you can see in [10:39] this cartridge to someone else then they [10:40] can load it in the air pika wait and [10:42] read the source code and do everything [10:43] that you did yeah it's just sort of make [10:51] it feel more real so here's is a here's [10:55] a demo cartridge that I released in the [10:56] first alpha like two or three years ago [10:58] yeah three years ago and never updated [11:00] and and I just like everyone like [11:02] thousands of people have seen this to-do [11:04] list at the top like to do levels and [11:07] monsters I turned out to be a good thing [11:11] to do because it sort of like sure it by [11:13] example it's okay just really stuff it's [11:15] fine you know you're you're among [11:16] friends um so this is jumpy and it's it [11:23] uses be great in a straightforward way [11:24] like you know I've drilled Speights and [11:26] and put them put them on the map so I'll [11:31] just show you one thing quickly which is [11:32] I added a corrupt mode so if you if you [11:39] poke I'll clear the screen it does have [11:42] a memory so if you poke somewhere in the [11:44] memory gosh let's see [11:49] okay see those see those little dots [11:51] that's that's because some one bite [11:55] you know covers two pixels on the screen [11:57] and so there is a seemingly realistic [12:01] memory mapping if I if I randomly poked [12:10] stuff into the memory range every frame [12:15] it looks like this it doesn't crash [12:20] because the code is actually in a secret [12:22] like magic the lower section which is [12:25] not touched by this and there isn't I [12:29] show this to use because I think it's [12:30] important way to to demonstrate like [12:36] what the underlying glitches are [12:37] interesting because they sure are your [12:39] lessons so here at covering the music [12:41] I'll run a couple times so you can see [12:42] different in typing here's some so [12:45] clearly it's clobbering the map that [12:49] sounds like with like wealth music [12:51] filters we're not in like a flag saying [12:53] if something's a monster flipped in [12:55] there a whole bunch of things turn into [12:56] monsters [12:58] so when you see glitches in games or [13:00] anything it sort of shows the underlying [13:02] material of the system and one thing [13:04] like the first thing I did as soon as [13:06] everything was running in Pico eight was [13:07] okay I need to catch this and see if it [13:09] glitches nicely okay so it also has like [13:15] an explorer these are some things made [13:18] with Pico eight to liking cats having a [13:22] conversation some really crazy technical [13:27] things more technical things came about [13:32] hugging hugging other hugging was just [13:36] to make them your friends so you can get [13:39] love back from them and you know like [13:41] more people [13:42] [Music] [13:47] kind of hard for that for me things I [13:50] love this one this is um this is bye-bye [13:54] a friend of mine who loves using big [13:58] white for things that shouldn't do so [14:01] you know the point of calligraphy is is [14:03] the the touch and the nuance Center the [14:07] find it work that's the best one I have [14:08] a dress it's supposed to be funny [14:12] because it goes wrong um you know it's [14:16] just an eight directional controller so [14:19] he put inertia on the underbrush and [14:22] that this I all sort of it's a game [14:24] about drawing about making spiderwebs [14:27] and it does have you know goals and [14:30] schools and action by I just like to [14:33] take time to build spider webs [14:37] okay so I'll just draw one strand yeah [14:40] so you can you know take the strands and [14:43] make a spider River yeah okay so that's [14:47] that's what Pico rate is let me go back [14:50] to the slides let's see if it picks up [14:55] okay so how did it happen [15:04] Pico eight is a really enjoyable project [15:06] to work on because there are so many [15:09] motivations and like create achill [15:11] considerations and you know aesthetic [15:14] ambitions that that all folded into it [15:17] that kind of carried peak weight along [15:19] it's one of those projects that feel [15:21] like once you choose the the goals or [15:24] the problem something you somehow you [15:26] just carried along to the you know to [15:28] the result so I had a bunch of [15:33] motivations I always made tools since I [15:35] was a kid I just loved making pixel [15:37] drawing programs and enjoying it and [15:39] that just never stops in and that's you [15:42] know a key feature of Pico eight I [15:44] wanted to make something that lets me [15:47] work how I like to work rather than [15:50] fighting against um other tools and I [15:53] wanted to make I wanted to get rid of [15:56] all of these interfering thoughts about [15:59] what I'm developing for like which [16:01] platform and just pick sort of like a [16:05] health style and just make games in [16:07] their abstract space and then worry [16:08] about how to actually present it to the [16:09] world and also I just frustrated with [16:13] software software sucks it's terrible [16:19] yeah III get so I don't I'm a common [16:23] person in general i don't get roid rage [16:25] i have no idea what that feels like but [16:26] i have software rage like the the time [16:29] between doing clicking on something and [16:31] waiting for half second for a window to [16:33] pop up that half a second my mind is [16:37] completely lizard brain raging animal [16:41] and I feel as it's much more disruptive [16:43] to a creative work then then we [16:45] generally realized and of course we [16:46] realize it anyway there's some moments [16:50] that I wanted to capture that I want to [16:51] sort of work backwards from one of them [16:53] is rummaging through a box of unlabeled [16:56] immediate ascore commodore 64 disks and [16:58] not knowing what you're gonna get like [17:00] you don't even know what you're looking [17:02] at when you run the program I also like [17:05] the feeling of I noticed that I did [17:08] really good work on napkins that I knew [17:09] that I was going to throw away and I [17:12] started to work on napkins because you [17:16] know I was in that space and I felt like [17:17] I'm going to do something good if I've [17:18] got a napkin and then I just ended up [17:20] with a collection of napkins in my bag [17:23] but um I you know I wondered if I could [17:26] sort of do that with with tools this is [17:30] from the demoscene [17:32] how many of you are familiar with the [17:34] demoscene [17:35] okay the rest of you you're in for a [17:38] treat don't check out the the demoscene [17:40] so the demoscene is just a whole bunch [17:42] of people are making programs for each [17:43] other for the love of it demonstrating [17:46] not just programming ability but just [17:48] making programs that you sit back and [17:49] watch and are interesting for a variety [17:51] of reasons but I always felt like [17:54] because there's no commercial platform [17:57] for Dimmick further for demos and they [17:59] will always felt like like little [18:01] messages to other programmers to it to [18:03] entertain each other and connect with [18:04] each other and being in New Zealand [18:06] they're not knowing anyone in the demo [18:08] scene for years and years every time I [18:10] watch the demo I felt a little personal [18:12] connection I like cute problems versus [18:17] annoying problems I I feel relieved when [18:20] I have to write a commission algorithm [18:22] or something like this I feel like ah [18:24] you know thank goodness I can do some [18:25] computer science um in the modern [18:28] software world a lot of work is making [18:30] Glu Glu hard to stick things together [18:34] and also I wanted to make something that [18:38] carries you along [18:39] [Music] [18:41] and doesn't make you feel and under [18:45] pressure to do anything in particular um [18:47] to be playful and okay so yet another [18:52] layer of motivation I will skip through [18:55] this quickly because it's a little bit [18:56] out of scope but this is the project [18:58] that I started with this is this is [19:00] another fantasy console and this was a [19:06] first released in 2011 [19:08] let me just six entries in here [19:14] so this this fantasy console is is more [19:17] interested in a visual style so the [19:19] display is a volumetric cube a block of [19:23] of cubes and it's good for you know [19:28] things like destructible physics and [19:30] things like this but when I started [19:33] working on this I didn't have the [19:34] fantasy console idea and I was trying I [19:37] had different parts to it but it was I [19:41] was presenting it as a monolithic thing [19:42] so I had game modes and I had instead of [19:46] tools I would just say okay it's level [19:48] designer but I wanted people to feel [19:49] like it's a platformer and that things [19:51] made in it as there's that they had [19:53] authorship um but I had this this big [19:56] language problem his his so here's [20:03] another focus on cottage it's the the [20:06] hug game that you saw before I remade [20:08] the suspension and souls game remade in [20:13] 3d so you can see I can like tilt the [20:15] display okay so the problem is that it's [20:24] monolithic and I didn't know how to [20:27] present work made in it as as something [20:29] that felt like his you know separate [20:31] creation and I wanted people to feel [20:35] that they were the authors of this thing [20:36] they weren't just making a little for [20:37] another platform and so that's that's [20:40] what gave me the concept of cartridges [20:43] as an analogy for a basic unit of [20:46] expression that that's sharable but it [20:50] took me a long time to get to a fantasy [20:52] consoles from from that I don't know why [20:54] I just couldn't see it I I had pica [20:56] weight and I had the idea of cartridges [20:59] in Pakistan but it never occurred to me [21:01] to make Fox from [21:02] a fantasy console in the same way but it [21:04] is now like the next time the Fox trying [21:07] get stuck tight it'll be a fully-formed [21:09] it will come out of its cocoon and be [21:11] fantasy console clarify yeah so I've [21:16] mentioned these things before I won't [21:17] peek wait to be self-contained to have a [21:21] whole ecosystem to have its own identity [21:25] and to feel real and feeling real when [21:28] it's just a piece of software is [21:30] interesting I really I could do things [21:34] like like release things on cartridges [21:38] or rather export to cartridges so that [21:41] you know you have this language and [21:44] these melodies in your mind so it feels [21:46] more like a real thing and also I'm not [21:51] trying to capture a moment in history [21:53] there are a whole bunch of really lovely [21:56] old machines come on Oh 64's BBC micros [21:58] that their specifications were they you [22:03] know they came out of the requirements [22:04] of that time but now we can just make [22:06] anything we want so instead of trying to [22:11] capture something that's already [22:13] happened I'm designing from scratch [22:16] there's too many design rules I wanted [22:20] to be small I want the I want to choose [22:24] things for the users so that it doesn't [22:27] really matter how they use them it will [22:30] make something that's not terrible so an [22:33] example is a box of crayons where that [22:36] the colors are chosen so that you know [22:39] there's no two colors that don't really [22:40] worked here and the specs should [22:44] interact with each other nicely [22:46] it's useless they have a whole bunch of [22:48] graphics in sound if you don't have [22:50] enough code to actually run the graphics [22:52] and sound for example and I need to put [22:55] friction in the right places so that [22:56] people work on interesting problems and [22:59] don't have to think about things which [23:01] are not interesting and to kind of sum [23:06] it up I want be great to feel like a [23:08] medium so it has qualities to it the way [23:12] that canvas has a texture or you know [23:15] brushes have a weight or a behavior so [23:19] these are the particular choices that [23:21] I'll just quickly go over the screen [23:25] size was [23:29] it's square so that there is no access [23:31] which is primary it's it's one choice [23:34] you can remove is which way to put your [23:38] action and also it just feels strange it [23:41] feels different even though it's very [23:42] impractical and you know people often [23:45] sort of complain like wait why can't we [23:48] just make it a bit wider so that if it's [23:50] on on modern Martha's but it's another [23:53] thing which sort of adds to the feeling [23:55] that it's it's a real thing and that [23:57] you're entering a different space and [24:01] also it's a competitive world of a [24:03] strong so the thing that I showed you [24:05] before [24:05] it's the display is actually 64 Pico [24:08] eight screens stacked on top of each [24:10] other okay so I mentioned before they're [24:15] designing the pallet is sort of [24:18] analogous to the whole project and I [24:23] found that there are these these two [24:24] processes that I go through one is an [24:27] eating where I have many many [24:31] placeholder solutions to a design [24:33] problems and then as time goes on I [24:37] reduce that gradually reduce the [24:39] temperature of how much they jump around [24:40] and watch how they interact with each [24:42] other so that in the end of the project [24:45] they're making very small movements in [24:47] relation to each other [24:48] another one is folding where you have [24:50] many different requirements and they [24:52] they create gravity and pull things in [24:54] different directions so in the case of [24:56] the powered Torre about that [25:02] [Music] [25:03] I wanted to have eight looping colors I [25:08] get rainbow on the top so that you can [25:09] you know just have a nice ramp straight [25:13] out of the gates I needed to find a [25:16] grayscale ramp but I also wanted to do [25:20] something with the blues so this you [25:22] know this this color here is interesting [25:23] it's it's it has a role in many [25:25] different contexts and I wanted to have [25:29] some cold colors that go and lead into a [25:32] warm palette for you know thing with [25:34] situations where you want to have have [25:36] warm natural lip scenes [25:40] so yeah the pellet the palette is sort [25:47] of a tidy small example of how the the [25:50] whole project travelled so in the case [25:53] of the specifications for example the [25:55] you know the code size would pull [25:57] against the size of the sound effects or [26:03] or one API function would you know [26:06] create more motivation to use another [26:08] functional or not to have it at all so [26:12] everything kind of danced around a lot [26:13] in there over time its it slowed down [26:15] and I think that's you know most people [26:17] go through that that process but um it's [26:21] sort of something that I like to [26:22] consciously recognize and put in my [26:23] notes you know where I am at in their [26:26] process of of anything [26:33] yeah as I mentioned cartridge size is [26:35] basically chosen so that you can't make [26:37] big things I think it's just really [26:39] liberating to make small things enter be [26:41] and to feel okay to make small things it [26:45] make it forces you to think more about [26:47] design then manufacturing a lot of [26:49] content and and to focus on what's [26:54] important to you in throw away things [26:56] that are not important and it forces you [26:59] to confront the cute problems like how [27:01] to fit your data in and often you know [27:03] those problems lead you down a new path [27:06] that you wouldn't have otherwise [27:08] considered yeah the sound the sound [27:13] effects followed with the same [27:16] principles they are as small as they can [27:18] possibly be and you can't really go to [27:21] wrong you can draw random sounds and [27:26] hold down control to get a pentatonic [27:28] scale and you know you can use there for [27:31] your title screen music the the API is [27:35] minimal not just to keep things simple [27:38] but also because I don't want anything [27:41] magic to happen in Pico eight if you [27:44] want to make a collision function or if [27:49] you want two things to glide you just [27:50] have to write the code or you have to [27:53] copy it from another cartridge and as a [27:59] result I think you know people will be [28:00] naturally introduced to classic problems [28:04] and have the satisfaction of solving [28:06] this or you know there's no sort [28:08] function I added a SWAT function just [28:12] while I'm developing things for my own [28:15] personal use but then I took it out I'm [28:17] not trying to solve engineering problems [28:20] and sometimes I feel sorry about that [28:24] so for in the case of the sort function [28:28] [Music] [28:29] so for the spinny thing all you need is [28:32] a bubble sort bubble sort works really [28:34] well because the relative distance of [28:37] the items doesn't change that much [28:39] per frame because it's it's slowly [28:40] rotating [28:42] and and you know so it's just a little [28:44] snippet that you can paste them and it's [28:46] it's really satisfying so here is almost [28:50] the entire API and you know I I I'm [28:54] really tired of massive API is that I [28:56] don't even know where to start [28:57] navigating and so I had a lot of [28:59] motivation to keep it as small as [29:00] possible so yeah I wanted an API that [29:04] you can just hold in the palm of your [29:06] hand and see the whole thing at once [29:09] um yeah some system callbacks so after I [29:15] started getting cartridges there were [29:16] three areas of change driven by what [29:20] users were doing a lot of people were [29:23] naturally using fill patterns to you [29:25] know to get around the 16 colors and to [29:27] do 3d effects and things like this [29:28] and I just really enjoyed the way that [29:32] they look like method material like at [29:35] that resolution and so I added fill [29:37] patterns [29:38] partly because I you know I just liked [29:41] that aesthetic and I want to sort of [29:42] reduce the friction on that so that [29:44] there are more cartridges with fill [29:45] patterns and also it's just a great way [29:48] to introduce people through to a binary [29:51] representation because when you're [29:53] expressing the fill pattern you need to [29:56] you know get our little 4x4 grid and do [29:59] the powers of two and add the numbers [30:00] together to get the value that you're [30:02] after the code was too small on the [30:06] first release and so I and people were [30:08] minifying their code that was a big [30:10] problem it defeated the purpose of [30:12] having shareable code so I changed the [30:15] code size limit from s key characters to [30:18] tokens you know so one word or one [30:21] variable name is a token and that helped [30:22] a lot to avoid minification and also it [30:27] just feels cuter spending tokens [30:30] [Music] [30:32] multicarts is interesting how you know [30:34] through it a lot of people who are [30:36] pushing against the boundary of the 32k [30:39] cut size and wanted to do bigger things [30:41] so I I didn't want to to break that rule [30:46] I wanted the character size to be sacred [30:48] for the reasons that I mentioned but I [30:51] so I introduced the concept of multi [30:53] cats where you can export a cartridge or [30:56] you can export a epic o8x cutable that [30:59] has other cartridges inside it that you [31:00] can load and run so if you're using it [31:03] you can still feel like there are [31:05] cartridges and you can sort of have both [31:07] both worlds but the interesting thing is [31:09] that after I released it nobody actually [31:11] makes multi cuts so people don't know [31:14] what they want the brute sequences is [31:18] important because um because of framing [31:25] and presentation it feels like you're in [31:27] a new place you're inside the machine [31:29] and with Wynette boots there is a chime [31:35] you know the Dillard it and I think it's [31:38] it's um it kind of calls you back to [31:40] what you were thinking it's like you [31:42] know me typing see how this I noticed [31:46] that the opposite thing happened when I [31:48] was doing contract work and I was [31:51] miserable doing this work because I had [31:54] to use you know Xcode or something like [31:56] this and every time I turned on my [31:59] Macintosh and I heard that time I could [32:04] feel the bank of my head burning like [32:06] just from the chime just because of [32:08] heavy on conditioning and so I'm trying [32:12] to reclaim that I'm trying to wipe that [32:18] okay so [32:22] so now we're entering the Blue Zone [32:26] fantasy consoles are basically [32:28] impressionist hardware when you're [32:31] designing one you're not thinking about [32:33] how to solve engineering problems you're [32:35] thinking about the feeling of the person [32:37] using the console and and how to provoke [32:41] all of those associations and emotions [32:45] and it's really just a knife holder if [32:47] something is a console of feels like a [32:49] console you have to choose when it [32:53] starts not being real so in the case of [32:56] Pico eight there's no instruction set [32:58] for example there is you know lure the [33:02] lure virtual machine but I just didn't [33:05] need the instructions it to you know to [33:07] feel tangible and language is very [33:11] important I think that's a key really [33:13] occurring theme in previous talks I'm [33:15] just calling something a cartridge just [33:17] completely changes the users [33:18] expectations and perception and yeah so [33:24] all of these things also help pick [33:29] weight to act as a medium because of [33:32] these expectations and just the feel of [33:36] it so those are the things that they [33:40] give PQ 8 its or any fantasy console [33:43] it's I didn't see [33:47] but I'm not you know I'm not trying to [33:49] prescribe what a fantasy console is I'm [33:51] I'm it's just a family resemblance of [33:55] features and I couldn't see what I was [34:00] doing until I had peak right and and [34:04] boxed run so I I saw this from every [34:07] stalk the the idea that once you have [34:08] two projects and you can see the mix to [34:10] each other that gives you a space a [34:12] frame of reference and then you can see [34:14] what you're doing and I found that so [34:17] useful that I even went so far as to [34:19] design a third console just as [34:23] scaffolding so I designed a Pico 16 just [34:28] to remind myself to not make that like [34:31] Pico 16 does not work at all and so it's [34:34] sort of a negative frame of references [34:35] that pushes design decisions away from [34:37] it and I did also design a Pico 64 I [34:42] will never make anything called Pico 64 [34:45] but and the question was what would it [34:49] look like if it was the same conceptual [34:51] distance from Foxtrot and Pico eight I [34:54] don't need to make that thing but it's [34:56] just you know useful tool and designing [35:00] something to ask that question and to go [35:02] through the process just so that you can [35:04] see what you're doing immediately yes [35:08] there's a bunch of other console he [35:10] thinks that if I've mentioned like I'm [35:12] like puzzle scripting and whatnot that [35:14] feel quite differently if their own [35:16] identity yeah there's a bunch of other [35:20] things which is sort of on the boundary [35:21] of what what what I'm doing to like you [35:25] know even just modern games to make [35:26] other things has that feel because you [35:30] know they have their own communities and [35:31] their own tools and game even the [35:35] concept of game jams I mean game jams [35:37] also create a different space and [35:39] different feeling to work in so there [35:41] are some there is also some family [35:44] resemblance with fantasy consoles [35:47] framing yeah so Pico eight is different [35:53] enough from things that people have used [35:54] in the past both as a player and a [35:56] developer that when you see a boot you [35:58] don't really expect anything of it and [36:01] all bets are off and so I can kind of [36:03] get away with anything so for example [36:09] you know I showed you the corruption [36:11] thing before when you reboot when you [36:13] reset a cartridge it injects some random [36:16] values into memory to get a nice glitchy [36:18] effect but I I forgot that I had met [36:21] some of the permanent storage to memory [36:23] and so every time someone recently cut [36:25] cartridge it was sometimes clobbering [36:27] their data but because it's I mean [36:30] that's a bad thing but because it's a [36:32] fantasy console my users enjoyed it they [36:34] thought this was like this was an [36:37] intentional humorous thing and I started [36:40] working on how to do voting logic to [36:42] store their data [36:43] you know reliably things like this I'm [36:46] there to kind [36:47] I fixed it so there are very they're [36:56] very fuzzy boundaries between tools that [37:01] you're designing for your software that [37:02] you're using and the medium that you're [37:06] working with and your process for making [37:08] things it's something that when you're [37:13] designing thing you have to do anyway [37:14] you have to have you have to find a [37:15] space of possibilities to work inside [37:18] and that might be you know following [37:21] Disney's team rules of animation or it [37:24] might be you know picking it up in a [37:28] particular platform or audience to work [37:31] with and I mean [37:41] they are clearly separate concepts but [37:44] you can say anything about you know any [37:46] combination of these things which [37:49] couples them in some way so we might as [37:53] well just make a equivalents spinner the [38:02] medium okay let's let's try again I [38:08] don't want to talk about that medium [38:14] okay so so just by just by using a tool [38:19] that you don't you don't need to state a [38:22] manifesto the the tool sometimes has the [38:26] manifesto inside itself because it lets [38:28] you do things which are congruent with [38:30] with that set of design values [38:33] Dennis Reagan is okay sometimes a tool [38:45] even invites you to make something for [38:48] it you know have you have you ever seen [38:50] something online just some some way to [38:52] express yourself and you feel like okay [38:54] I want to make something for that and I [38:55] don't know why it's it's it's somehow [38:57] inviting and by the way that was all [39:00] totally rigged sorry yes what tools can [39:06] do those things they can they can [39:09] capture you you can design tools as part [39:12] of your process the the way that a [39:13] watchmaker makes tools to make the [39:15] watches it's just an unavoidable step in [39:17] the process and and the tools have [39:19] reached back to the I mean that the [39:22] medium of course influences the tools [39:24] and the tools have reached into the [39:26] process and the product it's it's all a [39:29] very big fuzzy blob and [39:35] so I guess I mean if you want to sort of [39:37] stay back a little but what you're [39:39] trying to do is find designing spaces to [39:42] work in you are when you're a designer [39:46] and you get into a design rat hole into [39:50] a quagmire you the only way to get out [39:52] is to pop up one one frame of your stack [39:56] and and sort of do meter design and see [39:59] you know see you what are the boundaries [40:02] that you're operating inside so it's [40:05] just something that designers do anyway [40:06] and when you're making tools you can you [40:09] can crystallize or formulate as part of [40:10] that process you can also use it to try [40:15] to find fertile creative spaces so [40:19] instead of designing the thing you [40:20] design the boundaries in such a way that [40:23] you know that when you're operating [40:24] inside those boundaries the possibility [40:28] space is rich enough that you just you [40:29] can't help but run into interesting [40:32] things and you get sort of carried along [40:36] so so it would come back to this is the [40:40] last section to come back - pika wait if [40:44] I were to characterize the design space [40:47] that Pico eight is trying to offer it's [40:50] to be cozy cuteness I don't really want [40:56] to go into cuteness I feel like design [40:58] spaces and machines can be cute and I [41:00] don't know why they just think of you a [41:02] certain feeling when you when you look [41:03] at them and it's something about being [41:06] small and inviting and somewhat unravels [41:09] but it but paradoxically it gives you a [41:11] feeling of freedom and you can in in a [41:17] cozy design space you don't feel afraid [41:19] to do anything wrong you can leave your [41:25] ego behind and not try to be impressing [41:29] anybody or anything like this you just [41:31] want to make something for the for the [41:32] love of me [41:35] you feel playful when you're in a cozy [41:38] design space you feel compelled to [41:41] explore and you want to make connections [41:45] with other people and symptom messages [41:48] in a bottle and a cozy design space I [41:52] think invites you to make something for [41:55] it so something that cosy design space [42:00] is not or what it's fighting against is [42:02] as decision fatigue there are so many [42:05] things that you need to think about when [42:07] you're doing a project and and many of [42:09] them really interfere with with design [42:12] and creative thought how big the project [42:14] is what is my personal motivation for [42:16] doing it what's it going to look like [42:18] how am I going to distribute it to other [42:20] people and how is it going to physically [42:24] exist things like this I want to throw [42:27] all of that away and say to be who I [42:29] uses okay I'll don't worry about it I'll [42:31] take care of that just just make a picot [42:33] a cut so we have we are looking for [42:41] boundaries that feel good to be inside [42:45] but because we're out of the we are [42:47] aware of the boundaries it also makes [42:49] sense to go outside them and make things [42:51] that are not supposed to be in that [42:52] space and it's interesting too so this [42:56] is this is ambiguous you can have [43:00] freedom by virtue of the fact that there [43:02] are boundaries which is maybe [43:05] counterintuitive because you're in this [43:07] rich space it's it's sort of like it's [43:12] because you can see more if you have no [43:14] boundaries then the space is so sparse [43:17] it's like being out in space you're [43:20] looking at the stars in the distance and [43:22] they're interesting complex things but [43:23] they just all appear as points of light [43:25] whereas if you find some boundaries it's [43:28] more like being down on the surface of a [43:31] planet [43:32] with a lush jungle and interesting life [43:34] but it's just one planet being in acute [43:40] space gives you license to abandon [43:42] things and just move on to the next [43:44] thing because uni was based and you have [43:46] to do there's no choice and so [43:47] you you you can blame that on me the [43:51] creator of the space so there are two [43:57] processes going on there's the process [44:00] of the user making things and the [44:04] process of designing and making peak [44:06] weight and we're going to try to tie [44:09] them together a little bit by saying [44:12] that these these tools they have an [44:19] implicit design many fear story built [44:21] into them and in peak weight this case [44:27] or cosy design spaces case the the [44:33] principles are that small things matter [44:34] you can make small things they're [44:36] variable by themselves or as components [44:38] for other things that can be remixed I [44:41] feel much more touched by small things [44:44] and that I that I see other people [44:46] making I don't know why I just love to [44:49] see isolated little thoughts it's okay [44:54] to make something I just move on to the [44:55] next thing [44:57] you can find boundaries and work work [45:04] inside them [45:08] and if you find one of these spaces it [45:11] you can be carried along by it I'm not [45:14] saying like um you know for a new path [45:16] doesn't mean it doesn't mean that you [45:21] know it doesn't mean make make make new [45:23] things or find a new space it means let [45:25] yourself be carried along by the [45:27] qualities and properties of a space and [45:30] that you can just you know it's okay to [45:32] ignore the real world sometimes and so [45:36] if I if I try to reduce all of them all [45:39] of those five things then I think cozy [45:43] spaces about working in a cozy place [45:49] thank you very much [46:03] okay I guess we have a little bit of [46:05] time for for questions so I'm just gonna [46:08] throw it open because you already [46:09] answered the question though I was gonna [46:11] ask which is what do you mean this is [46:12] written yeah what do you mean by [46:15] cuteness and you don't want to answer a [46:17] question which is fair enough I think [46:19] that's probably a lot but do we have [46:22] questions in the audience for Joseph [46:24] they're in the back [46:25] [Music] [46:37] [Music] [46:47] [Music] [46:49] we just you [46:54] I'm happy to hit this okay yeah oh okay [47:02] question is what are you working on next [47:04] um I really want to actually just join [47:08] the party and be a pk8 user alright so [47:12] at the moment I feel like I'm sort of in [47:14] the kitchen making snacks and I can hear [47:18] everyone laughing and talking in the [47:19] other room and at one point zero [47:23] I just want to join the party and and [47:27] drink some wine sorry for the video the [47:50] question is yeah what what are you going [47:51] to bring from pick away back to box Tron [47:54] yeah so so vaxtron really spawned pika [47:58] wait but yeah now now pika weight is [48:01] leading Foxtrot and I'm really just [48:07] transplanting the entire form at the [48:11] entire fantasy console format so the the [48:14] cartridge browser the you know cartridge [48:16] sharing and exporting and the the way [48:21] that things are scripted for example the [48:22] the box run API is just a superset of Pi [48:26] Kuwait's API so you can write P Co 8 [48:28] programs in vaxtron [48:29] but then just draw 3d things in the in [48:32] the volume so it helped to to [48:35] crystallize what vaxtron is oh and to [48:39] answer your question about the time [48:40] frame so so it's very difficult to [48:43] juggle these two large projects [48:47] especially because you know Pico 8 is [48:49] very active right now I want to keep the [48:51] ball rolling but I'm doing a fantasy [48:55] console release this year they make let [48:57] me just say this year [48:58] yeah can you talk about the factors that [49:01] mean you choose to use Lua [49:03] oh yeah why did you choose Louis yeah I [49:05] really wanted to use basic partly [49:08] because of nostalgia at first and the [49:13] most practical way to do that was to I [49:16] hadn't really done you know languages [49:18] and compilers I did a philosophy degree [49:19] just to avoid doing the compilers paper [49:26] the easiest way to do that at first was [49:29] to compile from basic to lure and then I [49:35] noticed I started noticing some features [49:37] in the door that I really liked and [49:40] pretty soon it was just lure but also I [49:44] through that process I got to know the [49:47] history of Lua um and and you know rid [49:50] the source code a lot and is technically [49:52] I just really started to enjoy Laura and [49:54] I got over my my reservations about [49:59] lower things things like you know um one [50:01] base to raise really both of me but you [50:03] can't get into like a lower way of [50:06] thinking about things you can have zero [50:08] base to raise into it it's fine it's [50:10] just it's just a table yeah do you think [50:14] of Lua is a cute language so I do I [50:21] think I think it's cute the soapy Kuwait [50:27] does have a limit on the CPU it's the [50:29] number of lured virtual machine [50:30] instructions and so one of aspect of [50:33] cuteness I think is that you can project [50:38] human qualities on the thing and and [50:41] feel like it's a little animal earnestly [50:43] working away and that's how I feel about [50:46] the the lower virtual machine [50:51] I'm wondering what stuff from that time [50:53] I teach many spies here and it was [50:55] actually showing my certainty attorney [50:57] links peek over like oh this is actually [51:00] a little place it reminded them omen [51:03] more than that Commodore in the amigas [51:04] I'm wondering what stuff from that [51:06] original so I I definitely you know was [51:13] influenced from some different machines [51:16] the the Commodore 64 palette I I really [51:19] love it's clearly different from the [51:21] Pecos at the peak or eight palette but I [51:25] grabbed the sort of the principle which [51:28] is is to have color amps that that drift [51:31] across hues and odd color replacement [51:36] options and you know Forks in color rims [51:40] things like this that Commodore 64 [51:42] palette pixel artists have been refining [51:45] and using for a long time and the [51:47] tracker is very heavily inspired by the [51:49] Amiga [51:50] I like the garish colors of EGA but it's [51:53] you know very blunt so I wanted to have [51:55] some sort of be more tertiary and color [51:58] scheme the the feeling of the BBC micro [52:02] I think was was you know of writing a [52:07] booting into a command prompt and [52:09] writing a program from scratch was [52:11] probably from the BBC micro I mean there [52:13] was shared with other machines it's just [52:15] the one that I used so yeah there were [52:16] many small isolated inspirations that I [52:20] took from retro machines okay more [52:23] questions [52:27] so you talked a lot about this being [52:31] like [52:34] like that here's more [52:57] right so the question is is this a [53:00] better way to make games or is this just [53:02] a particular thing right like so I think [53:04] it's particular if I if I if I'm if I'm [53:10] trying to offer something to improve the [53:12] process of making games it's not this [53:15] particular choice it's it's the idea [53:19] that you can be conscious of the reach [53:20] that your tools have on your work and [53:23] that you know tools are not isolated [53:28] things that are used to implement ideas [53:30] you can incorporate designing and [53:34] developing tools as part of your [53:37] creative process and one over here in [53:41] the pigment [53:44] a specific manifesto supposing manifesto [53:48] and I was curious like what what a game [53:51] engine programming environments so yeah [53:57] so what's an unco z gaming well just [53:59] sorry any engine which which is as [54:01] general as possible well just you know [54:05] unity or or any any ide you know but i [54:11] mean within that you know that's not the [54:13] end of the story because they're clearly [54:14] cozy spaces inside unity and it does a [54:18] good job of reducing you know friction [54:20] you don't need to worry so much about [54:21] porting to different platforms yeah i [54:31] think it would it would work and i think [54:36] to some pico right uses the idea of [54:38] wrapping that you know in like even [54:39] knowing that it was there might bother [54:41] them but i think the goal is to climb up [54:46] the letter and then kick the letter away [54:47] and not worry about what's actually [54:49] happening on the outside right what's [54:53] back there [54:55] I [54:58] yeah yeah there there are ok so then [55:03] yeah the question is you don't have red [55:05] in your palette you can't have violence [55:06] you kind of blood there are surprisingly [55:12] few violent be great games partly [55:16] because you can't represent things you [55:18] know in a gruesome way I would love it [55:22] if that was one of the reasons but there [55:23] wasn't like that I recall but I actually [55:25] I don't really like straight red or any [55:28] straight primary colors the the peak [55:33] away red is really quite pink and a lot [55:39] of these colors I I you know I I used in [55:42] past projects and they just sort of [55:44] became colors that I liked and that was [55:46] one of them but when I when I tried it [55:49] out as the top and bottom of side of the [55:52] editing tools I felt it was a really [55:54] good pattern breaker when you see an IDE [55:57] it's usually sort of white and blue and [55:59] things like this but because it has this [56:02] strange rid pink playdoh bar I felt that [56:06] like by itself didn't mean that it's for [56:10] anybody in particular so that was one [56:13] reason that I that I chose that they rid [56:16] so you often you're coming back to this [56:18] idea of things that you picked because [56:19] of your own personal taste this is I [56:22] mean to spica wait and by extension to [56:24] the games made in pick ax wait are they [56:25] in some way a soft portraits of you um [56:29] so it's really it's you know I I want I [56:37] am greedy I want to I want to claim some [56:40] credit for things made in mp great which [56:43] is you know it goes against the goal to [56:48] you know give people authorship but it's [56:51] it's unavoidable that anything you make [56:54] is going to be a reflection of of you I [56:56] think [56:58] how are we doing for time one one or two [57:01] more yeah sure okay we go one Mikey [57:11] yeah know how to work in source [57:13] developers fit into the cozy space so [57:19] open source implementations of the API [57:22] are great because it makes you feel [57:24] safer that your cartridges are going to [57:28] live forever and there's more things you [57:29] can do with it and you know in the long [57:33] term I'm gonna I'm you know working hard [57:36] to make sure that no one will lose their [57:37] Pico eight cartridges but but there are [57:41] reason for reasons for good reasons for [57:42] being close source part part of it is [57:45] that there is a very large secret [57:47] basement to be great that I don't want [57:49] anyone to know about yet please don't [57:52] tell anyone and and also I think if it [57:56] was open to us at this point there would [57:59] be many variations of Pico right that [58:01] would sort of eat away at that shears [58:03] experience you know everyone knows what [58:05] pica waiters how big a cartridges what [58:07] the the pellet and screen limitations [58:10] are and that why it's valuable I think [58:13] so over time you know it should be more [58:20] open and fixable and and say you know [58:23] safe in regards to preserving software [58:28] but it would be bad in the short term [58:30] for that reason yeah so there's good and [58:32] bad things about the open source [58:34] business I will take one more question [58:36] go ahead oh there is it there is a Pico [58:42] for there is a there's a I think it's [58:46] called Pico boy made by Josh blood and [58:50] it's great fun to develop for he I don't [58:53] have a handy but I'm it has you know it [58:57] has a little tiny screen and you hold [58:59] them so there are a bunch of pee [59:00] cartridges that follow the follower idea [59:04] of peak right itself and [59:06] for example there was a tiny TV gem [59:08] where the screen is 11 by 10 and you [59:12] know you you have this little voxel [59:13] television that you can do that for yeah [59:16] okay well just remind it just to remind [59:18] you to put your lunch topics in the box [59:21] during the coffee break and all is left [59:23] is to thank Joseph white for [59:32] [Applause]