A personal website built using a game engine (Bevy) to provide an interactive, game-like experience right in the browser. The game is compiled to WebAssembly (WASM) and served using a web server (miniserve or Apache2).
Run the build script to compile the Bevy game to WASM and generate the necessary JavaScript bindings using wasm-bindgen:
./build-website.sh
This outputs the game files into the web/ directory.
To serve the website locally using miniserve:
./build-website.sh run
This will serve the contents of the web/ directory at http://localhost:8080.
To deploy the website to your server using Ansible (make sure your inventory file is configured):
./build-website.sh deploy
This will copy the site to your web server and configure Apache with HTTPS via Let's Encrypt.
.
├── ansible # Ansible playbook and inventory for deployment
│ ├── inventory
│ └── setup_server.yml
├── game # Bevy game source code
│ ├── Cargo.toml
│ └── src
├── web # Output directory for web files (index.html, game.js, etc.)
│ └── index.html
├── build-website.sh # Build and deployment script
├── LICENSE
└── README.md
- Bevy – Game engine rendered in the browser via WASM
- wasm-bindgen
- miniserve – For local file serving
- Ansible – Server provisioning and deployment
- Apache2 – Web server
- Let's Encrypt – HTTPS certificate provisioning
⚠️ Requirements:
- Rust toolchain with
wasm32-unknown-unknowntargetwasm-bindgen-cliinstalledminiserveinstalled for local preview