Improve documentation

This commit is contained in:
Joel Therrien 2023-09-24 10:52:58 -07:00
parent 55f968ae35
commit 7bca436012
2 changed files with 29 additions and 1 deletions

View file

@ -1,2 +1,8 @@
build: build-rust:
wasm-pack build --target=web wasm-pack build --target=web
build-ui:
rm -rf ui/dist ui/.parcel-cache
cd ui; npm run build
build-all: build-rust build-ui

22
README.md Normal file
View file

@ -0,0 +1,22 @@
# 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.
## 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.