Ah, TIL! The native game anims also look charming (I like how 1-bit palettes have made a bit of a return in recent years) :)
Tidi
Recent community posts
Interesting, wonder what the discrepancy is.
On Windows with Firefox this is the error (from the web tools console):
Assertion failed: undefined index.html:1:566
printErr https://v6p9d9t4.ssl.hwcdn.net/html/3834657/index.html:1
abort https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
assert https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
InitFileSystem https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
doCallback https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
done https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
getRemoteSet https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
getDB https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
getRemoteSet https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
getLocalSet https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
InitFileSystem https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
handleSleep https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
InitFileSystem https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
<anonymous> https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.wasm:1468078
x https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
_main https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
callMain https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
doRun https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
run https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
On Windows with Vivaldi (Chromium based) this is the error (in the itch embed it displays the message ’Exception thrown, see JavaScript console):
index.html:1 Assertion failed: undefined
printErr @ index.html:1
aerofoil.js:1 Uncaught RuntimeError: abort(Assertion failed: undefined). Build with -s ASSERTIONS=1 for more info.
at abort (aerofoil.js:1:9931)
at assert (aerofoil.js:1:5100)
at aerofoil.js:1:21103
at doCallback (aerofoil.js:1:51079)
at done (aerofoil.js:1:51175)
at aerofoil.js:1:39865
at aerofoil.js:1:41413
at req.onerror (aerofoil.js:1:40697)
Also tested with Linux in a VM on vanilla Chromium (no addons), Vivaldi and Firefox (latter two with only uBlock Origin set to defaults).
Firefox in Linux had this log:
Assertion failed: undefined index.html:1:566
printErr https://v6p9d9t4.ssl.hwcdn.net/html/3834657/index.html:1
abort https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
assert https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
InitFileSystem https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
doCallback https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
done https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
getRemoteSet https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
onerror https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
Uncaught RuntimeError: abort(Assertion failed: undefined). Build with -s ASSERTIONS=1 for more info.
abort https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
assert https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
InitFileSystem https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
doCallback https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
done https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
syncfs https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
getRemoteSet https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
onerror https://v6p9d9t4.ssl.hwcdn.net/html/3834657/aerofoil.js:1
aerofoil.js:1:9931
Partitioned cookie or storage access was provided to “https://v6p9d9t4.ssl.hwcdn.net/html/3834657/index.html” because it is loaded in the third-party context and dynamic state partitioning is enabled.
Thanks for this.
A couple minor UI comments: there doesn’t seem to be a way to open the main menu while in game*, so had to wait until dying to remap keys (since didn’t check Options menu originally). Also the name of rebound keys don’t appear for prompts but rather the default mapped key names.
* Perhaps this is intentional to prevent any pausing.
Charming sound effects and easy to understand mechanics. Nice little coffee break game.
Edit: one thing that would be a nice QoL improvement if there were a sequel would be the ability to shorten the level intros for repeats after getting caught. Also if the hand didn’t collide with itself it would make the level with the plugs easier (since sometimes the hand can be on the wrong side of itself to grab the plug, when the arm is bunched up), but maybe that’s an intentional part of the challenge.