Skip to content

patmood/vim_snake

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
cmd
October 5, 2022 21:16
October 5, 2022 21:16
src
August 13, 2023 20:20
October 5, 2022 21:16
September 29, 2022 22:20
September 25, 2022 15:22
September 25, 2022 15:22
October 5, 2022 21:16
August 13, 2023 20:20
September 18, 2022 20:27
September 18, 2022 20:27
August 13, 2023 20:20
August 13, 2023 20:20

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