If HOTS had an different engine...(Question)

Hello,

I have a basic question for y’all. I have seen a number of people complain about HoTS’s engine and say something to the effect of
“If this game wasn’t based off the SC2 engine then it would be better.”

I haven’t seen detailed explanations as to why this would be so. The game seems fine to me. (I don’t want to talk about balance, MM, etc)

So the question is, why would a different engine be better? (What are we missing out on?)

Thanks!

I do not know the details, but most arguments seem to lead to the very poor reconnect system of the game.

2 Likes

lotta people dont actually know what agame engine does, or how they’re taylored for individual projects, so its a scapegoat that players blame when something does’t suit what they want.

There are a hefty number of reasons why a lot of projects will use an existing engine instead of making a new one (common to see adverts like “made with unreal engine”) and a key part of that is how the components can be changed and updated over time.

But yea, rule of thumb, imo, is if people are blaming the ‘engine’ then its complaints for the sake of complaining

2 Likes

The #1 thing that we would get is a better network engine. Not something developed in 2005-2008. This would directly lead to better/instant reconnect system as the SC2 Network system is a hybrid client-client/server system. All the clients have to sync with each other and the server has to agree with the outcomes that that clients are telling it.

A true server side game status engine would allow instant reconnection.

The biggest issues are that the SC2 engine is lockstep based (so when reconnecting, all “steps” have to be downloaded, replayed, and recorded in order to be caught up to the game), and the logic of the engine itself is extremely single-threaded.

The single-thread nature of this engine means my Ryzen 5 1600X, overclocked to 4.0 GHz, barely saw any utilization and could even dip below 60 FPS on maxed settings, despite Heroes being a game that’s two years older than the CPU on an engine that’s 6 years older than the CPU.

I had to buy an 8700K (a 6700K or 7700K would work too) to properly utilize my 144 Hz monitor (as in, staying over 144 FPS), which is rather ridiculous considering this is an e-sports game and I’m also running with a GTX 1070.

Meanwhile, better-looking games like Dota 2 (which utilizes Vulkan as its graphics engine) can run 200+ FPS without an issue, even on the aforementioned Ryzen processor with slower single-core performance than my i7-8700K. The engine is coded well enough to utilize powerful graphics cards and achieve the appropriately high framerates you’d expect from such a good CPU and GPU.

The issue here is GPU utilization. Because the HotS engine only works off of a single-core/thread, it isn’t using enough horsepower to properly saturate modern graphics cards without a CPU that has exorbitantly high single-core throughput (like an i7-6700K, 7700K, or 8700K).

Starcraft 2 also runs into this issue. Back in 2010, I built a computer using an i7-980X, Intel’s first six-core processor and overclocked it to 4.0 GHz. On top of that, I tossed in two ATi Radeon HD 5870s and Crossfired them. It was one of the best systems you could build in that day, using the fastest consumer processor available with the best GPU’s available, even for single-thread applications. And Starcraft 2 would dip well-below 60 FPS even on that machine, and still does with its modern optimizations and my GTX 1070 in that rig. The engine itself is the limit. There’s only so much you can do with one core, even with an overclocked Ryzen 5, 7, or overclocked i7-8700K.

2 Likes

The SC2 is a perfectly fine engine, a different engine would change very little about the game, maybe they could fix the issues they are currently stating they have with implementing Rienhardt’s shield with a different engine (They’ve said in an interview his main obstacle is how the shield is functioning) but that’s all technical mumbo jumbo that really nobody but the developers have to worry about, as far as the average player is concerned overall nothing much would change, people blindly stating reasons are probably talking out their bung save for how the reconnect system works.

Compare it to the League of Legends or DOTA 2 reconnect systems which are lightning fast taking about 30-45 seconds to go from desktop to back in game, Heroes reconnect can take anywhere from 2-5 minutes, half the time it’s barely worth even attempting to reconnect unless it’s done in the first 5 minutes of the game because of how short games normally last.

Reconnects happen, there’s no way to guarantee you never have a connection issue, it happens. The issue is recovering from it is way more hassle that it really should be.

I love this game, it is by far my go-to MOBA and as of current, pretty much my go-to game in general but in my honest opinion this game will always be 3rd banana and never grow to the level of DOTA 2 or League of Legends which can be interchangeable depending on who you ask without a better reconnect system.

1 Like
  1. The net-code is based on 1999 tech. It syncs all of the clients together so people can have LAN parties without a server even though this feature isn’t included in HotS. This causes strange latency issues and it is also why players see frame rate drops and lag spikes even when it’s someone else’s connection. It;s also why cheating was easy for so many years in SC2. All of the game data was being synced with each client including enemies.

  2. It is very CPU intensive.

  3. The scripting engine is horribly slow. The feature that allows Blizz to prototype and pump out heroes on a regular basis is also why you have to use quick cast. Have you ever turned quick cast off and had a spell not fire? It’s because everything is coded using a scripting language that can’t keep up with player commands. It also adds to the overall latency of the engine as the main engine loop processes each function of a character and each function of the map and the interactions between. It is also another reason why the engine is so CPU intensive.

  4. The reconnect system. This problem comes from how the net-code is handled. Each command is streamed to the other clients and the server. These streamed commands build the game file with each new command creating an effect within the game. As the game file builds, the past commands become become recorded and new commands plop on top. So… when you load a game file (watch a game or reconnect) the game engine must process the game file from the very beginning in order to know exactly what the game looks like at a future point. Each command is processed in the order it came from each client. Blizz added ‘key points’ to the file where it saves the entire game state so it can load from a previous point beyond the first second of the game, but still requires “playing out” the game from that point on. This is why you have at least a minute or so of loading and sound effects while waiting for the game to catch up. The reason you hear the game, but cannot see it is to conserve CPU for faster loading rather than graphics rendering.

  5. It crashes too much.

1 Like