Demo: https://brianchoi.net/birdtown
birdtown is an experiment to connect friends through accessible, real-time multiplayer by leveraging new features from modern web browsers.
Key features include
- WebGPU/BabylonJS for 3D graphics with minimal load times
- WebRTC/PeerJS for low cost peer-to-peer netcode that can reliably support fast-paced cross-platform gameplay
- HTML5 spatial audio nodes (and WebRTC) for integrated proximity voice chat
Under development - demo at https://brianchoi.net/birdtown.
- Custom built for the web with nearly instant load times
- Cross platform support - play with any device that can run a modern web browser, including your phone
- 3D rendering thanks to Babylon.js and WebGL
- Fully featured voice chat with spatialized audio (and text chat)
- Peer-to-peer, but also server authoritative (one client serves as host)
- Configurable client prediction for smoothing network hiccups
- Game states are diff-based, compressed, and selectively sent using both reliable (TCP-like) and unreliable (UDP-like) protocols for fast and consistent gameplay
- Levels are procedurally generated, deterministic, and synced over the network
- Typescript
- Babylon.js for rendering and core game engine features
- Peer.js for brokering direct peer-to-peer data and voice connections
- Matter.js for lightweight 2D physics
- Webpack for compiling code
- MessagePack for fast data compression
- Blender for art
- Github for version control and hosting