Veduta

Command Line

Everything the VS Code extension does goes through the veduta tool, which works just as well in a terminal. Run commands inside a project folder (or pass --project DIR); add --json for machine-readable output. veduta help <command> lists a command's flags.

Making and playing

CommandDoes
veduta init NAMEcreates a Lua game project in a new folder
veduta new KIND NAME [--in FOLDER]writes a new scene, world, map, prefab, model, material, texture, scenario (--scene S or --world W: where it starts) or script that builds as it is; --in puts it in a folder of its kind
veduta sim [--scene S | --world W --at x,z] [--seed N]plays the game in the simulator window (Windows), from the scene given or the project's default; saving a file reloads it in place
veduta run [--scene S | --world W --at x,z] [--seed N]plays the game on a Linux framebuffer (the console, a text console)
veduta buildchecks every script and compiles the assets; errors with file, line and column
veduta cookcompiles changed assets ahead of time (--force for all)
veduta refs FILE… or veduta refs KIND NAMElists what names these files or folders (an asset, a PNG, a script) in the sources, veduta.json and the Lua scripts, with file, line and column: what breaks if they go
veduta move SOURCE… DEST [--dry-run]moves files and folders into the folder DEST (one source and a new DEST: renames it), changing everything that names them; a texture takes its own PNG along
veduta rename KIND NAME NEW [--dry-run]gives an asset a new name, its file and everything that names it; sprite renames a texture with the material and the prefab of its name
veduta duplicate KIND NAME NEWcopies an asset beside it (a texture with its PNG; a sprite's copies name each other)

Testing

CommandDoes
veduta testruns every scenario and compares goldens (--update-golden records them)
veduta simulate --scenario FILEruns one scenario: verdict, events, contact sheet
veduta simulate --scene S --ticks N [--seed N] [--input FILE] [--screenshots 0,60]runs a scene with optional scripted input
veduta fuzz --scene S --games N --ticks Trandom play against the invariants; writes a minimal failing scenario
veduta render --scene S [--tick T] [--mode M] [--out f.png]draws one frame
veduta bench --scene S --ticks N (or --scenario FILE)times update and drawing against the 50 ms budget
veduta diff A.png B.pngcompares two images

Assets and worlds

CommandDoes
veduta inspect model|texture|scene|prefab|world|map NAMEreports problems and writes contact sheets
veduta world map|query|place|terrain|vegetation|remove NAMEdescribes and edits a world
veduta queryasks which entity is at a pixel of a rendered frame bundle

Shipping

CommandDoes
veduta deploy [CARD]copies the game to the console's SD card
veduta publish [vX.Y.Z]builds the release archives and uploads them to the Veduta server, where the MARKET lists the game
veduta release vX.Y.Z [--dry-run]checklist, changelog, tag and push; CI publishes the archives to the server
veduta doctorchecks the tool, the project and its readiness for the console

The tool itself

CommandDoes
veduta versionthe tool's version
veduta update [--channel stable|beta] [--check]updates the tool from the Veduta server
veduta login / veduta registerlogs this machine in to the Veduta server (updates and publish need an account)
veduta whoami / veduta logoutthe account the stored token belongs to; forgets it
veduta extension [--install] [--out FILE]fetches the VS Code extension released with the tool (checksum verified); --install puts it into VS Code
veduta upgrademoves the project to the tool's engine version and refreshes editor files
veduta dapthe debug adapter VS Code starts (not run by hand)
veduta mcpserves the tool to an AI agent (Claude Code) over MCP

Working with an AI agent

Every project has a CLAUDE.md and a .mcp.json. Opened in Claude Code, the agent reaches the same commands as tools (simulate, render, inspect, test, the docs of every format) and can build, look at frames and test the game it is changing.

Veduta v2 (Lua games, release candidates). This wiki is built from wiki/ in the engine's repository, where its examples are tested, and published with every engine release on https://veduta.roomve.it/docs/.