A update was just released to help with some of the lag issues people have been having, its a small update "1.9 MB" and there is still work to be done on the subject so stay tuned!
- Remove the older and deprecated DirectPlay layer and replace it with a current network communication framework (p2p session management and message authentication, robust NAT traversal, etc.)
- Implement basic matchmaking functionality for quick matches, lobby browsing, and friend invitations
- Implement advanced matchmaking features such as skill based ranking
- Allow mod community support and make it easy for users to share mods
- Implement stats, leaderboards and achievements for the first time
- Introduce a current generation anti-cheat system, as suitable for a popular multiplayer game.
Releasing the game on Steam with Steamworks libraries helped make these features fit within our timeframe. Not only did Steamworks provide a base of functionality which matched our goals, but additionally the team here at Hidden Path has a lot of experience working with Valve and the Steam platform itself. This experience would prove to be very important, as the challenges we were to face during modernization would prove much more difficult than simply plugging in a new back end service.
When Age of Empires II was written 14 years ago, there were few alternatives that could match the functionality of DirectPlay and MSN Gaming Zone. With such an established architecture the developers at Ensemble had little cause to write Age of Empires II with the thought that all of its functionality would one day need to be replaced. As a result, when we received the source code to Age we discovered that the Direct Play and Zone architectures were intertwined with the game logic itself. This presented us with our first difficult problem - should we invest the time in extricating the logic which was dependent on those architectures or should we leave things in place and simply emulate the old behavior?
In the end, we decided to perform a clean break from the old code and I am very pleased that we did. The original core networking class in Age of Empires II was a massive 13,000 line piece of engineering. The fundamental architecture originally designed by Mark Terrano was brilliant, but over the course of development, many other programmers had hacked in their own bits and pieces of code. I was overwhelmed, so I did the only sensible thing that I could think of - I tracked down every piece of networking logic and injected logging, on screen messages, and forced stops. What began to emerge through this process was a real understanding of what exactly was going on at the lower levels of the multiplayer code.
Those first few weeks were harrowing and often confusing, but far more quickly than I had first thought, I was ready to draw a line in the sand. I had a map of where I was going to abstract out the functionality and interface it with the new back end services. A few short months after that we stepped back and looked at what we had - a fast, stable, fairly well understood replication of the original high level functionality, all running through Steam. On top of that, during the same period, our amazing internal test team (Lead by Mark Shoemaker and Jon Lee) deployed a set of automated testing tools that are the best I have seen. Regardless of whether I was home programming late at night, or in the office chasing down an obscure synchronization error, I had the ability to summon up automated opponents on remote machines. At that point, with our primary goals met and the security of knowing that we would be able to test out anything new with hundreds of hours' worth of automated multiplayer matches, we were able to set out at a sprint adding in new functionality and knocking out our stretch goals.
I think you are going to be extremely pleased with how things have turned out. The new matchmaking system delivers what you would expect from a modern game. You can filter by player skill, game type, map size, etc. There is a global ranking system and 190 new online and offline achievements. We have done our best to ensure that the Steam Workshop integration is smooth and that it will be of great value to the big name modders as well as the amateur map and scenario designers. For obvious reasons I cannot reveal details on the new anti-cheat system, but I will say that I had a fun time exploring existing cheats as well as planning for the future.
I am very proud to have my name on this release and I very much hope you enjoy Age of Empires II HD.