• Stars
    star
    140
  • Rank 261,473 (Top 6 %)
  • Language
    JavaScript
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Vim Snake Game powered by web assembly

WASM Snake

Vim Snake 2.0 is written in Go and compiled to Web Assembly.

I originally built this site in 2013 using my extremely limited knowledge of javascript and ruby/sinatra. It was trivial to cheat and so the leaderboard was meaningless. This rewrite fixes those issues and taught me a bunch about new web technologies.

Development

Run the server

go run cmd/main.go serve

or to watch use the reflex golang package

reflex -r '\.go$' -s -- sh -c "go run cmd/main.go serve"

Front end

Create a .env file with environment variables shown in .env_example

yarn build single build or yarn startfor development

NOTE: wasm_exec.js needs to be from the specific go version

WASM Code

make to build (also watched and built by yarn start)

Docker

Build docker build . -t vimsnake:latest --build-arg ARCH=arm64

Run docker run -p 3000:8090 --rm -it vimsnake

Inspect docker run --rm -it -p 3000:8090 --entrypoint sh vimsnake:latest

TODO

  • Show your top score and thumbnail

Pocketbase ideas

  • When generating migrations, generate a test file too
  • When making fields required, set default value and enforce at DB level