Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/patmood/vim_snake

Vim Snake Game powered by web assembly
https://github.com/patmood/vim_snake

Last synced: 24 days ago
JSON representation

Vim Snake Game powered by web assembly

Awesome Lists containing this project

README

        

# 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 start`for 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