That’s right. After weeks of work and a near-full engine rewrite I have multiplayer working in Planitia. Now, right now everything has to be hardcoded – number of clients, the IP addresses, everything. So I can’t release a demo yet. I’ll need to at least bang in some code so that clients and servers can find each other on a LAN before I do.

I’m just terribly, terribly excited. I did a ton of research for this (and of course I’ll be Writing An Article) and it paid off tremendously – everything is working exactly like I expected it would once the system was implemented.

Now, that’s not to say it’s perfect. The system is updating an average of six times a second, which means that right now units jump across the map and there’s a bit of lag between clicking a button and having something happen in the world. Both of these can be made to look better with interpolation and prediction, though they don’t actually change how the game plays.

If you guys want to get a leg up on finding out how I did the multiplayer, you can read the following articles:

For making your engine multiplayer ready:
Instant Replay: Building a Game Engine with Reproducible Behavior

For implementing network multiplayer in an RTS:

1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
“Real-Time Strategy Network Protocol”, Game Programming Gems 3 page 496 or Best of Game Programming Gems page 459, by Jan Svarovsky

Teehee! I’m so excited!

Oh, and the next installment of Let’s Play Starflight will be delayed a day. For some reason.