VibeGame

A pixel
handheld for
games you make
一台
自己做游戏
的掌机

VibeGame is a 240×160 pixel handheld and a set of tools to make games for it. Write a game yourself, or let an agent write it. Then push it to the handheld, or send a web page to a friend.

VibeGame 是一台 240×160 的像素掌机,和一套做游戏的工具。你自己写,或者让 agent 写。写完推到掌机上,或者发一个网页给朋友玩。

Make a game开始做游戏 Buy $159购买 $159

This handheld runs the real Skyfire. Arrow keys fly, X fires, Z drops a bomb, Enter starts. On a phone, press the drawn buttons. 这台掌机上跑的是真的《烈空战机》。方向键飞,X 开火,Z 放炸弹,回车开始。手机上按画上的键。

One file, three places同一份代码,跑在三个地方

You write the game in Rust and build it into one wasm file. The window on your computer, the browser and the handheld all run that same file. Every pixel and every note is the same.

游戏用 Rust 写,编成一个 wasm 文件。开发机的窗口、浏览器、掌机跑的是同一个文件,画面和声音一个点都不差。

src/lib.rs written by you, or by an agent你写的,或者 agent 写的
game.wasm a frame, some buttons, a few notes一帧画面,一组按键,几个音调
  • Computer开发机vibegame runopens a window to play开一个窗口玩
  • Browser浏览器vibegame webone HTML file that anyone can play一个 HTML 文件,发给谁都能玩
  • Handheld掌机vibegame pushsends it over Wi-Fi and opens it走 Wi-Fi 推过去,直接打开

Four samples to copy from四款样板,拿去抄

Each one is a full game made with these tools. All the code is in the repository. Click a cartridge to play it in your browser.

每一款都是用这套工具做完的游戏,代码全在仓库里。点卡带就在浏览器里玩。

Make a game做一款游戏

You need Rust. Five steps take you from the tools to a game on the handheld. Each step is one command.

要 Rust。下面五步从装工具到在掌机上玩,每一步一条命令。

  1. Install the tools装工具

    The command line, the wasm build target, and the instructions for your agent.

    命令行、wasm 的编译目标,再给 agent 装上说明。

    cargo install --git https://github.com/longzhi/vibegame-sdk vibegame-cli
    rustup target add wasm32-unknown-unknown
    vibegame skill install
  2. Start a game起一个游戏

    The template is a small game you can play, Star Catch: a title screen, 30-second rounds, a saved high score and music. Change it into your game.

    模板是一款能玩的小游戏《捡星星》:标题、三十秒一局、最高分存档、音乐。在它上面改。

    vibegame new star-catch
    cd star-catch
  3. Play it in a window开窗口玩

    Arrow keys move, X is A, Z is B, Enter is START. After you change the code, run it again. Add --lang zh to see the Chinese text.

    方向键走,X 是 A,Z 是 B,回车是 START。改了代码再跑一次。加 --lang zh 看中文的字。

    vibegame run
  4. Make a web version出网页版

    One HTML file with the game inside. Open it to play, or put it in your own web page.

    一个 HTML 文件,游戏塞在里面。双击就能玩,也能放进你自己的网页。

    vibegame web
    # dist/star-catch.html
  5. Push it to the handheld推到掌机

    Turn on developer mode on the handheld and pair once. After that, each change is pushed and the handheld swaps it in.

    掌机打开开发者模式,配对一次。以后一改就推,掌机上直接换。

    vibegame pair 192.168.1.23
    vibegame push --watch

Let an agent write it让 agent 写

vibegame skill install gives Claude Code and Codex a set of instructions. For other agents, tell them to run vibegame skill and read it.

vibegame skill install 给 Claude Code 和 Codex 装上一份说明。别的 agent 让它跑 vibegame skill,自己读。

An agent cannot see a window, so the command line can run without one. It plays from a key script to a given frame and saves a screenshot to look at. Sounds come out as lines of notes. When the picture or the sound is wrong, the agent fixes it.

agent 看不到窗口,所以命令行能不开窗口跑。它按一段按键脚本玩到第几帧,存一张截图自己看;声音印成一行一行的音调。画面不对、声音不对,它自己改。

vibegame shot --frames 60,300 --input keys.txt
vibegame run --headless --frames 300
Frame 150: the banner for stage 1 Frame 700: flying over an island, two rows of shots going up Frame 1620: a bomb goes off, a ring of light spreads out
An agent plays Skyfire from a key script. vibegame shot saves frames 150, 700 and 1620, and the agent reads the images. agent 按一段按键脚本玩《烈空战机》,vibegame shot 存下第 150、700、1620 帧,它自己读图看。

Put it on the handheld装到掌机上

Over Wi-Fi走 Wi-Fi

Put the handheld and your computer on the same Wi-Fi. Run vibegame pair and type the code from the handheld screen. You pair only once.

掌机和电脑在同一个 Wi-Fi 里。vibegame pair 输入掌机屏幕上的口令,配一次就好。

vibegame push packs the game, sends it and opens it. Push the same game again and the handheld swaps in the new one and keeps the saves. For a new game, the handheld asks once, and it installs only when you press A.

vibegame push 打包、推过去、直接打开。同一款游戏再推,掌机换上新的,存档留着。新游戏掌机上问一次,你按 A 才装。

With a TF card插 TF 卡

vibegame pack makes a .vg file of about 700 KB.

vibegame pack 出一个 .vg 文件,大约 700 KB。

Copy it into the games folder on a TF card, put the card in and turn the handheld on. The game is installed and shows on the home screen with its cover.

拷进 TF 卡的「游戏」目录(叫 games 也行),插上掌机开机,游戏就装好了,在主屏上带着封面。

What the handheld does掌机能做什么

Screen画面
240×160, 256 colors, 60 frames a second240×160,256 色,每秒 60 帧
Sound声音
Two square waves, one triangle wave, one noise channel, and one channel for short recordings两路方波、一路三角波、一路噪声,再加一路短录音
Buttons按键
D-pad, A B X Y, L R, START SELECT十字键,A B X Y,L R,START SELECT
Saves存档
Games save on their own, and the menu can save and load at any time游戏自己存;菜单里还能随时存档、读档
Text字
A built-in 12-pixel font with English and Chinese自带中文和英文的点阵字,12 像素
Language语言
English or Chinese, set in Settings. Games follow it英文或中文,在设置里换,游戏跟着换
System系统
QingOS. Each game is a full-screen appQingOS,游戏是占整屏的 app

Get a VibeGame买一台 VibeGame

$159 USD

  • The handheld, with QingOS and the four sample games installed掌机一台,装好 QingOS 和四款样板游戏
  • Developer mode: push your own games over Wi-Fi开发者模式:自己做的游戏走 Wi-Fi 推上去
  • A TF card slot for games from friendsTF 卡槽:朋友的游戏插卡就装

Payment is handled by Stripe. You enter your card and shipping address on Stripe's page.付款走 Stripe:卡号和收货地址在 Stripe 的页面上填。