Create RPGs, visual novels and strategy games with YAML and assets. No programming required.
Gozen is a no-code toolkit for making 2D RPGs, visual novels and strategy games with YAML and assets. Start with a playable template, edit its dialogue and rules, then check and play it. No Go code or compiler is required for this workflow. YAML and terminal commands are the interface; there is no visual editor. Go and Ebitengine power the engine behind it.
The name: Ebitengine is named after ebiten (海老天), shrimp tempura. In Japan, an ebiten gozen (御膳) is a set meal on one tray: shrimp tempura with soba, small side dishes, and a sweet such as dango. Gozen is that tray for Ebitengine: the engine served with everything a game needs. The name also starts with Go.
| RPG: Go Zen | Novel: After the Pass |
|---|---|
| Campaign: Five Banners (play in browser) | Monster collection: Go Zen (play in browser) |
| Management: Harbor app team | |
Create your first game #
Install Gozen, then create a playable template:
gozen new my-game --template rpg
gozen check my-game
gozen run my-game
Choose novel or campaign for a different starting point. Follow Getting started to edit your game, or play the showcase games in your browser.
On Linux the window needs a graphics environment; see Install.
Screens #
All from Go Zen at 1920x1080.
| Conversation | Painted scene |
|---|---|
| Town map | First-person dungeon |
| Battle | Cut-in |
| Shop | Skill tree |
![]() | |
| Title | |
![]() |
Novel games #
ui.message: novel makes a visual novel. All from After the Pass, the novel sample, at 1920x1080 (Novel games).
| Roll back (Q, wheel) | Skip to the line not read (N) |
|---|---|
| Two languages | Staging (stand, effect) |
| Event picture with its line | |
![]() |
Phone apps #
phone shows a phone over the scene, upright or on its side, in a story or any other game (A phone on the screen). All from the office sample. Authors write history and fixed replies in YAML; flags reveal contacts, messages and posts. Read-only apps need no reply handling.
| Home → contacts → chat → home | Read history → send a reply → reveal new information |
|---|---|
| Chat: a picture, times and a clip | Feed: scrolled, a clip post, likes |
| Video on its side: footage | Chat: a dance practice clip (a puppet) |
| Page: a shop site with a picture grid | Page: a bank transfer to confirm |
| Lock screen: notices arriving | Lock screen: an incoming call answered |
| Page: a sign-in approval | Feed: a timeline of text posts |
| Banner: a push notification over a scene | Page: a supporter site with locked posts |
| Page: a contact to add with a QR code | |
Games inside the phone (Gozen 0.23.0). The phone opens standalone Gozen games and returns to the host when they close. Each game has its own app icon, state and saves. Authors choose bundled games or optional downloads from a pinned catalog; players choose when to install or update. These captures show two small neutral games running inside the office sample. See the authoring recipe for package, browser and replay limits. The public catalog includes Counter, a small example game. To offer your own game, submit it for review with its source, release package, custom icon and licenses. Submission does not automatically approve or publish a game.
| Counter in portrait | Trail in landscape |
|---|---|
Management workspaces #
Workspace, call, calendar and timeline screens with a day flow (schema 10) make a management game. From the office sample (examples/office); the YAML is in workspace recipes.
| Standup: busts, meters, dots, signs, burnup | People: press for a peek |
|---|---|
![]() | |
| Hand out work by dragging (or with keys) | Tickets, dependencies and a carousel |
| A message asks for a decision | Video call |
| Screen sharing | First-visit guide |
![]() | |
| Calendar with scheduled events | Plan timeline |
![]() | ![]() |
| Character grid | Glass panels |
![]() | ![]() |
Campaigns #
regions, factions and campaign (schema version 5) make a war of regions over turns, with generals, orders and clashes of armies. From Five Banners, the campaign sample.
| The war map | A clash of armies |
|---|---|
![]() |
Monster collection #
Monsters ask to join after a battle, wait at the ranch, and two raised monsters, one male and one female, are bred into a new one at Yorn’s altar, in the manner of Dragon Quest Monsters (schema version 6). The monster book opens a page as the party meets each monster and shows how to breed it, two generations up. The recipe is Collect, raise and breed monsters.
| A monster asks to join | Breeding at Yorn’s altar |
|---|---|
| The monster book | The family tree, two generations up |
![]() | ![]() |
Battles #
Enemies can change form at an HP threshold, combine with allies, change pictures as HP falls, and move with a puppet portrait. Go Zen shows the Tollkeeper’s second form, Drip Slimes gathering into King Slime, and a moving Succubus face with a soft sway region (schema version 7).
| Transform | Merge |
|---|---|
| Pictures by HP | Motion and sway |
See the battle recipes.
Multi-level maps #
Playtesting #
Start the game with --dev and these keys work while you play.
| F5: edit the YAML, the line changes in place | F9: a note with the screen and the state |
|---|---|
| F7: win rates of the battles here | F8 State: flip a flag, step a number |
![]() | ![]() |
| F8 Flags: what each event sets and reads | F8 Scenes: jump to an event |
![]() | |
| F8 Command: run a line of YAML | F8 Frames: ticks, frames, the slowest Update and Draw |
![]() | |
| F6: the character book | Tab: the relationship chart (Z focuses a face) |
![]() |
More on each key in the edit–play loop.
gozen check, gozen sim battle, gozen sim dive and the notes of F9 are in the edit–play loop.
Where to go #
- Install: the gozen command and what each OS needs for the window.
- Getting started: run the samples, then start your own game.
- Writing a game: how the YAML is laid out, with expressions and events.
- Schema: every YAML field, its type, default and references.
- The edit–play loop:
--dev, F5, F7, F9, autoplay, traces and notes. - Commands: every
gozensubcommand and its options. - Using AI agents: let an agent write the game and keep
gozen checkgreen.
Features #
- YAML definitions with expressions, conditional events and versioned saves
- Turn-based battles with a party, auto battle and per-enemy tactics
- Skill trees, shops, a field menu and a picture gallery
- First-person grid dungeons, fixed or generated floors
- Management games: workspace cards, drag and drop, tickets, messages, video calls with screen sharing, calendars, timelines and first-visit guides (recipes)
- Moving portraits from one picture and a few difference pictures: blinking, talking, breathing, head, hair and swaying parts, reactions and face changes
- Characters that react to typed words and events, and a chat log
- Campaigns: regions held by factions over turns, orders with generals, a sortie screen with tactics, clashes of armies, and
gozen sim campaignfor the win rate - Dungeon themes:
theme: cavefills a dungeon’s pictures, andgozen theme addcopies them into the game - Visual novels: roll back with the state, skip what was read, save in the middle of a scene, choices read as
chose, staging withstand, and a development panel (F8) for the flags - Engine words in English and Japanese, chosen by
languagein game.yaml, and the game’s own text in two languages - A headless driver that shares the rules with the window
Limitations #
- Gozen is young. The API may change before v1.
- Runtime checks are done on Linux. Windows and macOS are built in CI but not yet played.
- There is no graphical map or event editor; the game is text.
Install #
go install github.com/nao1215/gozen/cmd/gozen@latest
The install page lists the graphics libraries for each OS.
















