Skip to content

townofdon/snek-js

Repository files navigation

Snek Game

A gamedev rite of passage to be sure. Made with P5.js.

Demo

You can play the demo here!

Game capsule art

screenshot of game screenshot of game screenshot of game screenshot of game

Features

  • Tight, responsive yet forgiving controls (keyboard or gamepad)
  • Obstacles and puzzle-like rooms to escape
  • 4 difficulty modes
  • High score leaderboard
  • Chiptune original soundtrack
  • A level editor

Tools Used

Development

Start dev server:

npm start

In a separate tap, watch for JS file changes:

npm run watch

Deployment - GH

git subtree push --prefix dist origin gh-pages

If you need to force push subtree changes, see here.

Packaging for Native Builds (Steam, etc.)

SNEK uses nw-builder to bundle the application as an native executable binary for various platforms (linux, osx, windows).

Install jq (used to synchronize package.json versions):

homebrew install jq

Install nw-builder:

npm i nw-builder --save-dev

To build native binaries, run:

cd bin && ./package.sh

Convert WAV to MP3

bitrate=[128k|256k]

128k is a tad bit lossy for my taste. Loses some of the high-end.

brew install ffmpeg
cd /path/to/dir
BITRATE=256k
convertmp3() {
  ffmpeg -i "$1" -acodec mp3 -b:a $BITRATE "mp3/${1%.*}.mp3"
}
for i in *.wav; do convertmp3 $i; done

Sources:

Testing

Run all tests

npm test

Run a single test

npm test -- -g <grep_pattern>
// e.g.
npm test -- -g "editorUtils"
// verbose logging
DEBUG=true npm test -- -g "editorUtils"

About

SNEK game made with p5.js.

Resources

Stars

Watchers

Forks

Contributors