v/examples/tetris
Eliyaan (Nopana) bbb61ab368
Some checks failed
Graphics CI / gg-regressions (push) Waiting to run
vlib modules CI / build-module-docs (push) Waiting to run
native backend CI / native-backend-ubuntu (push) Waiting to run
vab CI / v-compiles-os-android (push) Waiting to run
native backend CI / native-backend-windows (push) Waiting to run
Shy and PV CI / v-compiles-puzzle-vibes (push) Waiting to run
Sanitized CI / sanitize-undefined-clang (push) Waiting to run
Sanitized CI / sanitize-undefined-gcc (push) Waiting to run
Sanitized CI / tests-sanitize-address-clang (push) Waiting to run
Sanitized CI / sanitize-address-msvc (push) Waiting to run
Sanitized CI / sanitize-address-gcc (push) Waiting to run
Sanitized CI / sanitize-memory-clang (push) Waiting to run
sdl CI / v-compiles-sdl-examples (push) Waiting to run
Time CI / time-linux (push) Waiting to run
Time CI / time-macos (push) Waiting to run
Time CI / time-windows (push) Waiting to run
toml CI / toml-module-pass-external-test-suites (push) Waiting to run
Tools CI / tools-linux (clang) (push) Waiting to run
Tools CI / tools-linux (gcc) (push) Waiting to run
Tools CI / tools-linux (tcc) (push) Waiting to run
Tools CI / tools-macos (clang) (push) Waiting to run
Tools CI / tools-windows (gcc) (push) Waiting to run
Tools CI / tools-windows (msvc) (push) Waiting to run
Tools CI / tools-windows (tcc) (push) Waiting to run
Tools CI / tools-docker-ubuntu-musl (push) Waiting to run
vab CI / vab-compiles-v-examples (push) Waiting to run
wasm backend CI / wasm-backend (ubuntu-22.04) (push) Waiting to run
wasm backend CI / wasm-backend (windows-2022) (push) Waiting to run
Workflow Lint / lint-yml-workflows (push) Has been cancelled
gg, gx: deprecate gx and replace all occurences with gg (which now contains all the functionality of gx) (#24966)
2025-08-14 19:53:56 +03:00
..
.gitignore examples/tetris: add instructions, on how to compile the game through Emscripten and v -os wasm32_emscripten 2023-08-13 17:28:27 +03:00
index.html examples/tetris: add instructions, on how to compile the game through Emscripten and v -os wasm32_emscripten 2023-08-13 17:28:27 +03:00
README.md gg: add linux support for fn screen_size() Size (fix #23146) (#23326) 2025-01-02 19:10:09 +02:00
screenshot.png all: optimize png images (#6860) 2020-11-17 17:42:21 +01:00
tetris.js.v gg, gx: deprecate gx and replace all occurences with gg (which now contains all the functionality of gx) (#24966) 2025-08-14 19:53:56 +03:00
tetris.v gg, gx: deprecate gx and replace all occurences with gg (which now contains all the functionality of gx) (#24966) 2025-08-14 19:53:56 +03:00

Dependencies (Ubuntu)

sudo apt install libx11-dev
sudo apt install libxi-dev
sudo apt install libxcursor-dev
sudo apt install libxrandr-dev
sudo apt install libgl-dev

Compiling to JS

v -b js_browser examples/tetris/tetris.js.v

And then open index.html with your favourite web browser.

Compiling to WASM

  1. Install Emscripten from https://emscripten.org/docs/getting_started/downloads.html

  2. Make sure that the environment in your shell is setup correctly, i.e. that emcc --version works.

. /opt/emsdk/emsdk_env.sh
emcc --version
  1. Compile the game to WASM:
v -skip-unused -prod -os wasm32_emscripten examples/tetris/`
  1. Copy the generated tetris file to index.js This can be done once. Note that this step will be removed soon, when the option -os wasm32_emscripten becomes better integrated:
cp examples/tetris/tetris examples/tetris/tetris.js
  1. Run/test the game:
emrun examples/tetris/index.html

Once you have run the game, you can make changes, then just recompile (step 3), and refresh the game in your browser.