Help us shape the future of Go! Take the 2026 Go Developer Survey

karty

module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2026 License: MIT

README

Karty

Build retro-inspired 2D and 3D games with Karty.

Karty Banner

Getting Started · Play the demos · Releases

[!WARNING] Karty is under active development. APIs, project formats and features may change.

Features

  • 🐹 Your game, written in Go. Build game logic with Go’s simplicity, speed and type safety, powered by Ebitengine and EbitenUI.
  • 👾 Retro looks. Modern workflow. Create 2D and 3D games inspired by the ’90s and early 2000s, with tools built for today’s development workflow.
  • ✨ Give your game a signature look. Shape the mood with built-in post-processing effects and presets, from CRT-inspired visuals to handheld palettes.
  • 📦 One cartridge. Web and desktop. Package your game as a portable WebAssembly cartridge and run it with Karty’s hosts in browsers or on Linux, macOS and Windows.
  • 🌐 Less asset plumbing. More game. Let the build pipeline prune unused assets, pack atlases and handle optimization, chunking and caching ahead of time.
  • 🚀 From terminal to playable. Create projects, preview changes and package releases from the CLI, locally or in CI.

Samples

FPS Isometric Adventure
The Hangar's lit reactor room, viewed at player height. A pilgrim at the candlelit altar of a dark abbey crypt.
3D World Exploration Visual Novel
A sandy coastal cove with a wooden jetty, palms and a lighthouse. Mara aboard a warmly lit train carriage on a rainy night.

CLI commands

Run karty --help for an overview, or append --help to any command for its options.

Command Purpose
karty new Create a game project
karty dev Preview your game as you edit
karty build Build your game for web or desktop
karty serve Preview a built web game
karty fmt / karty lint Format and check your Go code
karty package Share and reuse game packages
karty render bake Bake level lighting
karty render screenshot Save level screenshots as PNGs

Explore Karty

Looking for Start here
A working example Sample projects
Reusable game code Controllers, dialogue, saves and Tiled maps
API behavior and design API reference · Design notes
CLI development Contributing and repository layout

KartUI · SDK · MIT source license · Runtime license

Directories

Path Synopsis
cmd
karty command
karty-check command
karty-check runs reproducible integration checks with isolated projects.
karty-check runs reproducible integration checks with isolated projects.
karty-materialize-check command
karty-materialize-check prepares the released tool and graphics driver before the timed native atlas regression.
karty-materialize-check prepares the released tool and graphics driver before the timed native atlas regression.
karty-release command
karty-release synchronizes sample pins with their declared SDK versions.
karty-release synchronizes sample pins with their declared SDK versions.
karty-test-sdk command
karty-test-sdk prepares the current SDK used by all contributor tests.
karty-test-sdk prepares the current SDK used by all contributor tests.
roman-court-fixtures command
roman-court-fixtures regenerates the basin and torch prefabs in the fixture.
roman-court-fixtures regenerates the basin and torch prefabs in the fixture.
roman-court-materials command
roman-court-materials generates original, seamless fixture albedo artwork.
roman-court-materials generates original, seamless fixture albedo artwork.
internal
actionbuild
Package actionbuild derives one typed action catalog, editor schema and same-package invocation adapters from explicit game function declarations.
Package actionbuild derives one typed action catalog, editor schema and same-package invocation adapters from explicit game function declarations.
assetpipeline
Package assetpipeline inspects and describes deterministic runtime assets.
Package assetpipeline inspects and describes deterministic runtime assets.
assetusage
Package assetusage finds statically referenced generated assets in cartridge source.
Package assetusage finds statically referenced generated assets in cartridge source.
brand
Package brand contains shared Karty artwork for the CLI and website.
Package brand contains shared Karty artwork for the CLI and website.
build
Package build produces self-describing game and level cartridges.
Package build produces self-describing game and level cartridges.
commands
Package commands defines the user-facing Karty CLI command tree.
Package commands defines the user-facing Karty CLI command tree.
commands/bake
Package bake defines the offline directional lightmap command.
Package bake defines the offline directional lightmap command.
commands/build
Package build defines the client build command.
Package build defines the client build command.
commands/dev
Package dev defines the persistent build-and-serve development command.
Package dev defines the persistent build-and-serve development command.
commands/new
Package newcommand defines the project creation command.
Package newcommand defines the project creation command.
commands/packagecmd
Package packagecmd implements local package export, import and restoration.
Package packagecmd implements local package export, import and restoration.
commands/quality
Package quality runs the project's Go formatter and linter with Karty defaults.
Package quality runs the project's Go formatter and linter with Karty defaults.
commands/schema
Package schema defines editor schema generation without running a build.
Package schema defines editor schema generation without running a build.
commands/screenshot
Package screenshot captures an authored world with a local native host.
Package screenshot captures an authored world with a local native host.
commands/serve
Package serve defines the local web preview command.
Package serve defines the local web preview command.
commands/toolchain
Package toolchain defines commands for managing the SDK toolchain.
Package toolchain defines commands for managing the SDK toolchain.
contextio
Package contextio keeps file/archive work responsive to a build's lifetime.
Package contextio keeps file/archive work responsive to a build's lifetime.
devserver
Package devserver serves immutable development builds and reconnecting updates.
Package devserver serves immutable development builds and reconnecting updates.
levelbuild
Package levelbuild discovers author-owned level manifests and produces deterministic, passive .kld cartridges.
Package levelbuild discovers author-owned level manifests and produces deterministic, passive .kld cartridges.
packages
Package packages resolves local Karty package archives and development folders.
Package packages resolves local Karty package archives and development folders.
process
Package process runs context-owned build tools and cancels their descendants.
Package process runs context-owned build tools and cancels their descendants.
processorassets
Package processorassets validates optional generated level textures from build tools.
Package processorassets validates optional generated level textures from build tools.
project
Package project loads the project metadata required by CLI commands.
Package project loads the project metadata required by CLI commands.
release
Package release defines the CLI build identity and selected SDK.
Package release defines the CLI build identity and selected SDK.
sampleformat
Package sampleformat keeps generated sample authoring files in the repository's pinned format.
Package sampleformat keeps generated sample authoring files in the repository's pinned format.
scaffold
Package scaffold renders versioned project templates from core resources.
Package scaffold renders versioned project templates from core resources.
sdk
Package sdk resolves versioned Karty SDK manifests.
Package sdk resolves versioned Karty SDK manifests.
sourcevalue
Package sourcevalue parses bounded YAML authoring values.
Package sourcevalue parses bounded YAML authoring values.
testfixture
Package testfixture prepares isolated sample inputs for public build tests.
Package testfixture prepares isolated sample inputs for public build tests.
testtoolchain
Package testtoolchain selects SDK tools for contributor checks.
Package testtoolchain selects SDK tools for contributor checks.
toolchain
Package toolchain resolves and installs tools selected by a project's pinned SDK.
Package toolchain resolves and installs tools selected by a project's pinned SDK.
ui
Package ui provides the CLI's presentation and interactive task primitives.
Package ui provides the CLI's presentation and interactive task primitives.
worldbuild/geometry
Package geometry compiles expanded authored rooms into canonical convex sectors.
Package geometry compiles expanded authored rooms into canonical convex sectors.
worldbuild/schema
Package schema generates editor schemas and validates authored world YAML.
Package schema generates editor schemas and validates authored world YAML.
worldbuild/source
Package source loads and expands authored world YAML into a flat room graph.
Package source loads and expands authored world YAML into a flat room graph.
Package website owns the public site's content, templates and styles.
Package website owns the public site's content, templates and styles.
cmd/docs command
Command karty-guide builds public guides and design pages without an SDK or network access.
Command karty-guide builds public guides and design pages without an SDK or network access.
cmd/samples command
karty-samples builds sample sites and assembles validated static previews.
karty-samples builds sample sites and assembles validated static previews.
internal/generator
Package generator builds the public website documentation from handwritten Markdown.
Package generator builds the public website documentation from handwritten Markdown.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL