[Devs Discussion]: Modern Game Engine Technics Where Not Implemented

As a game engine developer myself and having years of experience playing this game I can say that blizzard did not even touched the core code of the wc3 engine implementation.

  1. They probably didn’t even change the shaders.

  2. They don’t use modern batch rendering.

  3. Certainly they don’t make use of unique extensions that specific GPU’s can offer.

  4. I don’t even believe they implemented a level of detail. And the point is that usually when you play, the camera is quite far from the models so there is no point to render a complex model since you can not spot the difference.

The game was already designed to be able to override animations and models so they just created new vertex data for the new models and replaced the old ones.

It’s insane to have a gtx 1080 TI and have 10 FPS when there are 200+ units rendering at once. Especially if you think that the physics engine for wc3 does not need to be demanded at all, which gives the game a lot of room for performance.

Final conclusion: If the game was remastered correctly then FPS would not be a problem. We could even play games with a huge amount of units and visual effects (particles) without having to much FPS drop.

For a remaster of a game that was made in 2002 and not changing these core functionalities it’s indeed a same.

44 Likes

Ya, I’m really starting to believe that they no longer employ good gaming engineers. Feels like a group of low skill and experience engineers were working on legacy a code they don’t understand and executing on tasks they barely understood.

I’ve lost ALL respect for Blizzard now. I can’t trust them to do anything properly, with high quality, and have an aspect of fun and challenge. Sad sad… as they WERE my go to example on how a great innovative company works.

Now? They are my go to example of how a large corporation cannot innovate even when they attempt to purchase the ability. As always, they purchase and then destroy everything that was good, inject nothing but bad ideas, and bleed customers for as much money as possible.

Boycott time.

10 Likes

I’m not qualified to talk about the game’s code other than personal experience. When you play custom maps like Azeroth Wars or LTF/LTA , you have hundreds of units and spell effects going on at once, just as you say.

Before you’d have fps drops in classic , average fps was anywhere been 1fps and 60fps depending on the user. Now people are reporting FPS increases in large scale macro maps. I mean they have plenty of other problems right now, but FPS in classic has actually been an improvement.

But yeah this isn’t the case on reforged graphics, you need a NASA computer to run those maps properly.

1 Like

all the good programmers are gone and all the good substances that powered their high tech brains are illegal

1 Like

Dam true my dude, I even said to that i just wanted to try the new art assets in a custom game.

Just make a whole bunch of different units and load up the game, and throw some at an ai here and there for fun.

Still got that classic “stagger” periodically like every 3-4 seconds lmao… sad.

So true. For the last 3 weeks I’ve been thinking:

“Have blizzard not optimised the beta for my graphics card or the problem with my machine?”

After trying on different computers with high and lower graphics cards the conclusion was uniquely, that blizzard have yet to optimise the game… if they intend to release it as is… then it’s incredibly embarrassing.

1 Like

I have many problems with what you say, and honestly find it hard to belive you are an engine developer.

There were no shaders back in DX8 era (fixed pipeline). They obviously had to implement shaders for DX11.
If you look at the game files, you will see that there are textures ending with “_orm” suffix. Which stands for “Occlusion, Roughness, Metalicness”. Those are parameters for physically based shading, which obviously was not part of the original game.

Do you have a frame capture to prove your point?

I’m all hear about which unique extension they shall have used.

How do you know vertex and/or rasterization is the bottleneck?

200+ units each with having to apply their own animation (skinning is expensive my friend) is a lot to take on, even for a modern game. Crowd systems works by having many units render the same animation at the same time to cut skinning costs.

I am not saying this is perfect, and there is definitely room for improvement. But please, if you’re an amateur and have no clue what’s actually going on, don’t pretend you do.

I got 5 years of experience in graphics engineering, having my name credited to games released on PS4, xbox one and Nintendo Switch. I’ll soon be adding next gen to my resume.
I can tell you this for sure: things are simple until you actually have to work on them. When you oversimplify things like you just did, you only reveal a serious lack of experience and a quick temper.

5 Likes

LOL you are being absolutely delusional and you’re just lying in my opinion. The fact that you phrased it like that is obvious “people are reporting…” yeah because you dont know, you never experienced it yourself because it isnt true. LTF is a lot slower and more laggy

Wouldn’t making some of those changes ruin classic even more? Remember that they need to maintain two versions.

Can you make a technical analysis for Reforged in a separate thread? I am just a 3D modeler so I have an amateur opinion about how the engine works but my suspicion is that a lot of the things we saw in 2018 were cut due to performance issues or because the old engine can’t handle them efficiently such as more complex lighting and shadows. To me it seems like having complex lighting in a game with a lot of complex models (huge 4v4 battles) would be a huge performance drop that would not necessarily justify said performance drop.

The lighting is pretty flat and the facial animations are lifeless. Are the limitations of the engine the cause or is it incompetence or both? Apologies if my questions are noobish but to me it seems like putting all these modern features on a very old engine is not that feasible, especially when you have to maintain two versions of the game.

Actually I decided to attach the Nvidia Nsight debugging program and run the game, (offline mode). Did not want to trigger warden and honestly mp games would not even matter in this, There seems to be a lot of stalls between vertex generation and drawing , what it looks like is the engine the graphics pipeline in 2 stages , classic and reforged (for simplicity.) , since you can change it from classic to re forged at anytime in the options menu but not in play mode. It seems to maintain pipes into the same pipeline, which seem to be causing a lot of vertex generation and render stalls as it has to generate and render 2 pipelines with reforged enabled, however if you run in classic it drops the secondary step. I captured 60 seconds of frame time with action going on and replayed the frame buffer back in forth in the app, in that 60 seconds there was about 400 stalls in the pipeline. That is all I could capture before it crashed out on me.

DEVS Discussion

Good Sunday joke, I give you that.

PS: So where is the second DEV(S) ?

Secondly I wanted to address the 200 units on screen, Alczar is right, 200 units is very cpu intensive and can be gpu expensive if each asset is unique, as he said can be cut in cost if you are applying the same material data and textures as the gpu can use the same cached data for x amount of actors on screen without having to re pull new data into memory, however 200+ units is very cpu heavy without a lot of multi threading , even so that is a lot of on the fly calculations a cpu has to do in real time , pathing, hit detection, concurent actions and so forth also it has to macro que up different animations sound input so on so forth. There actually is a lot of math to get a lot of on screen actors from point a to point b, I did not even include things like actor Fov so on so forth.

It is also the reason why Direct X and Open GL came up with caching it allowed the gpu to pull the same subsequent data from cache which is faster then pulling the same data over and over again from the game engine.

LoD would have gone a long way to improving performance. I was thinking about making a third-person camera custom map, but realized it would be impossible without LoD or Chunk support. Multithreading support would have also improved performance greatly. The graphics engine has certainly changed a lot though. They couldn’t render or properly light PBR textures in the old engine, much less import them. I’m no engine developer though, only an artist.

As for the art itself, there were some questionable style choices made. It’s like the artists weren’t told that the art was for an RTS where overhead camera and team color readability were the most important factors for unit designs. In the 2018 Blizzcon reveal the team bragged about how they were replacing the original units that had inaccurate proportions to make perfectly symmetrical model, but this is not what you want to do for a game with an overhead camera. The disproportionately short legs and other components actually help to improve how things look from overhead. Even very obvious and simple things weren’t done with an overhead camera in mind.

Compare, for instance, how sentry wards look in Reforged compared to Dota 2.

Xhttps://wow.zamimg.com/uploads/screenshots/normal/887573.jpg

Xhttps://gamepedia.cursecdn.com/dota2_gamepedia/4/4a/Wards_banner.jpg

The wards in Dota 2 are designs with the eyeball looking up in order to always benefit the overhead camera. Wards in Reforged have the eyeball looking horizontally, so there will never be very good visual clarity, and the eyeball might not even be visible depending on the direction the ward is placed.

Another major problem with the visual clarity of units in this game are the colors used. In an RTS game there should be absolutely no primary color usage on units except for the team color. The largest and most visible parts of the unit should show off their team color. A troll’s hair should be yellow or red or blue depending on his team color. You absolutely don’t want to give all trolls red hair with only their shoulder pads showing team color. This mistake was done repeatedly on units, and it gives no benefit to the unit’s look, and only takes away from visual clarity and readability.

Here are some quick and obvious examples. The units below are all supposed to be grey team color.

Xhttps://wow.zamimg.com/uploads/screenshots/normal/887610.jpg

Xhttps://wow.zamimg.com/uploads/screenshots/normal/887611.jpg

Xhttps://wow.zamimg.com/uploads/screenshots/normal/887588.jpg

Xhttps://wow.zamimg.com/uploads/screenshots/normal/887600.jpg

Xhttps://wow.zamimg.com/uploads/screenshots/normal/887596.jpg

Blockquote

  1. They probably didn’t even change the shaders.
  2. They don’t use modern batch rendering.
  3. Certainly they don’t make use of unique extensions that specific GPU’s can offer.
  4. I don’t even believe they implemented a level of detail. And the

Blockquote

Answer question 1. A shader is simply a program that runs in the graphics pipeline and tells the computer how to render each pixel. These programs are called shaders because they’re often used to control lighting and shading effects. So yes they did use shaders.

  1. Question do you even know how rendering works? Batch Rendering is just: (what assets need rendered) [PASS_ID][MATERIAL_ID][MESH_ID][INSTANCE_ID].

  2. So long as the gpu was Shader Model 5.0Radeon HD 5000 and GeForce 400, which is circa 2010 + so any GPU latterly from the last 10 years would be able to make use of any feature that was supported by Dx 11 feature set 0 . (AKA Shader Model 5.0).

  3. They would not need to add LOD adjustment to the game, as when you import your content into the pipeline direct x will automatically create the LOD.

I suspect that this 2018 demo ran on starcraft 2 engine. I have not evidence for this but there were rumors about it. I could never get it, why they have not used sc 2 engine for reforged. Every single argument like compability between old warcraft 3 and reforged is a joke. At least sc 2 engine supports more than 2 cpu cores. Lighting and effects are at another level. It,s not a great engine but anyway better than this hybrid or updatet w3 engine. Sc 2 engine has even dynamic shadows on local light sources… I have not seen even a very simple local point light in reforged.

1 Like

Compare those images and lets see if there are shaders.
The first img is minecraft comparison, with n without shaders, the top pic looks like the beta-current , the bottom like the demo.
_https://cms-assets.tutsplus.com/uploads/users/22/posts/23313/image/minecraft-before-and-after-shaders.jpg
_https://progameguides.com/wp-content/uploads/2019/09/best-minecraft-shaders-bsl-shaders-816x459.jpg
Next imgs are the demo n betas.
_https://i.redd.it/91tzvvvvjg141.png
_https://preview.redd.it/hqvqe9dqk7141.png?auto=webp&s=1140129543a46b1eb135a6ea3099ad18d4f00f0c
_https://bnetcmsus-a.akamaihd.net/cms/content_folder_media/5165CR7ERXVI1580150166999.jpg
Why everything looks extra bright?

1 Like

This game is not multi-core. If you even tried to play Classic on your current rig and tried to render 200+ units on screen you would have the same fps issue, even if have the top of the line CPU, this engine is still only using 1 of those cores.

In fact it might be worse now because with the reskin their might be more demand on the single core the engine is using.

Your video card counts for nothing in this situation. If you actually had any understand of game development and hardware you would understand this.

Again, arguing and using your video card as an example shows me how much you don’t understand.

They would literally have rewrite the engine to support multi-core systems. I highly doubt they will do that or even consider it. It’s a lot of work. It’s an unfortunate issue that all older games face when trying to update an old engine for modern systems.

CPU’s ended up going sideways in evolution rather than straight up.

If you want to see an increase in performance in WC3 you need really high ‘single core’ performance.

1 Like

Whoever put a title like this in his thread “DEVS DISCUSSION” ( and he’s the only “dev” in this thread ) , means indeed, that he has no idea what he’s talking about!

The game still uses shaders for the game as shaders just denote different parts of the graphics pipeline, from geometry shading to pixel shaders. As far as the engine being needing to be multi core or single core, even games not specifically written for multi core multi threading windows will allocate programs to unused threads and or cores by itself to not overly saturate one core, as far as the game actually goes, warcraft 3 actually uses a process called deterministic lockstep, which creates complications of its own without completely re writing the engine from scratch.