diff --git a/Makefile b/Makefile index dcf8315..1a3848b 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,8 @@ -build: +build-rust: 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 \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8571f51 --- /dev/null +++ b/README.md @@ -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. \ No newline at end of file