Comment by ddtaylor
6 hours ago
0ad is a fun game but the last few times I have tried to play it with my friends it lagged very bad once a few units were moving around. I actually was able to get it to play kind of normal by hacking the pathfinding code to give up after a fixed iteration count that was low. It worked kind of, but broke path finding a lot, obviously.
The crux of the issue is that their simulation is single threaded. It's a complicated problem to do both deterministic and multi-threaded, but I feel some of us could help them.
Two thousand years ago they'd barely have maps, I don't see why units need pathfinding anyway. In the Age of Empires series it had bizarre effects, like you could steer an enemy army around by building a wall across a forest path, forcing them to take a different path to their target (your base), since they apparently saw the wall with their psychic powers.
Realistically soldiers should head in the right compass direction and hope for the best. But then you (the player) shouldn't have a proper map of your own, either.
An RTS where you could only swap between FPV views of each of your units would be fun. Or at least different. Savage II but there is only 1 player per team, and no overhead view. And you can wrench control from a bot at any time.
Battlezone and battlezone 2 [0] were great for this. Many hours lost, even if bz2 was a buggy mess on release. It was also one of the first faves to really have a missing community.
[0] https://en.wikipedia.org/wiki/Battlezone_(1998_video_game)
Sacrifice is a brilliant RTS where the commander (a summoner mage of sorts) participates at the ground level.
1 reply →
Isn't this Mount and Blade?
It was the dream but any game that tried was always disappointing.
> I don't see why units need pathfinding anyway.
I'm sorry but huh? It's a RTS game, aren't moving units around on the map kind of a fundamental part of the genre and this game?
> Realistically soldiers should head in the right compass direction and hope for the best
If you implement unit movements in a RTS like this, they'll get stuck half the time you ask them to move anywhere, unless you want micromanagement of unit movement to be 90% of the game, which I don't think anyone would find fun.
Yes, but if you were that unit, would you get stuck in a corner, or would you persist in trying to find your destination? I suppose if you make it all the way to the target, you've accomplished pathfinding of some kind, by definition, sure. But an algorithm to avoid getting stuck doesn't have to be "pathfinding" as in an expensive algorithm to find a complete path right away.
4 replies →
Typical armies usually had, if not maps, reliable intelligence and guides. "we've heard this chokepoint is heavily defended" would indeed be a common reason for routing around.
It would be even fancier if there was some logic to take into account the position of your mobile units as well - for example, to avoid massed troops except in favorable conditions.
AFAIK one of the reasons they held onto 'alpha' for so long was that this network lag issue for internet based play was a big known and hard to address issue. I'd def be trying again since they've come out of alpha with this release.. a huge deal for a game that is so many years in development.
Also, we've always played the game as in-person LAN, and for the most part the lag has been just fine. Only for really huge end of game final battles with the screen packed with troops did it lag out for us, but being free and all, we'd often gather around one monitor and talk crap at each other while we waited for it to clear up.
Good times.
For me the main problem with 0AD multiplayer is that if any player loses their connection even for a moment for any reason, the game either halts completely or forks so that they can't rejoin. Quite frustrating, especially for longer campaigns. It's also impossible to save and restore in multiplayer.
It did save in a27 for me - I had the same forking problem but was able to go back to a previous save and the other player was able to rejoin at that point. This was in a local network game.
This is one of the problems that BAR solves beautifully - a player could leave and rejoin later and the game would continue running just fine. An existing player can choose to take their stuff or not, or take it and give it back when the player rejoins. Truly elegant.
The history behind BAR is also fascinating.
There was the Total Annihilation RTS and while it had the normal 2d overhead view, all the data was in 3d.
A Swedish gaming clan put together an accelerated full 3d engine to replay Total Annihilation recorded demos. As it got more and more features it was realized that most of what was needed to play TA was being recreated so they closed the loop and made it into a full game engine which they called SpringRTS. There was the default accurate TA game code but there was also a very popular mod that was not afraid to change things a bit, basically "we like Total Annihilation but also think it could be better" and they called it Balanced Annihilation. We are almost there. BA lived under the Spring project for a few years, but really when you think about it there are ip problems with it using the TA assets, also, I suspect someone wanted to do engine work but was having a hard time with upstreaming it, so it forked off the Spring project, they rebuilt all the units(same unit different skin) are doing a ton of great engine work and called it BAR (retronymed into Beyond All Reason but I suspect it originally stood for Balanced Annihilation Reborn or something like that). So BAR is basically a highly modified legally distinct Total Annihilation.
Zero-K is another great RTS based on this engine. It drifts further off the TA formula than BAR does.
BAR in general is such a great showcase in A) FOSS games can be good, work great, scale nice and be fun and B) BAR is a game built by gamers who play and enjoy their own game, for other gamers, which seems more and more rare these days.
What is BAR?
2 replies →
I feel like the issue is more that their pathing algorithm is very inefficient. Not sure why using multiple cores would solve the problem if the cause of the lag is that their pathing algorithm is cubic time or something
The pathfinding algorithm has been decently optimized. The reality is that 600 units finding paths and keeping them up to date is a lot of work.
Some of the pathfinding is precomputed, some cannot be as it involves other units and formations.
Most other RTS games work around this by either relaxing the constraints or implement some amount of parallelism.