---
title: "Pixel Pizza"
url: "https://aigamehub.app/ja/games/telar-demo-874c33"
source: "https://github.com/deeptelar/telar-demo"
source_type: "github"
play_url: "https://deeptelar.github.io/telar-demo/"
platform: "both"
login_required: false
pricing: "free"
origin: "original"
ai_tools: []
game_languages: ["en"]
author: "deeptelar"
author_handle: "deeptelar"
category: "カジュアル"
categories: ["casual", "puzzle", "simulation"]
tags: ["ai-agents", "browser", "educational", "kotlin", "open-source", "wasm"]
added: "2026-10-22T02:47:12.182Z"
updated: "2026-10-22T02:47:20.299Z"
locale: "ja"
content_locale: "ja"
---

# Pixel Pizza

Pixel Pizza は、AI エージェントのワークフローに関する小さなブラウザゲームです。ピザ店のヘルプデスクを運営しながら、Telar グラフが 8 つの段階的なレベルにわたってチケットをノードごとに処理し、さらにボーナスのキッチンパズルが付いています。

## Description

Pixel Pizza は Telar チュートリアルを基に作られたプレイアブルなゲームです。あなたはピザ店のヘルプデスクを演じます。顧客が問い合わせを書き込み、Telar グラフが返信を書き、チケットがボードをノードごとに横断するのを眺めます。8 つのステージでは、単純な 2 ノードのラインから条件付きエッジ、ループ、並列ノード、セーブポイント、ツール付きモデルループ、リトライ、そして 4 種類のチケットを扱う完全なデスクまで、それぞれ新しいアイデアを 1 つずつ紹介します。ボーナスの K"Kitchen rush" パズルステージでは、シフトベースのソートチャレンジが追加されます。ボード、チケットパネル、実行ログは stream() イベントからライブで描画されます。実行ログは、各ステップがチケットに書き込んだ内容と、条件付きエッジがどの分岐を選んだかを示します。ボードのタイルを押すと、その背後にあるコードが表示され、それはゲーム自身のソースファイルから直接取得されます。「Show JSON + saves」ヘッダーは、チケットデータを JSON として開き、変更された行をマークし、さらに history() によって読み取られたチェックポイントも表示し、各チェックポイントを検査できます。1 つの Compose Multiplatform コードベースが、ブラウザ（Kotlin/Wasm）、デスクトップ（JVM）、Android で実行されます。アカウントも API キーも不要です。

## Original post

Pixel Pizza: a small game about AI agent workflows in Kotlin. Eight stages, each a Telar graph that runs in your browser. Compose Multiplatform for Wasm, desktop and Android. No API key needed.

Topics: agentic-workflow, ai-agents, claude, compose-multiplatform, demo, game, human-in-the-loop, kmp, kotlin, kotlin-multiplatform, kotlin-wasm, llm, telar, tutorial, webassembly

# Pixel Pizza A small game about graphs. You run the help desk of a pizza shop: customers write in, a [Telar](https://github.com/deeptelar/telar) graph writes back, and you watch the ticket cross the board node by node. **[Play it in your browser](https://deeptelar.github.io/telar-demo/)** ![Stage 8: the kitchen and the driver run at the same time](docs/stage.png) It is the [Telar tutorial](https://github.com/deeptelar/telar/tree/main/docs/tutorial) made playable. Eight stages, one new move each, the same Pixel Pizza help desk growing from two nodes to a full agent workflow. One Compose Multiplatform codebase runs it in the browser (Kotlin/Wasm), on the desktop (JVM) and on Android. No account and no API key needed. ## Stages | # | Stage | The move | |---|---|---| | 1 | A line | Two nodes in a row: `node`, `then`, `invoke` | | 2 | Choices | `conditionalEdge` picks one of three paths | | 3 | Loops | An edge that goes back until the reply passes a check | | 4 | Two at once | Fan-out to nodes with a `work` and an `update`, which run at the same time, and a node that runs once for each dish of the order | | 5 | Save points | `interruptBefore` stops the run for you; `resume` continues it, also after a reload; `effect` pays the refund once when `pay` runs twice | | 6 | The agent | A model that calls tools, as a loop of two nodes | | 7 | Game over | A node with a `retry` tries again by itself, then fails; `resume` retries from the last save | | 8 | The full desk | All of it on one board: four kinds of ticket, four ways through | Each stage is the level of the tutorial with the same number: stage 3 is level 3. Watching a run with `stream()`, the second half of level 4, is not only in stage 4. It is the game: the board, the ticket panel and the run log are drawn from the events of `stream()` as they arrive. Under each step, the run log lists what the step wrote into the ticket (`topic = "delivery"`, `facts += "..."`), and after a conditional edge it says which node the edge picked. In the stages that ask a model, the log shows the answer word by word while the model writes it. Press a tile on the board to see the code behind it: the node, its arrows and the functions it calls. The text is cut out of the game's own source files when the app is built, so it is always the code that runs. **Show JSON + saves**, in the header of the ticket, opens what Telar keeps of the run: the ticket as the JSON of its data class, with the lines the last step changed marked, and the checkpoints that `history()` reads from the checkpointer, the latest first. Both change while the run moves across the board. Press a checkpoint to see the ticket it saved. The game remembers the switch. | | | |---|---| | ![A run waiting at a save point](docs/save-point.png) | ![A failed node, with a retry from the last save](docs/game-over.png) | ## Bonus stage: Kitchen rush ![The board with two sorters, in the middle of a shift](docs/kitchen.png) A puzzle. A pizzeria works through a shift, and
