Gaffer On Games


Glenn Fiedler's Game Development Articles

Networked Physics in Virtual Reality

Networking a stack of cubes with Unity and PhysX


Why can't I send UDP packets from a browser?

A solution for enabling UDP in the web


Client Server Connection

How to create a client/server connection over UDP


Reliable Ordered Messages

How to implement reliable-ordered messages on top of UDP


Sending Large Blocks of Data

How to send blocks quickly and reliably over UDP


Packet Fragmentation and Reassembly

How to send and receive packets larger than MTU


Serialization Strategies

Smart tricks that unify packet read and write


Reading and Writing Packets

Best practices for reading and writing packets


State Synchronization

Keeping simulations in sync by sending state


Snapshot Compression

Advanced techniques for optimizing bandwidth


Snapshot Interpolation

Interpolating between snapshots of visual state


Deterministic Lockstep

Keeping simulations in sync by sending only inputs


Introduction to Networked Physics

Three ways to network a physics simulation


Collision Response and Coulomb Friction

Making a go stone bounce and spin realistically


Rotation & Inertia Tensors

Accurately modelling the wobble of a go stone


Go Stone vs. Go Board

Collision detection between stones and the board


How The Go Stone Moves

Simulating the motion of go stones as rigid bodies


Tessellating The Go Stone

Generating a triangle mesh for the go stone


Shape of The Go Stone

Modelling the shape of a biconvex go stone


Introduction to Virtual Go

My project to simulate a go board and stones


Floating Point Determinism

Is it possible to make floating point calculations completely deterministic?


What Every Programmer Needs To Know About Game Networking

A short history of game networking techniques


Reliability and Congestion Avoidance over UDP

How to implement reliability and congestion avoidance in a completely different way to TCP


Virtual Connection over UDP

How to create a virtual connection over connectionless UDP


Sending and Receiving Packets

How to send and receive packets over UDP with BSD sockets


UDP vs. TCP

Which protocol is best for games?


Networked Physics (2004)

How to network a physics simulation


Spring Physics

How to simulate springs and dampers


Physics in 3D

How to simulate the motion of rigid bodies


Fix Your Timestep!

How to step your physics simulation forward


Integration Basics

How to integrate the equations of motion