🛩️ Sky Arena
A real-time 3D dogfight where browsers connect directly to each other, no game server needed. Up to 6 players battle in a nonstop deathmatch, with live rankings in the top-left corner. Send friends a room link, jump into quick match, or practice against AI bots.
How to play Sky Arena
- Pick a nickname, then choose Quick match (play anyone), Create room (invite friends), Join with code, or Practice vs AI bots.
- You can fly as soon as you join. When other players connect, they appear in the sky, and the top-left list shows their nicknames and ping.
- Get on an enemy's tail, put them inside the reticle (the circle in the middle), and fire. The basic gun does −10 HP per hit, so 10 hits shoots a plane down.
- Weapon upgrades: chain kills without dying and your weapon gets stronger. Get shot down and you respawn back at level 1.
Each upgrade flashes a big LEVEL UP! banner, and the bullets look completely different at each level (thin tracers → glowing heavy rounds → teal plasma orbs). Your engine flame changes to your weapon color too, so you can read an opponent's weapon at a glance.
Level Kill streak Weapon What changes Lv1 0 Machine Gun −10 per hit, alternating left and right Lv2 2 Rapid-Fire MG About 30% faster fire rate Lv3 3 Twin MG Fires 2 rounds from both wings at once Lv4 5 Heavy Twin Cannon 2 rounds · −14 per hit · faster bullets Lv5 7 Spread Plasma 3-round fan · −14 per hit - Map items: items marked with pillars of light float around the arena. Fly through one to grab it. Once taken, it respawns somewhere else right away, and items also show on your radar.
While a special weapon is active, the HUD shows its remaining time; when it runs out you go back to your current level weapon. Getting shot down removes it.
Item Effect ❤️ Repair kit (red cross) HP +40 (cannot be picked up at full HP) ⚡ Laser 12 seconds · very fast green beams, −7 per hit 🚀 Rocket 12 seconds · slow but −34 per hit, with a big, forgiving hitbox 💥 Shotgun 12 seconds · 7 pellets per shot, strong up close (−9 per pellet) - After being shot down you respawn in 3 seconds with 2 seconds of invulnerability (your plane blinks).
- It is a nonstop deathmatch with no rounds. Every kill adds 1, and the top-left ranking shows the live kill/death standings of everyone in the room (most kills first, fewest deaths breaks ties). Hold Tab for the full scoreboard.
- If you leave the arena (a circle about 2 km across ringed by red buoys, altitude 25–560 m), a warning appears; if you do not return within 2.5 seconds, autopilot steers you back in.
- Maps: in the lobby, choose 🎲 Random or 🌊 Tropical Sea · 🌅 Sunset Isles · 🌙 Moonlit Night · ❄️ Glacier · 🏜️ Desert Canyon · ⛈️ Storm Clouds (lightning, short visibility) · 🌋 Volcano Island. Maps change scenery and visibility only; arena size and rules stay the same. In online rooms, everyone uses the map chosen by the host (the first player in the room).
Create a room and invite friends
Press Create room to get a room code like SKY-4821, and the invite link (…/sky-arena/#room=SKY-4821) is copied automatically. Send the link in any chat app; your friend opens it and presses Join with code. You can also just read out the 4-digit code. A room holds up to 6 players. In Quick match, when a public room fills up with 6, late arrivals are moved to the next public room automatically.
The host (the first player in the room) manages match state. If the host leaves, the next earliest player takes over automatically and scores carry on.
Controls
| Action | PC | Mobile |
|---|---|---|
| Pitch up / down | W/S or ↑/↓, mouse up / down | Left joystick up / down |
| Turn left / right | A/D or ←/→, mouse left / right | Left joystick left / right |
| Roll | Q/E | - |
| Boost | Hold Ctrl (or Shift) · hold right mouse button | Boost button |
| Fire | Space/J or left click | Fire button (hold) |
| Auto-fire | F (fires automatically, with lead, when an enemy is within about 12° of the reticle and 700 m) | Auto button |
| Scoreboard | Hold Tab | - |
With the mouse, the farther the cursor is from the center of the screen, the harder you turn that way; keep it near the center to fly straight. The plane banks automatically in turns, and pitch plus turn alone can point you in any direction. A full boost gauge lasts up to 10 seconds and refills in 10 seconds when unused. When boosting with Ctrl, steer with the arrow keys: Ctrl+W closes the browser tab and cannot be blocked. If you try to close the tab mid-game, the browser asks you to confirm.
Dogfighting tips
1. Chase tails instead of going head-on
Head-on passes usually trade equal damage. As an enemy flies past, turn hard to get behind them, and aim slightly ahead of their path (lead the target) for more hits.
2. Save boost for chasing and escaping
Burn boost constantly and it will be empty when you need it. Use it with a hard turn to shake a pursuer, or to close distance on a fleeing target.
3. Use altitude
On the radar, ▲ means an enemy above you and ▼ means below. Big vertical moves make you much harder to track for opponents who only turn flat.
If the P2P connection does not work
Sky Arena has no game server. Players connect directly with WebRTC. Only the initial "finding each other" step uses public Nostr relays to exchange connection details, and Google's public STUN servers to discover a network route. As a result, connections may fail on:
- Office, school, or public Wi-Fi networks whose firewalls block P2P (UDP) traffic
- Some mobile carriers with strict NAT, VPNs, or certain ad-blocking extensions
- Very old browsers (the latest Chrome, Safari, Edge, or Firefox is recommended)
If nobody shows up after 15 seconds, a help message appears. Double-check that you and your friend used the same room code, and try switching one of you to another network, such as a phone hotspot. Practice vs AI bots always works, even offline.
Privacy and P2P connections
- IP address visibility: P2P means browsers connect directly, so your IP address (which can reveal your rough location and internet provider) may be visible to the browsers of other players in your room. If that concerns you with strangers in Quick match, play only with friends via room codes, or practice with bots.
- Public Nostr relays: connection setup (signaling) runs through public Nostr relays operated by third parties. The messages are encrypted connection offers based on the room name and contain no nicknames or gameplay, but relay operators can see your IP address and when you connected.
- No game data is stored on a server: plane positions, shots, and scores travel only between players' browsers, and smith lab does not store them anywhere. Your nickname, auto-fire and map settings, and best kill count are saved only in this browser's cookies.
Hits and scores are calculated by each player's own browser in a casual model (the player who gets hit decides), so a tampered client cannot be stopped completely. The game does check for and ignore abnormal speed, fire rate, and data. The 3D engine (three.js) loads from cdnjs, and the P2P library (Trystero, MIT license) is served from this site. Korean- and English-language players share the same rooms.