Graphics & Rendering
GPU-accelerated 2D/3D rendering — the backbone of every browser game.
WebGPU
Next-gen GPU API. Compute shaders, modern rendering pipeline, ML inference on the GPU. Successor to WebGL.
Build: 3D games, particle systems, GPU-driven physics
WebGL 2
OpenGL ES 3.0 in the browser. Stable, universal. Powers Three.js, Babylon.js, PixiJS, and most browser games.
Build: 3D games, racing, flight sims, FPS
Canvas 2D
Immediate-mode 2D drawing. Fast, simple, everywhere. The engine behind Snake, Pong, Asteroids, and platformers.
Build: Arcade games, puzzle games, card games
OffscreenCanvas
Render canvas in a Web Worker — no jank on the main thread. Critical for complex games and physics simulations.
Build: Heavy rendering, physics engines, procedural generation
View Transitions
Animated page transitions with a single CSS rule. Smooth transitions between game menus and screens.
Build: Polished menu systems, level select screens
Input & Controllers
Gamepads, touch, keyboard, pointer lock — every input method a game needs.
Gamepad API
Xbox, PlayStation, and generic controllers. Vibration, analog sticks, buttons. Plug in and play.
Build: Console-quality controls for racing, fighting, platformers
Pointer Lock
Hide the cursor and get raw mouse movement. Essential for first-person and mouse-look cameras.
Build: FPS, flight sims, 3D exploration
Touch Events
Multi-touch support. Pinch, swipe, rotate — mobile-native input for mobile-first games.
Build: Mobile arcade, puzzle, card games
Vibration API
Haptic feedback on mobile devices. Buzz on impact, pulse on score, rumble on explosion.
Build: Tactile feedback for mobile games
Accelerometer & Gyroscope
Motion and orientation sensors. Tilt-to-steer, device-as-controller, motion-controlled gameplay.
Build: Tilt racing, marble maze, balance games
Audio
Spatial audio, synthesis, and real-time effects — the sound engine games deserve.
Web Audio API
Professional audio graph. Spatial 3D audio, real-time effects, synthesis, mixing. No plugins needed.
Build: Sound effects, spatial audio, music, procedural audio
AudioWorklet
Custom audio processing on a dedicated thread. Sample-level DSP without blocking the game loop.
Build: Custom synthesizers, real-time audio effects, voice chat
Speech Synthesis
Text-to-speech with multiple voices and languages. Narration, accessibility, NPC dialogue.
Build: Narrated adventures, accessible games, voice feedback
Performance & Compute
Native-speed code in the browser. Multi-threading, SIMD, and compiled languages.
WebAssembly (WASM)
Run C, C++, Rust, Go at near-native speed. Port existing game engines to the browser. Unity and Godot use WASM.
Build: Physics engines, game engine ports, emulators
Web Workers
Background threads. Run AI, pathfinding, physics, and procedural generation without blocking the game loop.
Build: AI opponents, world generation, pathfinding
SharedArrayBuffer
Shared memory between workers. Enables true multi-threading with atomics for game engines.
Build: Multi-threaded game engines, real-time physics
WASM SIMD
Single Instruction, Multiple Data. Process 4+ values in one CPU cycle. Critical for physics, collision, and particle systems.
Build: Particle systems, collision detection, matrix math
requestAnimationFrame
V-synced game loop. 60fps (or 120fps) with automatic throttling when the tab is hidden.
Build: Every game that renders frames
Networking
Real-time connections for multiplayer, leaderboards, and live updates.
WebSocket
Full-duplex persistent connection. Turn-based multiplayer, chat, live game state sync.
Build: Turn-based multiplayer, chat, lobbies
WebRTC
Peer-to-peer data channels. Low-latency multiplayer without a server in the middle.
Build: Real-time multiplayer, P2P game state, voice chat
WebTransport
HTTP/3-based transport. Unreliable datagrams for action games — lower latency than WebSocket.
Build: Fast-paced multiplayer, real-time action games
Storage
Save games, cache assets, and work offline — all client-side.
IndexedDB
Structured client-side database. Save game state, player profiles, level progress. No size limit (quota-managed).
Build: Save systems, offline levels, asset caching
Origin Private File System
High-performance file storage in a sandboxed file system. Cache large assets like textures and audio.
Build: Asset pipelines, replay storage, user-generated content
Cache API + Service Worker
Cache game assets for instant load and offline play. The foundation of installable PWA games.
Build: Offline games, instant-loading PWAs
Platform Integration
OS-level features that make browser games feel native.
Fullscreen API
Go fullscreen. Essential for immersive games. One click, total focus.
Build: Any game that benefits from immersion
Screen Wake Lock
Prevent the screen from dimming or locking during gameplay.
Build: Mobile games, idle games, long sessions
Web Share API
Native share sheet. Share scores, screenshots, and replays to any app.
Build: Score sharing, replay sharing, social features
Push Notifications
Real push notifications — even when the game isn't open. Daily challenges, turn reminders, leaderboard updates.
Build: Daily challenges, turn-based notifications
Clipboard API
Copy and paste. Share puzzle codes, seed values, or game state as text.
Build: Wordle-style result sharing, level codes
What You Can Build
These are real game categories that are fully possible with today's browser APIs — no native code, no app store.
2D Arcade
Snake, Pac-Man, Breakout, Asteroids, Frogger. Canvas 2D + requestAnimationFrame + Web Audio.
3D Games
Racing, bowling, billiards, flight sims. WebGL 2 + Three.js or Babylon.js + physics engines.
Puzzle & Board
Chess, checkers, 2048, Sudoku, Wordle, Minesweeper. DOM or Canvas + touch + save state.
Card Games
Solitaire, Memory, Blackjack, War. CSS transforms + drag & drop + smooth animations.
Multiplayer
Turn-based (chess, checkers) or real-time (racing, shooters). WebSocket + WebRTC + Durable Objects.
Retro & Emulation
Run classic console games via WASM-compiled emulators. Game Boy, NES, SNES — in a tab.
What Browsers Still Can't Do
Some things genuinely require native. Be honest about the gaps.
| Capability | Status | Notes |
|---|---|---|
| Background execution (always-on) | Limited | Service workers wake on push/sync, but can't run a game loop in the background |
| Raw GPU access | Partial | WebGPU is powerful but not Vulkan/Metal-level. Sufficient for 99% of browser games |
| Low-level networking (raw UDP) | No | WebTransport unreliable datagrams cover most real-time game needs |
| Native controller rumble (advanced) | Partial | Basic vibration works; dual-motor HD rumble is not exposed |
| VR/AR (immersive) | Partial | WebXR exists but device/browser support is still fragmented |
| Multi-window (split-screen) | No | Can't open multiple synced game windows on one screen reliably |
Start Building
The browser is the most powerful game platform ever created. Every API on this page is available to FreeGameStore games out of the box. Start from a template, publish in minutes.
fgs init my-game --template canvas
cd my-game && pnpm install && pnpm dev