Website/Blog about the things you need to know to make a modern RTS game

Welcome to How to RTS

I’ve been recently interested in RTS Games (Planetary Annihilation and Supreme Commander 2 in particular), so I plan to slowly build up an RTS engine of my own. Along the way I’ll do some posts and miniprojects explaining and showing the various things involved.

I’ll be posting mini examples as runnable javascript apps to explain how things work.

Check back regularly or subscribe using the Atom Feed.


This is a rough list around what I plan on developing and writing up.

Posts so far

23 Feb 2014

Rendering combined range rings

When you have multiple units, rather than rendering one circle for each of their weapon ranges, it looks nicer to draw the outline of all of the ranges instead

30 Jan 2014

Flow Fields: Line of Sight

We add Line of Sight calculations to our Flow Field to improve accuracy near the destination

14 Jan 2014

Avoidance Behaviours

Lets try not crash in to each other

09 Jan 2014

Continuum Crowds

Seeing how well continuum crowds works for RTS games

06 Jan 2014

Pathing Literature Review

Heaps of articles, videos on Pathing and some observations on Planetary Annihilation Pathing

05 Jan 2014


We add Box2D Physics to our simulation to make it more like a real game

05 Jan 2014

Flow Fields Improvements

Lets improve our Flow Field so we get some more efficient movement

04 Jan 2014

Basic Flow Fields

Today we learn about the awesome pathing technique used by Supreme Commander 2 and Planetary Annihilation

03 Jan 2014

Steering Behaviours: Flocking

Getting our agents to move as a group

02 Jan 2014

Steering Behaviours Introduction

To provide more realistic behaviour we'll look at driving our creeps around the grid

31 Dec 2013

Generating a path with Dijkstra

Rather than specifying a path, we'll use Dijkstras algorithm to work out the most efficient path

22 Dec 2013

Following a path

How to get enemies to follow a fixed path

16 Dec 2013

First Post!

Introductions and history

Site By @daveleaver Theme by mattgraham