Appearance
Arcade › Arena.io
Play right here in your browser without an account or download. Follow the controls shown in the game, and use Play fullscreen for a larger view.
Made by tao chen, with room for your ideas. Share what you enjoyed, what needs work, or how you could help.
Join the conversation on Discord ↗
Nobody has said anything about Arena.io yet. Play it, then tell tao chen what you would add next.
Comments are shared with the public Discord thread.
Arena.io was built by tao chen with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.
Remix Arena.io opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.
Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.
Create a browser game titled "Arena.io" as a zero-dependency 2D Canvas arena shooter. Use a full-window responsive canvas with a fixed 4000x4000 square world viewed from a top-down camera that smoothly follows the player; clamp the player to the world edges. The arena ground is slate blue-gray (#b8c6d0) on a pale gray-blue outside/background (#dce3e8), with a subtle white grid every 80 world units and a thick red border around the square. Keep the presentation clean, flat, colorful, and casual .io-style. Start on a centered menu overlay with a blue radial-gradient background, large bold white "Arena.io" title, subtitle "Free-for-all. Last one standing wins.", and a prominent white rounded Play button. Clicking Play, or pressing Enter/Space, starts a fresh match. During play show a top-left HUD with score, kills, and level (for example "0", "0 kills", "Lv.1") in small translucent light badges. Show a top-right dark translucent rounded Leaderboard panel listing up to the top 10 living players, with rank, name, and score; highlight the human player in blue. Show a 130px circular minimap in the bottom-right with a dark translucent background/border, blue dot for the player and red dots for living bots. On touch devices show a translucent circular virtual joystick at bottom-left. The human player is a blue circle initially radius 16, with a darker blue outline, soft offset shadow, two white eyes with black pupils, and a white name label above it. Name the player something appropriate such as "You". There are 20 simultaneously maintained AI bots. Bots are circles with random bright HSL colors, slight random radius variation, the same eyes, shadow, name label, and damaged-only HP bars. The human has the blue appearance; bots have 2px dark translucent outlines. Living entities have 100 HP initially. When damaged, render a small HP bar above the name: green above 30% health and red at or below 30%. Briefly flash entities semi-transparent after they are hit and give them a short invulnerability window. Populate the world with 80 small gold/yellow collectible food dots, radius 5, with a darker gold outline. Food respawns until there are 80 again, avoiding spawning too close to living players. A living player or bot collects food by touching it. Each food gives 4 XP and score; collected food disappears with tiny gold particles. XP thresholds are 30 + current level*15. On level-up, increase level, increase radius by 1.5 over base per level, increase speed by 2%, reduce fire cooldown by 6%, increase bullet damage by 2, increase max HP by 10, heal up to 20 HP, spawn six additional nearby food dots, and show a floating blue "LEVEL UP!" popup for the human. Movement: on desktop use WASD or arrow keys, normalized for diagonal movement, at base speed 220. On touch, use the bottom-left joystick, with a 50px effective radius and small dead zone. The camera follows the player with smooth interpolation. Desktop aiming is from the mouse cursor relative to the camera; hold the left mouse button to continuously fire, and stop firing when the pointer leaves the canvas or the button is released. Each shot has a 0.25-second initial cooldown, travels at 460 units/second, does 20 damage initially, has a small radius 4, and lasts 1.6 seconds. Render player bullets as bright blue circles with a faint short trail. On mobile, touching/using the joystick automatically fires and auto-aims at the nearest living enemy within 500 world units; otherwise shoot forward. Add two small muzzle particles at each shot. Bots should act autonomously. Every roughly 0.3–0.8 seconds each living bot retargets: 40% of the time chase the human if alive, 40% chase the nearest food, and otherwise wander to a random point. Bots move around base speed with a small random variation, remain inside the arena, and fire at the nearest living target (human or another bot) within 500 units. Bot shots travel at 65% of normal bullet speed, deal 60% of the bot's bullet damage, have a random aim offset of about +/-0.15 radians, and are colored to match the bot with red-toned enemy-bullet rendering. Bots can also damage one another by overlapping: when two bots collide, apply about 2 + half their level damage with a 0.3-second collision interval. The human has no melee collision damage; combat is primarily shooting. Bullets disappear when their lifetime expires, leave the world, or hit a target. Human bullets damage bots; enemy bullets damage the human or other bots but not their owner. On a kill, mark the target dead, burst it into colored and white particles, award the human 50 + victim level*15 score, increment kills, award 10 + victim level*2 XP, and show a floating gold score popup. Bot kills should similarly award that bot level-based score/XP and allow bot leveling. Dead bots respawn at a random safe-ish location after about 1.5–3.5 seconds with full HP, level 1, reset score, and one second of invulnerability, while maintaining the roster of 20. If the human reaches zero HP, stop player control, show an opaque/translucent blurred dark overlay with centered white "You Died", subtitle "Rank #N" computed among living entities sorted by score, and a rounded Respawn button. Allow clicking it or pressing Enter/Space to respawn the human at a random location with full HP and one second of invulnerability; reset the active match state when starting from the menu, but preserve normal in-match HUD behavior. Continue lightweight particle/pop-up and bot-respawn updates while the death overlay is visible. Use short-lived colored circular particles for firing, hits, food collection, level-ups, and deaths, subtle screen shake on damage/level-up, and floating text popups. Keep the rendering crisp and uncluttered, with all entity names always visible and HP bars only when damaged.