Dota FPS issues: A gamedevs view
In recent weeks a constant FPS (frames per seconds) issue has hit Dota 2. Since moving the game to the new engine, the game has suffered minor setbacks in terms of bugs and glitches.
A suggestion came on reddit that the game might not be using computer hardware to its highest potential, causing a heavy dispute among Dota 2 enthusiasts. More specifically the complaint suggested that instead of using the GPU the game is coded in a way that it requires more work from the CPU instead, which could seem wasteful in case of a high-end GPU that most gamers have.
A game developer then decided to share his view on the matter, explaining in details the problems Valve might be facing. In a series of long comments, the person named “palish” explained the situation from his point in an attempt to calm the masses. He starts off with describing the tasks necessary to work with the GPU: “Either you build an engine from the ground-up to be (somehow) GPU-based... All the gaming logic, all the collision tests, everything... Or you use the CPU.” No matter what option you go with, the optimization process can have unwanted surprises. To further explain the situation, he suggests the use “profiler” which returns the speed of a program in its different areas. In order to optimize a problem, the areas which take a long time need to be dealt with in order to gain performance. But it might just happen that although every component is fast, there are so many parts that the final product is still slow.
He also offers a particular example, talking about the computational power that it is needed for Anti-Mage to be in the game. “The complexity here is that... Think of Anti-Mage. (…) he's a set of animations, a collision box, some voice lines, game logic (a set of abilities), etc. Dota is this big ol' simulation, with a ton of moving parts.
Now think of every creep. Every single creep is like a little Anti Mage: All the stuff I said about him, also applies to the creeps. And every frame, all of those parts have to be "updated" -- the program has to check what the part should do next. Should it deduct some health from Anti Mage, because a creep just hit him?”
There is an even larger computational demand during a teamfight
In his view, the GPU cannot be used for everything, as sending the information to it already causes delays within a system: “It's really hard to take a certain part, and throw the GPU at it. You'd introduce a delay into the engine, for one. GPUs are powerful, but they're also high-latency. For GPUs, it introduces a lag time of at least one frame, if not two or three. That's about ~40ms. That's kind of a problem for Anti Mage, since when the server says a creep hits him, his health needs to go down right away!”
Other users then joined the conversation and asked how was it possible that the old Warcraft III engine could run the game smoothly, then how can a newer engine have such bugs. “A simple example is that both WC3 and Dota 2 have a replay system, but Dota 2's is much more advanced. As you play the game, your friends list updates. So does the store, and the rest of the UI. (…) Features stack up so quickly. It's easy to kill your performance by doing too much. (…) There's just a lot of stuff in a modern game engine, and most of the stuff isn't very visible, so it's easy to forget it's there.”
Being a game developer himself, palish also reflected on task allocations within a company, when asked about the additional features that are still missing from the Source 2 engine: “the real danger is that you're committing your programmers to do a certain thing, and there are always 1,000 things to do. If you choose the wrong thing for them to work on, suddenly you'll find your team is pretty much frozen: unable to get anything done, because everyone is already trying to get a bunch of big things done. (…) Strategy matters. They skipped a Halloween event because they had to: it's too hard to do so many things.”
Due to the lack of particular areas to start with, the whole problem becomes even more complex, making it a "goddamn hard problem." However, he also called for patience, as he is certain that Valve is doing its best to solve the issues. “This is fixable, and Valve is certainly working on it. But please give them time, because it's going to take months. I know what they must be up against, and it's no fun at all: Optimize one small area at a time, day after day, for months. There's no way GPU can help, there.”
Sarkane 11 January 2016, 16:42 16932 0