There's only one bug remaining with harvesters. If a resource field is on a steep area there might not be a large enough area for the harvester to park safely while harvesting so what happens is the harvester drives around the field trying to find a safe spot to harvest, but it sometimes takes quite a while to find one. I'm considering making this bug a feature and having smaller harvesters be something you can choose to build.
Getting harvesters to work was an ordeal, they broke replication, collisions, AI, effects, pathfinding and more. Fortunately none of the three remaining features should be so disruptive, they're mostly UI screens and hooks into the existing stats system.
The bulk of the work this week was on The Shroud. The Shroud covers the entire map until the player has explored that area. How much of the shroud each unit peels back depends on the unit's sensor range so if you build a unit without sensors it will only remove the shroud exactly where the unit is. One difference from the shroud in Command and Conquer is that once the shroud is pulled back, you still can't see enemies on the minimap unless you have a unit nearby. This is a necessary concession due to the scale of Miranda's simulation - it just isn't possible to replicate the state of the entire game to any one client.
It has been a long time since I've needed to write a new data structure. Most of what I do is reuse C++ templates for vectors, linked lists, deques and hashtables. The Shroud had some rather unique and challenging requirements. It has to store shrouded/unshrouded data for the 14.4 billion points that cover the full map. Even a simple bitmap would take 1.8GB to store that data for one player which is far too much for a server that needs to support thousands of players. And it would take a long time to download!
I've been implementing a sparse bitmap. Because it is a map, it will be large areas of shrouded terrain, and large areas of unshrouded, but it really only the boundaries where there is anything interesting going on. There is a surprising lack of good information about high performance sparse bitmap algorithms on the internet so I'm sort of winging it.
We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.
You will not be able to post until you resolve this problem.