Multiplayer Arena
Play head to head with a friend on two different devices across the internet. One player generates a 6-character room code, the other joins, and game traffic flows directly peer to peer with live in-game peer chat.
Grid combat
Neon Light Cycles
High-speed tactical light trail dueling. Box in your opponent and force a crash. Classic, Turbo and Arena modes with solo AI or 2-player online room codes.
Play online → Live ChatReal-time rally
Neon Pong
Head to head paddle battle. Host-authoritative physics, client-side paddle prediction, and interpolated snapshots for silky 60 FPS remote rallies.
Play online → Live ChatTurn-based duel
Connect Four
Four in a row wins it. Outsmart your friend in a turn-based tactical drop duel with move validation, celebratory particle effects, and rematch requests.
Play online →Wave shooter
Vector Arena
Clear waves of geometry, dash through the gaps, keep the combo alive. Survival, Time Attack and Zen modes.
Play →Grid arcade
Neon Snake
Eat, grow, don't double back, with a swipe-friendly touch layer. Classic, Wrap and Maze modes.
Play →Paddle arcade
Brick Breaker
Clear the grid, keep the ball alive. Classic, one-life Blitz, and an Endless wall that creeps down on you.
Play →Head to head
Neon Pong
You against the machine or a remote friend. Classic, short-paddle Blitz, and Multiball with three in play at once.
Play →Sliding puzzle
Neon 2048
Slide, merge, reach the target tile. Three boards: Compact 3x3, the 4x4 Classic, and Grand 5x5.
Play →Strategy
Connect Four
Four in a row wins it: against minimax AI or online 2-player duel. Casual, Standard and Expert difficulties up to seven plies deep.
Play →Grid combat
Neon Light Cycles
High-speed tactical light trail dueling. Box in your opponent and force a crash. Classic, Turbo and Arena modes against solo AI or 2-player online room codes.
Play →Vector space
Neon Asteroids
Newtonian inertia, hyperspace warp, and rock shattering physics. Classic wave survival, 60s Blitz score attack, and kinetic Shields mode.
Play →Under the hood
Every game here is a subclass of the same Game loop: a JavaScript port of
a 2D game framework originally written in Java. Java no longer runs in browsers, so the
framework's core (vector and rectangle math, input polling, easing equations) was ported
to ES modules once, and each game is written against that same port.
| Module | Used for |
|---|---|
framework/game.js |
The update / draw game loop every game in the arcade runs on. |
framework/vector2.js |
Positions, velocities and steering for every entity in every game. |
framework/input.js |
Keyboard and mouse polling shared across all games. |
game/particles.js, game/audio.js |
The particle bursts and synthesised sound effects each game reuses. The pool is held in typed arrays and drawn in batches, so a thousand live particles cost a few dozen draw calls between them. |
net/session.js, net/protocol.js |
WebRTC data channel peer-to-peer multiplayer networking with dual channels (ordered reliable for events, unordered unreliable for real-time snapshots), room code generation, and ICE STUN/TURN fallback configuration. |
net/chat.js |
In-game real-time chat overlay supporting quick emoji chips, floating auto-fade message bubbles, and full custom keyboard messaging during matches. |
framework/quality.js |
Watches the frame time and scales glow, particle counts and the device pixel ratio to match. The quality button on every game pins it by hand. |
framework/spatialgrid.js |
Uniform grid broad phase, so bullet against enemy stays cheap once a late wave fills the arena. |
games/shell.js |
The chrome around each canvas: overlays, score readouts, mode pills and the sound, quality and fullscreen buttons. |