1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Warcraft 3 Engine Upgrade

Discussion in 'Warcraft Discussion' started by chopinski, May 12, 2018.

  1. chopinski

    chopinski

    Joined:
    May 16, 2012
    Messages:
    184
    Resources:
    0
    Resources:
    0
    Recently our beloved warcraft is getting some attention from blizzard, which is awesome, but is there any chance for an engine update, specially an API upgrade. Warcraft still using directx 8 which makes things bad for medium to high end builds like mine, and its even worse for those who like to customize the game with awesome HD models full of polygons ripped from Wow, Starcraft 2, etc, like myself :). I know its hard to do, re-designing the game engine is basically re-designing the game as a whole, but it would be awesome to see warcraft 3 HD and optmized for today avarage computer's.
     
  2. DracoL1ch

    DracoL1ch

    Joined:
    Dec 12, 2010
    Messages:
    1,759
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    not gonna happen in this universe
     
  3. YourArthas

    YourArthas

    Joined:
    Mar 18, 2014
    Messages:
    424
    Resources:
    1
    Models:
    1
    Resources:
    1
    Why not ?
     
  4. Rui

    Rui

    Joined:
    Jan 7, 2005
    Messages:
    8,497
    Resources:
    8
    Maps:
    8
    Resources:
    8
    IMO if there's no Warcraft 4 coming, they might as well do some Remastering, at least on doodads and environment, including lighting. :) People already use HQ doodads with regular unit models anyway.
     
  5. YourArthas

    YourArthas

    Joined:
    Mar 18, 2014
    Messages:
    424
    Resources:
    1
    Models:
    1
    Resources:
    1
    Since our mod came to life atlast it is really needed to have a remastered engine ( x64 support ) so our HD mod can support custom maps and we can put our full quality textures in without reducing to save ram
     
  6. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Since Patch 1.27a which was released on March 14, 2016, Warcraft uses DirectX 9 instead. Also, Blizzard switched from Visual Studio 2005 to Visual Studio 2013.

    There is no need to use that many polygons, for a 3D model to look good. Especially ingame.
     
    Last edited: May 13, 2018
  7. YourArthas

    YourArthas

    Joined:
    Mar 18, 2014
    Messages:
    424
    Resources:
    1
    Models:
    1
    Resources:
    1
    Well they look really bad ingame to be honest compared to our mod or starcraft 2 or any updated or new game, 15 years ago it was awesome but it needs an official x64 support and graphics update from blizzard itself ( atleast it will make us the modders job alot easier )
     
  8. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    You may want to experiment with increasing the polycount of some 3D models by using War3PolygonEnhancer v0.01 (from the Warcraft 3 HQ thread) by @oger-lord, to see what works best ingame for any 3D model.


    To better understand why only a small amount of extra polygons are required for a 3D model to look better, please have a look at the Authentic Model Improvement project for Quake. A backup of the original thread of the project *with screenshots*, courtesy of archive.org, can be found here.

    For a direct download of the latest version atm which is v1.72, please click here.


    Regarding Warcraft 3, very detailed 3D models should imho be used only in cinematics, if and where appropriate.
     
    Last edited: May 13, 2018
  9. chopinski

    chopinski

    Joined:
    May 16, 2012
    Messages:
    184
    Resources:
    0
    Resources:
    0
    I would say that saving ram
    this sounds interesting, i'm going to look it. For what you say it can increase the amount of polygons, but can it also decrease? so i could create a model that is not so taxing for the game.
     
  10. YourArthas

    YourArthas

    Joined:
    Mar 18, 2014
    Messages:
    424
    Resources:
    1
    Models:
    1
    Resources:
    1
  11. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    I do not remember that War3PolygonEnhancer v0.01 can successfully decrease the original polycount of a 3D model.

    [RANT]
    R.I.P. 8-bit paletted textures.
    [/RANT]

    Btw, has anyone tried to convert the 24-bit TGA files from the Map Texture Packs of QRP down to 256 colors, and then run a source port of Quake with said 256-color map textures? Just saying...

    In 2002, Warcraft 3 could (barely) run on a PII 350 PC, because the foundations of its game engine were from the year 1998.


    Because it is imho always a good thing to have a look at what the other gaming communities develop, I am mentioning here two patches for Morrowind:
    - Exe Optimizer - Timeslip's utilities, mods and patches
    - 4GB Patch - NTCore's Homepage

    Now, has any of the Warcraft 3 communities created an equivalent of these patches?


    A long time ago, I had loaded the Warcraft 3 exe and dlls files of v1.20c in Hackman Disassembler v8.0a, for educational purposes. According to this tool, there were MMX instructions in the code, plus an optional code path for using SSE instructions if they were available.

    Now, does someone know if any additional optional code paths have been added, in order to take advantage of more advanced instruction sets, like for example SSE2?
     
    Last edited: May 14, 2018
  12. YourArthas

    YourArthas

    Joined:
    Mar 18, 2014
    Messages:
    424
    Resources:
    1
    Models:
    1
    Resources:
    1
    Weird enough I've tried one hell of 4 gb patches they work on editor but ingame none of them worked
     
  13. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Will the logic behind this Shadow Calculator someday make its way into the game, one way or another?


    Will Warcraft 3 someday make the most out of the features of one's CPU for processing BLP files, the same way libjpeg-turbo already does for JPEG files?
     
    Last edited: May 22, 2018
  14. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
  15. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    25,618
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    This is not true. For about 2 years now Warcraft III links to Direct3D9, part of DirectX9. Additionally Warcraft III never used the core features added to Direct3D8 (part of DirectX8), programable shaders. Instead Warcraft III still uses the Direct3D7 (part of DirectX7) fixed function pipeline for graphics, possibly with some Direct3D8 extensions.

    Switching to more modern APIs such as Direct3D11 or Direct3X12/Vulkan could yield significant render performance improvements. That said rendering Warcraft III is so trivial that the average map developer would have more benefit from a JIT recompiler for JASS than using cutting edge APIs.
    I do not think model geometry and texture size has much of an impact on performance as WC3 is practically never GPU bounded. Sure more bones would effect performance, but I imagine all vertices are stored in some kind of vertex buffer.
    Problem is that x86-64 support can decrease performance in video games. Especially if memory bandwidth is a limiting factor. This is why many StarCraft II maps have performance problems in the x86-64 build that were not present in the plain x86. x86-64 uses more memory bandwidth because the larger pointer sizes decrease memory density and cache efficiency.
    I am unsure how these are implemented. As far as I am aware GPUs do not natively support indexed colour anymore. Vulkan API has no direct support for indexed colour lookup. One can do some programable pixel shader hackery to perform lookup however this is likely slower than using 32bit RGBA.

    I do recall older versions of OpenGL and Direct3D maybe supporting indexed colour lookup. However if they did this functionality is entirely deprecated today and will likely perform sub-optimally on modern hardware due to emulation.
    yes they have been added. They are added by the compiler. Compilers emit multiple code paths for bulk operations thanks to intrinsics and such. Building with a modern compiler can be enough to add AVX code paths. That said some code paths might have been removed as modern processors love complex repeat instructions thanks to micro code and pipeline optimizations removing the need for vector instruction intrinsics for bulk memory operations.

    Without rebuilding for x86-64, building with extended address range will at best allow 4GB of memory to be allocated on x86-64 OSes. The OS might still reserve up to 2 GB of that extra address space.
    Seems a pointless optimization. It might save 2 seconds of load time for a map that must pre-load every single texture in the game.

    Intel made Warcraft III's JPEG library. Although it is no longer actively supported, it likely was top quality and already highly optimized at the time. Sure it might under perform a modern implementation using AVX, but my I7 does not support AVX so it does not help me anyway.

    The single biggest improvement Blizzard could make to Warcraft III graphics is also the most simple. They just need to change the load type of all textures to sRGB and the swap chain buffer to sRGB. This would fix up the trashy looking lighting, vastly improving how the game looks. Since Warcraft III now requires Direct3D9 anyway, I do not see any down side to this. Even performance will remain the same as all modern GPUs are optimized for sRGB usage.
     
  16. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    That's why I have written R.I.P.

    There are no pointless optimizations imho.

    In 2006, an Intel representative "strongly recommends users to check the Intel IPP that will bring more benefits for functionalities and performance."

    Source:
    Legal obligations on usage of Intel JPEG Library Ijl15.dll

    I am guessing this would bump the OpenGL requirements?

    GL_EXT_texture_sRGB requires OpenGL 2.1 support
    GL_ARB_framebuffer_sRGB requires OpenGL 3.0 support

    opengl intel i915GM.png
     
    Last edited: May 26, 2018
  17. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,628
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    I pray for wc3 remastered but...
     
  18. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
  19. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    25,618
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    There is if it takes them several days of development and relicensing to implement for a feature that will give little gains. It might only make a difference if every texture is loaded (which few maps do) and even than it might be in the seconds at best.

    One the other hand changing some data structures used to resolve localized text strings during object data loading might save several minutes of load time.
    Same reason as above. Trivial benefit gains for a lot of work and potentially more errors. If something is not broken there is no reason to fix it, especially when so much else is still broken.
    Seeing how Warcraft III requires fully D3D9 compliant hardware, I doubt that is a problem.

    Gamma (Direct3D 9) (Windows)
     
  20. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,395
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Quoting someone:

    "Dramaticly boosts map load speed when first opening a map. I am quite happy with the few seconds it can save when playing WarCraft III."

    Source: Experimental WC3 loading performance booster

    With Blizzard, nothing breaks. Instead, everything is getting improved Soon(tm).
    :grin:

    Because Patch 1.27a was released on March 14, 2016, that is, more or less 800 days ago, I doubt that a few days of specific development work could make any significant difference, regarding their Roadmap. Plus, it would contribute to paving the way to the future for Blizzard's Classic Games.

    afaik, Ijl15 only supports MMX extensions.

    As I said previously, there are no pointless optimizations imho.

    Can Mac users use Direct3D natively?
    :wink:

    Also, depending on one's hardware and drivers, 3D API compliance may vary greatly:

    DX Intel i915GM.gif OGL Intel i915GM.gif

    (note: uses *software* TnL, which might lead to BSODs on startup because some games really do not expect that kind of thing)
     
    Last edited: May 27, 2018