patmood / vim_snake

Vim Snake Game powered by web assembly

Home Page:https://vimsnake.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Vim Snake Game powered by web assembly

https://vimsnake.com


Languages

Language:JavaScript 42.9%Language:Go 25.8%Language:TypeScript 23.5%Language:HTML 3.3%Language:CSS 2.6%Language:Dockerfile 1.2%Language:Makefile 0.8%