Veduta

Installation

A Lua game needs two things: the veduta tool and, to write it comfortably, VS Code with the Veduta extension. Nothing else: no Go, no compiler, no SDK.

Windows

Install VS Code first, then run in PowerShell:

$env:VEDUTA_CHANNEL = "beta"
irm https://veduta.roomve.it/install.ps1 | iex

This puts veduta.exe in %LOCALAPPDATA%\Programs\veduta, adds that folder to your PATH without administrator rights, and installs the Veduta extension into VS Code. Open a new terminal afterwards so it sees the PATH, then check:

veduta version

It must print a v2 version (v2.0.0-rc.17 or later). Running the same two lines again updates both the tool and the extension.

Why the first line matters. Until v2.0.0 is out, the stable channel still installs Veduta v1, whose games are written in Go: without VEDUTA_CHANNEL = "beta" you get a tool that creates Go projects. See FAQ.

Settings of the installer, all optional:

VariableMeaning
$env:VEDUTA_CHANNELstable (default) or beta
$env:VEDUTA_VERSIONan exact version, such as v2.0.0-rc.17
$env:VEDUTA_HOMEwhere to install instead of %LOCALAPPDATA%\Programs\veduta
$env:VEDUTA_VSCODE"0" leaves VS Code alone
$env:VEDUTA_TOKENan account token, instead of logging in
$env:VEDUTA_NICKNAME, $env:VEDUTA_PASSWORDanswer the login without being asked
$env:VEDUTA_SERVERanother Veduta server (default https://veduta.roomve.it)

The account

The tool and its releases come from https://veduta.roomve.it, which needs an account. The installer asks for a nickname and a password the first time, logs in and keeps the token in %AppData%\veduta\auth.json on Windows, ~/.config/veduta/auth.json on Linux (mode 0600) — so nothing is asked again, on any later install or veduta update.

CommandDoes
veduta registercreate an account: nickname, password, optional email
veduta loginlog this machine in (the password is typed without echo)
veduta whoamiprint the account the stored token belongs to
veduta logoutforget the token

--nickname and --password, or VEDUTA_NICKNAME and VEDUTA_PASSWORD, answer for a script. veduta update, veduta upgrade and veduta extension say "run veduta login" when there is no token.

Linux

curl -fsSL https://veduta.roomve.it/install.sh | sh -s -- --channel beta --no-go
veduta update --channel beta   # keep following the beta channel from now on

The tool goes to ~/.local/bin (--prefix DIR to change it). --no-go skips installing Go, which only Go games need. Releases carry the tool for linux/amd64, linux/arm64 and windows/amd64; there is no macOS build.

The simulator window exists only on Windows. On Linux, veduta run plays the game on a framebuffer (a text console or a panel); every headless command (test, simulate, render, bench) works everywhere.

The VS Code extension

The installer adds it when VS Code is present. To install it by hand, fetch veduta-vscode.vsix with veduta extension (it downloads the one released with your tool, checksum verified) and run:

code --install-extension veduta-vscode.vsix

When you open a game, the extension recommends the Lua extension (sumneko.lua): accept it. Scripts then get completion, hover help and checks against the Veduta API, and the JSON files of the game get completion from their schemas.

What the extension adds: the Project view (the Veduta icon in the activity bar), the game's files by what they are, where a right-click makes a new scene, prefab, script and so on (see Project Layout), and these commands:

Command (Ctrl+Shift+P)Does
Veduta: New Gamecreates a project and opens it
Veduta: Play in the Simulatorsame as Ctrl+F5
Veduta: Testruns every scenario
Veduta: Buildchecks scripts and assets; errors go to the Problems panel (also on save)
Veduta: Deploy to the Console's Cardcopies the game to the SD card

F5 plays the game under the debugger, Ctrl+F5 without it. See Debugging and Performance.

Keeping up to date

CommandUpdates
veduta updatethe tool, from the Veduta server (checksum verified)
veduta update --channel betaswitches to release candidates and remembers it
veduta extension --installthe VS Code extension, to the one released with the tool
veduta upgradea project, to the tool's engine version (run inside the project)

On Windows veduta update cannot replace the running program: run the two lines of install.ps1 again instead, which update the tool and the extension. The tool and the extension are released together but VS Code keeps its extensions itself, so they can drift apart: when the extension is older than the one that came with your veduta, it says so and Update the Extension installs the right one (then reload the window).

Updating the tool never changes a project; veduta upgrade does, explicitly, and also refreshes the editor files (.veduta/, .vscode/, .luarc.json).

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/.