entry for Gynvael's Winter GameDev Challenge 2017
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.vscode
dist
src
svg
.editorconfig
.gitignore
README.md
global.css
global.min.css
index.html
inlineBundles.js
package-lock.json
package.json
postcss.config.js
rollup.config.js
rollup.config.prod.js

README.md

Against the Endless Enemy

Entry for Gynvael's Winter GameDev Challenge 2017.

To play the game itself, download and run ./dist/index.html via Chrome. Or it can be downloaded from Google Drive. The final packed version weighs 19.4KB.

It was 85% fun, and I learned things doing it. I didn't manage to squeeze sound into the package, stripped away a few intended game mechanics, and didn't do all the fancy UI animations I had orginally hoped to do, but otherwise the game ended up looking pretty close to my original ideas.

I did have some early setbacks. I started using Svelte as my framework before moving to Hyperapp. Svelte just weighed too much, and I prefer JSX over Svelte's templating language. I cobbled together my own packer using lz-string, but RegPack did the job better. I also spent an afternoon fighting with Google's Closure Compiler before giving up and just using uglify-es.

Stuff used to make this thing:

  • Hyperapp , a microscopic framework
  • Rollup, babel (for JSX parsing only), cssnano for minifying the CSS, and uglify-es for minifying the JS.
  • RegPack for packing (around a 25% difference)
  • This awesome tutorial for pathfinding with depth-first
  • Tweezer (modified for my use case) for tweening values
  • Game-Icons for the SVG icons. Specifically, the icons I used came from Lorc. They were modified with:
  • Inkscape, and then minified with SVGOMG.