Introduction
Why I wrote this book and why it will be useful to you
Setup and tools
Setting up our project structure
Core game engine concepts
The essential elements of a real-time game engine
Graphics and rendering
Making our game look great
- Sprites
- Animations
- Camera
- Shaders
Mobile
Making games that play well on mobile devices
- Touch controls
- Accelerometers
Mathematics for games
Fundamental mathematical tools and techniques
- Vectors
- Linear interpolation
- Line segments
- Circles
- Trigonometry
- Exponential growth and decay
Collision detection
A detailed examination of the different scenarios of colliding objects
- Optimizing collision detection through spatial partitioning
- Walls and other obstacles
- One-way walls and other dynamic behavior
- Raycasting
- Collisions between convex polygons using the Separating Axis Theorem
Implementation of specific game features
Some common game features and how they're implemented
- Friction and sliding
- Wall jumping and sliding
- Getting crushed between two moving walls
- Double-jumping
- Grace periods, "coyote time", and other player timing assistance
Design patterns
Proven solutions to common problems
- The State pattern and Finite State Machines
- Object pooling
Multiplayer
Techniques and approaches to enable real-time multiplayer on the web
- The Client-Server model
- Running our engine on the server
- Real-time message passing with WebSockets
- Intro to WebRTC
- Running WebRTC on the server