1. Join Texturing Contest #30 now in a legendary battle of mythological creatures!
    Dismiss Notice
  2. The Aftermath has been revealed for the 19th Terraining Contest! Be sure to check out the Results and see what came out of it.
    Dismiss Notice
  3. Melee Mapping Contest #3 - Results are out! Congratulate the winners and check plenty of new 4v4 melee maps designed for this competition!
    Dismiss Notice
  4. The winners of our cinematic soundtrack competition have been decided! Step by the Music Contest #11 - Results to check the entries and congratulate the winners!
    Dismiss Notice
  5. Check out the Staff job openings thread.
    Dismiss Notice

Warcraft 3 Patch 1.31

Discussion in 'Latest Updates and News' started by Ralle, Mar 25, 2019.

  1. Ralle

    Ralle

    Owner

    Joined:
    Oct 6, 2004
    Messages:
    11,139
    Resources:
    22
    Tools:
    3
    Maps:
    5
    Tutorials:
    14
    Resources:
    22
    A very rough Ralle news post about some breaking Warcraft news!

    I was sent a picture from a Chinese presentation about Warcraft 3 patch 1.31.

    unknown.png

    More will most likely surface about what exactly is coming and what is not, but it's definitely exciting.

    Lua support sounds very interesting. I wonder how that is going to work.
     
  2. maxxxus

    maxxxus

    Joined:
    Aug 25, 2015
    Messages:
    136
    Resources:
    0
    Resources:
    0
    omg i can't wait for Wc3 reforged, and i wish this patch could maintain my waiting for a long time.
     
  3. Bribe

    Bribe

    Joined:
    Sep 26, 2009
    Messages:
    7,759
    Resources:
    25
    Maps:
    3
    Spells:
    10
    Tutorials:
    3
    JASS:
    9
    Resources:
    25
    I wonder what kind of impact points 1, 2 and 4 will have on performance. Multicore support? I wonder if it means that modding can allow us to also take advantage of parallel actions.
     
  4. The_Silent

    The_Silent

    Joined:
    Feb 4, 2008
    Messages:
    2,738
    Resources:
    155
    Models:
    45
    Icons:
    89
    Packs:
    8
    Skins:
    12
    Maps:
    1
    Resources:
    155
    *Please please please give us multi-threaded jass*

    Very exiting
     
  5. Sir Moriarty

    Sir Moriarty

    Joined:
    Jun 13, 2016
    Messages:
    288
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    I hope this implies that Lua is meant to be an alternative to JASS. And I hope this implies LuaJIT.

    I don't think there'd be much benefit in having multi-thread support in the scripting language itself, especially if they go with LuaJIT, as it has excellent perfromance as-is. Most maps simply aren't that demanding algorithmically that it should warrant moving to multithreading, not to mention the inherent pool of opportunities to shoot yourself in the foot that comes with multithreading.

    Fingers crossed.
     
  6. Sieben

    Sieben

    Joined:
    Nov 23, 2013
    Messages:
    613
    Resources:
    0
    Resources:
    0
    I have absolutely no clue of what all that under-the-hood stuff means, but I guess it's good news :p

    Also, on Reddit (here and here), Kam said that 1.31 WE would be the same as Reforged WE, and that there would be significant changes for UD in 1.31, so that patch is going to be pretty big.
     
  7. Sir Moriarty

    Sir Moriarty

    Joined:
    Jun 13, 2016
    Messages:
    288
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    Move to DX11 likely implies an improved (rewritten?) renderer that can better take advantage of modern hardware. No more 20 fps when displaying a few hundred low-poly models, or zooming out in WE.

    Lua support potentially has far-reaching implications in the modding scene itself. I personally am absolutely sick of JASS and it is the number one reason I've given up on my projects repeatedly.

    64-bit support means that WC3 can finally properly take advantage of modern memory sizes.

    No clue about the last one.
     
  8. The_Silent

    The_Silent

    Joined:
    Feb 4, 2008
    Messages:
    2,738
    Resources:
    155
    Models:
    45
    Icons:
    89
    Packs:
    8
    Skins:
    12
    Maps:
    1
    Resources:
    155
    Well, maps aren't algorithmically demanding because it is not feasible right now. So that trend isn't telling of much. :p

    Also, I've never believed in the idea that 'bad' programmers should be an argument against more programming options. You can already utterly break wc3 if you don't know what you're doing as is.

    To me, multi-treadding is such a core feature of programming that i use in everyday programming, it feels limiting not to have access to it. I know this reflects the fact that i work more with data, than game programming, but hey, i want to do 'data-heavy' stuff in my maps.

    I want gradient-tree-boosting AI and procedural generation in mah maps man.
     
  9. Trill

    Trill

    Joined:
    Feb 24, 2018
    Messages:
    151
    Resources:
    1
    Icons:
    1
    Resources:
    1
    Metal means basic reflections? That's pretty awesome. I wonder if that in combination with DX11 means we'll get finally water that doesn't look like, well, Warcraft III water.

    THANK GOD!
    That was my main fear about Reforged, that they'd restrict access to all the good stuff in normal Warcraft 3 editor.
     
  10. Sir Moriarty

    Sir Moriarty

    Joined:
    Jun 13, 2016
    Messages:
    288
    Resources:
    2
    Spells:
    1
    Tutorials:
    1
    Resources:
    2
    In my personal experience with modding, even the most "demanding" mods don't really need to tap into multi-threading. I can't really think of many scenarios where using multiple threads would be a requirement, unless you're doing something really computationally heavy (in which case, perhaps you should be making your own game instead anyway...).

    If you simply want concurrent running tasks, then a single-threaded asynchronous model is preferable. Lua does have one in the form of coroutines already.

    I also wasn't so much referring to the potential of the users mis-using the API, but rather the inherent challenges associated with providing a thread-safe engine API. Even Lua doesn't really support multithreading, though there are some extensions and libraries that add such support, but even then, they come with some big caveats AFAIK. Which, in practice, translates to some ergonomic concessions when trying to use them. You most definitely would have to jump through weird hoops to send data between threads (channels?), and it's very likely that only one thread would have access to the engine's API. In other words, it'd be only useful for auxiliary computations that are entirely independent from the game state, depending only on the inputs you give to it.

    Don't get me wrong, I'm all for having the option, I'm just not sure how they're going to pull it off.
     
  11. Darklycan51

    Darklycan51

    Joined:
    Jan 12, 2011
    Messages:
    1,307
    Resources:
    3
    Maps:
    3
    Resources:
    3
    No... Metal.is Apples API for games
     
  12. The_Silent

    The_Silent

    Joined:
    Feb 4, 2008
    Messages:
    2,738
    Resources:
    155
    Models:
    45
    Icons:
    89
    Packs:
    8
    Skins:
    12
    Maps:
    1
    Resources:
    155
    It is probably way out of scope of them, sure, but it would still be nice. Could do some real funky stuff if that kind of computing power was available. Like actual 'learning' AI, or huge self-generated enviroments, complex spells with lots of moving parts, etc.

    For game dev vs wc3. I think wc3 is a really underrated prototyping environment for game development. I could make a game, but that takes ages, just to get to a prototyping stage, even with modern game-making programs. So i usually go wc3 before even considering game dev. Having more options in-engine would be great.
     
  13. Trill

    Trill

    Joined:
    Feb 24, 2018
    Messages:
    151
    Resources:
    1
    Icons:
    1
    Resources:
    1
    Ah, that's a lot less cool.
    But I guess DX11 means reflection support anyway.
     
  14. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    528
    Resources:
    1
    Spells:
    1
    Resources:
    1
    >lua support

    Hold me
     
  15. EredarArbeiterYU

    EredarArbeiterYU

    Joined:
    Jul 15, 2015
    Messages:
    70
    Resources:
    0
    Resources:
    0
    Cool :)
    Meanwhile I'm patiently playing Skyrim until this comes out. :p
     
  16. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,172
    Resources:
    3
    Models:
    1
    Icons:
    1
    JASS:
    1
    Resources:
    3
    This has been quite a surprise. Extending the capabilities of what wc3 can officially do is quite desirable.

    Hopefully, the same patch will fix some crucial bugs reported by others as well.
     
  17. DoctorGester

    DoctorGester

    Joined:
    Dec 6, 2009
    Messages:
    76
    Resources:
    3
    Maps:
    2
    JASS:
    1
    Resources:
    3

    Agreed with every point. For an example on how multithreading can be done in lua check Love2D. They spin a separate Lua instance per thread and communicate them through channels. There are no data races because there is no shared memory. That however imposes certain performance constraints and limits the feasibility of multithreading in general. It's also pretty safe to say that is very rarely needed even in more or less real games made with love2d.
     
  18. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    25,092
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    1 will improve performance. It means they will be using shaders and a modern graphic pipelines with less API overhead than the D3D7 level fixed function pipeline Warcraft III currently uses.

    2 will have mixed results. Upgrading to x86-64 will improve performance with some operations due to improvements to the instruction set such as the addition of RISC style general purpose registers. However it will decrease performance with regard to cache efficiency and memory bandwidth due to the use of 8 byte pointers rather than the current 4 byte pointers and possible memory alignment and density implications of that.

    4 will likely only have much overhead if those features are used. Similar to LUA and JASS virtual machines which will only really generate overhead if a developer uses them.
    Nowhere does that mention multicore support... Although I can guess some multi threading might possibly be used for graphics the game will almost certainly remain single threaded.

    Maybe you misread "Metal support". Metal is Apple's graphics API, support for it is needed so the Mac build will keep running once Apple drops native support for OpenGL completely.
    You do not want multithreaded JASS... It would add entirely new ways to create OoS errors, bugs, and stuff like that except this time with the added problems of multithreaded errors such as not being reliable recreatable.
    Yes both JASS and LUA virtual machines will work in parallel. This gives people the flexibility to use both, or slowly port from JASS to LUA as needed. The only limitation is that there is limited interoperation between JASS and LUA, at least back when they announced it.
    It does not work very well for games since race conditions become a big problem. Certainly >99.99% of triggers people write cannot benefit from multi threading.
    No it does not mean that...

    It means this...

    Windows 7, 8 and 10 will use Direct3D 11, Mac OS will use Metal.
    Metal is Apples API for graphics acceleration. It is their only API for graphic acceleration of anything. OpenGL support will soon be gone and they refuse to add native Vulkan support.
    Raytracing is a Direct3D 12 feature.

    Sure one can use shaders to kind of hackily simulate some sorts of reflections but still...
     
  19. The_Silent

    The_Silent

    Joined:
    Feb 4, 2008
    Messages:
    2,738
    Resources:
    155
    Models:
    45
    Icons:
    89
    Packs:
    8
    Skins:
    12
    Maps:
    1
    Resources:
    155
    Well, I would benefit from multithreading.
    I'm not too worried about others not being able to use it as long as it is implemented as an additional feature, and not becomes required knowledge.
     
  20. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,523
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
    For me this raises more questions than it answers x)