
AFTERSHOCK
Run-and-gun action for one to four players on one screen
About
AFTERSHOCK is a pixel-art run-and-gun platformer. The campaign runs across seven levels, each ending in a boss, with a finale that goes on past the seventh. One to four players share the screen. Empty seats blink INSERT COIN, and pressing START on one drops a new player in beside the lead, mid-level, with a full set of lives.
You carry two weapons at once and fire each on its own button. Hold both and they fuse into a third attack, drawn from the pairing you are holding. Movement includes a double jump, wall clings and wall kicks, and a dodge roll. Enemies never hurt you without a visible wind-up first, so every hit is something you could have read and avoided.
Levels are built around a lock-and-key loop: beat a mini boss, take its key, open the gate it guards, and expect to turn around and backtrack along the way. Every sprite, tile and backdrop is drawn by code when the game starts. The soundtrack is nine tracks by Joel Lauver, one for each level plus the title and the credits.
What is in it
- Seven levels, each with its own boss, plus a finale
- Two weapons fired independently, fused into a third attack when held together
- Local co-op for up to four, with drop-in on empty seats mid-level
- Eight operatives, each with their own silhouette and stats
- Every enemy attack has a readable wind-up before it lands
- Double jump, wall kick and dodge roll, on keyboard, mouse or gamepad
Screenshots
How far along
Playable build, 64 out of 100, ranked 6 of 17 on the progress ranking.
A seven-level run-and-gun campaign with a finale plays start to finish in the browser for one to four players, and a Unity port now matches it frame for frame in the comparison runs, with safer saves and better teammate behaviour written but not yet played.
- Playable7/10
Seven levels and a finale play from title screen to credits in the deployed browser build, and an automated player completed the finale in 2 of 6 runs.
- Core gameplay6/10
The lock-and-key loop gates all 7 of 7 levels and the longest boss freeze fell from 34 seconds to under one, but boss attack rate rose only about 6 percent.
- Content7/10
All 7 levels, 8 boss fights and 8 operatives are built, though all four hazard kinds appear in every level and 17 of 21 prop kinds are shared by all seven.
- Art and audio6/10
Every sprite and tile is drawn by code in one consistent pixel style and the soundtrack has 9 tracks, but one prop atlas serves all seven levels and two painted screens remain.
- Stability6/10
Automated probes and a watchdog cover all seven levels, and a frame-by-frame comparison of the web game and the Unity port matched in 66 of 66 stress runs, but the Unity port runs most levels at 17 to 24 ms a frame against a 16.7 ms budget.
- Release readiness5/10
Build 3.0.0 is deployed publicly as 163 files and 41MB.
Assessed Oct 20, 2026. Based on detailed, recent logs. This is the studio’s own assessment and it changes as the game does.
Recent progress
Updates
The game is called AFTERSHOCK
The world map header and the credits now use the game's one name, AFTERSHOCK. The window title and the save location keep the old longer name on purpose, because changing them would move where existing saves live.
Safer saves, teammates that stop getting in the way, and swords drawn the right way round
A round of code that compiles but has not been played. Saves are now written safely, computer-controlled teammates stop pinning the human player, sword swings are drawn on the correct side, and a first reading of a native build mode ran faster than the old one.
Proving the Unity port plays like the web game, and what the checks found
A frame-by-frame comparison now runs the original web game and the Unity port side by side, and the port matches across all seven levels. The same checks found dead gamepad sticks and a reverb that slowed down once a sound ended, and a scorecard of proven parity was corrected downward.
Title to credits in Unity, and why the levels feel alike
The Unity port now runs from the title screen to the credits, with sound and saves. The key tracker stopped printing chopped variable names, and a measurement pass put numbers on why six of the seven levels feel like one.
A boss in the wrong body, and a port checked byte for byte
Four reported bugs, three fixed and one that could not be reproduced but can no longer hang. Then the game began its port to Unity, starting with the rasteriser, because the whole game is drawn in code and the port is only right if the pixels are.
Eight operatives, and what "more definition" actually meant
The roster was one body in eight palettes, and is now eight silhouettes you can tell apart with the colour off. A pass that added tones made the characters smoother, the opposite of the note, and the portraits got detail where the figure was flat instead.
Show 6 earlier updates
Nine tracks, a death that lands, and a roster that is drawn
The game had two songs and played one of them across seven biomes. It has nine now, picked by level. A boss death whose payoff was landing 0.15 seconds after the screen it was drawn on had gone is staged properly, and the character select is generated art instead of a 2.27MB painting.
The seat gets taken, and the title burns
Press START on an empty seat and you now join mid-level, beside the lead, with a full set of lives. The painted title screen is gone, replaced by a real biome with a wordmark that is genuinely on fire.
The arcade seat, and eight bosses that would not move
Empty seats now blink INSERT COIN like a cabinet, and after three attempts every boss in the game finally moves during its own fight — the worst freeze dropped from 34 seconds to under one.
Level 2 production begins
Level 2 moves into active production with new environmental depth, encounter planning, and a more defined visual identity.
Background parallax pass
A focused pass on environmental layering and motion to make scenes feel deeper without sacrificing gameplay readability.
Combat and environment pass
Combat pacing, enemy pressure, and background presentation received another coordinated polish pass.
