Docs

Studio GUI

Studio GUI

cpyvn includes a lightweight desktop GUI for two tasks:

  • Create a new game project (with window size/FPS options)
  • Run/export workflows for dev and player builds

Download (Recommended)

Use the prebuilt with-engines Studio bundles from GitHub Releases:

  • Latest release: https://github.com/bymehul/cpyvn/releases/latest
  • Linux: cpyvn-studio-linux-with-engines.zip
  • Windows: cpyvn-studio-windows-with-engines.zip
  • macOS: cpyvn-studio-macos-with-engines.zip
  • All-in-one archive: cpyvn-studios-with-engines-all.zip

These bundles already include cross-platform frozen engine templates under dist/exports/engine, so users do not need a separate engine download.

Run

python tools/studio/main.py

Build Standalone Studio (No Python Required For Dev Machine)

Build on each target OS:

python -m pip install pyinstaller
python tools/freeze_studio.py --target host --clean --zip

Output example:

  • dist/studio/linux/cpyvn-studio/
  • dist/studio/cpyvn-studio-linux.zip

GitHub Actions (Cross-OS Studio Artifacts)

If you want all Studio builds without local setup on each OS, run:

  • .github/workflows/export-studio-matrix.yml

It builds Studio on Linux, Windows, and macOS runners and uploads:

  • cpyvn-studio-ubuntu-latest
  • cpyvn-studio-windows-latest
  • cpyvn-studio-macos-latest
  • cpyvn-studios-all (combined archive with all Studio zips)

Trigger from GitHub:

  1. Open Actions.
  2. Select Export Studio Matrix.
  3. Click Run workflow.

The frozen app can:

  • create projects
  • run dev game (Run (Dev))
  • one-click export player bundles

Standalone Studio behavior:

  • One-click export always uses frozen runner mode.
  • Standalone Studio reuses bundled frozen engine templates from dist/exports/engine.
  • This gives no-Python player exports without requiring local PyInstaller.
  • If a target template is missing, Studio will report it and suggest source Studio/CLI build path.
  • For cross-OS CI engine artifacts, use .github/workflows/export-engine-matrix.yml.
  • Video artifacts are auto-detected from dist/exports/engine or vnef-video/artifacts.

New Game tab

  1. Select parent folder.
  2. Enter game name.
  3. Set width/height/FPS.
  4. Click Create Project.

Generated files include:

  • project.json
  • script.cvn
  • prefetch.json
  • title_menu.json
  • pause_menu.json
  • assets folders + .gitkeep files

Export tab

  • One-Click Export: auto-resolves paths from your project location, builds engine if missing, then exports game.
  • Run (Dev) runs current project directly from source.
  • Run (Exported) runs play.sh / play.bat from exported bundle.
  • Stop terminates current run/export process.
  • Uses the selected target (host|linux|windows|macos).
  • Logs stream in the GUI log panel.
  • In frozen Studio builds, export/run tasks are executed through internal Studio task mode (--studio-task).
  • Exported games protect script sources by bundling .cvn/.vn into game/.cpyvn/scripts.zip.

Notes

  • One-click game export does not allow target=all by design.
  • One-click exports are player-ready (play.* runs directly).