# README This repository contains the code for 'WordGrid', a (currently) single-player browser game where you use letter tiles to form words. Game logic resides in `src/` as Rust code, which gets compiled into WebAssembly. UI logic resides in `ui/src/`, which gets bundled by Parcel into the web application. If you want to try it now, I host a version at https://joeltherrien.ca/wordgrid ## Setup * Make sure you have [Node.js](https://nodejs.org/en) installed and [rustup and Cargo](https://www.rust-lang.org/learn/get-started). 1. Clone this repository. 2. If not already installed, install the Rust `wasm32-unknown-unknown` target with `rustup target add wasm32-unknown-unknown`. 3. In the base project directory, run `make build-all` to build both the Rust wasm project (gets stored in `pkg/`) and the final bundled web files (gets stored in `ui/dist/`). 4. Place the files in `ui/dist/` onto a web server and access them. During development, you'll often want to serve the UI component in serve mode that auto-updates when you make a change. In the `ui/` directory you can run `npm run start`. Note that Parcel doesn't always detect changes to the compiled Rust code, so if you recompile the Rust code with changes you should delete `ui/.parcel-cache/` and `ui/dist/` or else the UI may continue to use older WASM. ## Future Plans I intend on building a multiplayer component to this game, where the Rust code will form a webserver for connecting players and the UI will make server calls instead of calling web assembly.