
Puck is a C# engine for document-defined interactive worlds. It combines
reproducible simulation, GPU rendering, programmable shader pipelines, and
Game Boy/Game Boy Color and Game Boy Advance emulation. Puck.World is the
application that brings these libraries together.
Start with the engine documentation or follow build and run. The overview explains the major components and how a document becomes a running world.
| Task | Guide |
|---|---|
| Understand runtime boundaries | Engine architecture |
| Author worlds, shaders, or cartridges | Authoring content |
| Explore standalone world packages | Worlds |
| Work on graphics | Rendering |
| Work on handheld emulation | Machine emulation |
| Investigate, test, or contribute | Development |
| Find a project or API | Puck project map and Reference |
| Review upcoming work | Plans |
The reference game has its own design and artwork. It demonstrates engine features without defining the requirements of every library consumer.
📚 Engine manual · 🛠️ Development · 🎨 Branding
Packable projects use ByteTerrace.Puck.* package names with Puck.*
assemblies and namespaces. Each package includes its project README and license
material. The release guide explains shared versioning,
package selection, and validation.
Verification depends on the changed subsystem: simulation laws, native emulator execution, and rendered World behavior answer different questions. Follow the development guide for the appropriate checks and the scope of their evidence.
See acknowledgments for the work Puck builds on.
Puck is open source under the Apache License 2.0. Anyone may use, modify, and redistribute it, commercially or not, on that license's terms.
Separately licensed components, including the bundled GamingBrick firmware, retain their own terms; see the license inventory.
C#
95.1%
HLSL
1.4%
TypeScript
1.4%

Puck is a C# engine for document-defined interactive worlds. It combines
reproducible simulation, GPU rendering, programmable shader pipelines, and
Game Boy/Game Boy Color and Game Boy Advance emulation. Puck.World is the
application that brings these libraries together.
Start with the engine documentation or follow build and run. The overview explains the major components and how a document becomes a running world.
| Task | Guide |
|---|---|
| Understand runtime boundaries | Engine architecture |
| Author worlds, shaders, or cartridges | Authoring content |
| Explore standalone world packages | Worlds |
| Work on graphics | Rendering |
| Work on handheld emulation | Machine emulation |
| Investigate, test, or contribute | Development |
| Find a project or API | Puck project map and Reference |
| Review upcoming work | Plans |
The reference game has its own design and artwork. It demonstrates engine features without defining the requirements of every library consumer.
📚 Engine manual · 🛠️ Development · 🎨 Branding
Packable projects use ByteTerrace.Puck.* package names with Puck.*
assemblies and namespaces. Each package includes its project README and license
material. The release guide explains shared versioning,
package selection, and validation.
Verification depends on the changed subsystem: simulation laws, native emulator execution, and rendered World behavior answer different questions. Follow the development guide for the appropriate checks and the scope of their evidence.
See acknowledgments for the work Puck builds on.
Puck is open source under the Apache License 2.0. Anyone may use, modify, and redistribute it, commercially or not, on that license's terms.
Separately licensed components, including the bundled GamingBrick firmware, retain their own terms; see the license inventory.
C#
95.1%
HLSL
1.4%
TypeScript
1.4%