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.