Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Warcraft 3 patch wish list

Discussion in 'Patch & Reforged Discussion' started by Ezekiel12, Sep 12, 2014.

  1. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,842
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    Allow cursor-related events ( unit selection precisely, and other unit orders that requires targeti) too work while the mouse is inside a multiboard or a leaderboard
     
  2. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    7,014
    Resources:
    12
    Models:
    5
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    JASS:
    4
    Resources:
    12
    I'm not sure if this is possible, but I would really appreciate JPEG support in wc3. It's already there in some places, but especially for images and ubersplats JPEGs would be amazing.
    TGA allows texture resolutions up to 2048x2048 when used for images. But the problem is: TGAs of that size are MASSIVE.
     
  3. fenix140

    fenix140

    Joined:
    Sep 6, 2010
    Messages:
    78
    Resources:
    0
    Resources:
    0
    It could be implemented, new functions to change in jass "angX, angY, height", "scale", "color, sound", etc to "WeatherEffect" and no longer create climates with the same effect with different angles or different sizes with different colors, etc in the main Exel.

    Example:
    Code (vJASS):
    function SetHeightWeatherEffect takes weathereffect whichEffect, real height returns nothing
    function SetAngXWeatherEffect takes weathereffect whichEffect, real angleX returns nothing
    function SetAngYWeatherEffect takes weathereffect whichEffect, real angleY returns nothing
    function etc...

    It would only be a plus, but would help generate more atmosphere on a map using the editor Jass, without having to be creating various effects of climate in a exel :hohum:.
    Greetings... (this could go in the section Other.)
     
  4. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,842
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    This.

    I hate it when you don't have a Photoshop and other image-editing tools and you want to import images.
     
  5. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,131
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    Automatic garbage collection of objects like SC2 has would mean leaks become almost a thing of the past.

    I was not talking about this at all...

    Once all references to an object handle have been removed then the handle is automatically recycled. The object the handle represented is not automatically removed. There may also be a reference from object to its handle (not sure, never tested if leaked objects could have their handle index recycled).

    This applies to both local declared local variables and parameter declared local variables as well as globals. A bug means that local declared local variables can leak a reference count and hence permanently prevent a handle index from being recycled. To be recycled they still require no references, meaning that if you leave a reference to a handle in a global variable that you never set again then that also counts as a handle index leak, although a very small one.

    Once the handle index for a trigger object has no more reference counts inside the trigger system then there is no excuse for it to not be automatically destroyed. This would deprecate functions like RemoveLocation, DestroyGroup and DestroyForce since the game will automatically destroy such objects just like how StarCraft II does it.

    BLP files already support JPEG. Most of the game textures are JPEG blp files. They are stored as BGRA JPEG (non-standard) as opposed to Y′CbCr JPEG (standard JPEG, no alpha support). I am not sure how standard JPEG texture support would work as standard JPEG lacks alpha channel information and suffers from colour space conversion which needs to be done sensibly.

    What needs to be fixed is the 512*512 JPEG BLP file limit. It should be raised to something like 2048*2048 or whatever practical limit there is.

    Generally you need them anyway to perform the gamma correction on images. Most images come in sRGB color space (non-linear RGB) but all game textures are linear RGB.
     
  6. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    7,014
    Resources:
    12
    Models:
    5
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    JASS:
    4
    Resources:
    12
    That would be fine too. I wonder if there is even a technical reason for the 512x512 limit, since obviously the game CAN process 2048x2048 when using TGAs.
    Is it because of mipmaps are being limited to 8 layers?


    Also, I'm not sure if it has been mentioned already. I really hoped that the DX9 support would fix this, but it didn't: the goddamn light engine drawing edges on the ground when using too many omnilights is annoying.
     
  7. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,131
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    BLP format supports up to 65536*65536 images as it always allocates enough space for 16 mipmap levels. They also have no "power of two" limit to dimension size in the format. Both the 512*512 max and requirement of power of two dimensions seem to be something hard-coded into WC3 rather than the format itself.

    It is because it uses the legacy D3D7 fixed shader graphic pipeline. Each 4*4 terrain chunk is rendered separately after setting up a fixed number of lights. The number of lights is very limit due to the API (API not required to support more) and so the game tries to choose only relevant lights however if a light covers too much area then it may be cut off in precedence of other lights. This is where the light boarder issue comes from as one terrain chunk is rendered with the light on yet its neighbouring chunk is not.

    Coincidently this is also why the game performs so badly when viewing big maps horizontally as it will then render more terrain chunks and each chunk corresponds to a dozen odd API calls.
     
  8. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,689
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    WC3 officially supports 8Mb Voodoo3 video cards.

    Voodoo3's max texture size is 256x256. You may use higher resolution textures, but the higher the resolution, the more the texture appears blurred on screen. This is why the workaround for loading screens, is to divide them into squares.

    Voodoo3 cards have other technical limitations.

    More info here.

    Not sure Blizzard would drop support for Voodoo3 video cards.
     
  9. Himperion

    Himperion

    Joined:
    Jun 20, 2013
    Messages:
    665
    Resources:
    22
    Models:
    22
    Resources:
    22
    What about fixing cluster rockets damage bug.

    When editing, or creating a new hability based on this spell, and modifying the damage, Damage became 0 and only cause stun on the targets.
     
  10. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,131
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    I am not sure if Voodoo cards are officially supported by anyone at all anymore. I doubt they even work with WC3 as they migrated it to D3D9 last patch and I doubt Voodoo cards have a D3D9 driver.

    Also you can downsize textures using the game settings, so I doubt that was the reason for the upper bound limit. What is more likely is that they decided that no card in the world will ever have enough memory for dozens of textures larger than 512*512 so they would deny the ability to use such textures. This made sense back when video cards had 16-32 MB of memory. makes no sense at all now when most cards have 1GB+ of memory.
     
  11. Warseeker

    Warseeker

    Joined:
    Feb 18, 2014
    Messages:
    3,105
    Resources:
    2
    Maps:
    2
    Resources:
    2
    I wonder if they could make WorldEditor read new costum Tech-Tree using Map Test.
    And a way to change a unit/Hero proper name in game
    And specialy fix those graphism Ability effects after a Load like Fire Breath and Undead building birth.
     
  12. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,689
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    There is no official support for 3dfx products anymore. But there are 3rd party, unsupported drivers, developed by loyal fans.

    more
    3dfx Interactive was bought by Nvidia about 15 years ago. All intellectual property from 3dfx now belongs to them. Nvidia never had any intention to develop 3dfx products any further under the 3dfx brand, and that sadly includes its drivers. A subset of the 3dfx technologies has been implemented into the Nvidia line of products.

    More info here
    https://en.wikipedia.org/wiki/3dfx_Interactive

    Mainly since 2003, you can download 3rd party drivers (compatible up to Win7 at least) for 3dfx hardware. They are developed by loyal enthusiasts. Of course, these drivers are not endorsed by Nvidia in any way.
    http://www.3dfxzone.it/news/reader.php?objid=16199
    http://www.3dfxzone.it/enboard/

    Voodoo cards also have an OpenGL ICD driver. Using 3rd party unsupported drivers, higher compatibility with OpenGL games can be achieved up to a point, through Mesa 3D / MesaFX.
    http://www.3dfxzone.it/enboard/forum.asp?FORUM_ID=49

    For info, Blizzard does not support Glide (3dfx's proprietary 3D graphics API) in WC3. However, there is official Glide 3 support in Diablo II :eekani:.


    Root causes for the upper bound limit imho :

    - Short version : WC3's engine was designed in 1998, for a different kind of game (remember Heroes of Warcraft ?). And one simply can not program for something which does not exist yet.

    - Long version :
    time traveling back to 1998

    Initial WC3 development began in April 1998. Therefore, critical decisions about the engine were made, at a time when 3dfx cards were king for fast 3D gaming. I believe these core design decisions held until the game's official release. This is why one could still play the campaigns on a PII 350Mhz, in 2002. Though I must admit, in a more or less satisfactory way (using medium/low settings).

    Some engine things have to be monolithic, thus can not be changed easily. Changing them during game development would mean redo everything from scratch, which is not economically viable. Therefore, retail games still have lots of dead code and obsolete/unused stuff/ideas in them. The more time development takes, the more potential dead code/ideas remains. WC3's development took 4 years. In 2000, the game's development shifted directions.

    All game developers suffer from Development Hell, due to the fast evolution of computer hardware, coupled with increased development times. See the chaotic development of Ritual's Sin. Or the evolution of Valve's Half-Life (especially its 3D engine). These horror stories are countless.


    In 1998, 3dfx's lead product was the Voodoo2. Like all other 3dfx products of the time, it has a maximum texture size of 256x256. It might be possible Blizzard envisioned Voodoo2 support for WC3 back then. In fact, I would not be surprised to find some dead Glide code within WC3.

    Back then, video cards in general were still mainly PCI cards, not AGP ones. AGP was first introduced in 1997. Many video card manufacturers first built AGP compatible video cards at *physical slot* level only. Meaning, no AGP texturing on you AGP 3D graphic card (damn you ATI, for the Rage series !). Thus only video RAM could be used reliably. In 1998, video RAM was roughly 4/8 MB. In 2002 it was indeed roughly 16/32 MB, as you pointed out.

    Speaking of manufacturers... in 1998, the video card market was shock full of competitors (3dfx, S3, Matrox, ATI, SiS, Nvidia...). Cirrus Logic, Hercules and Trident were already less prominent back then. All these competing video cards were poor/medium at fast 3D gaming, except 3dfx cards. For info, ATI cards were a pathetic joke, until the Radeon 9 line of products. Nvidia was still emerging, with its RIVA line of products (128/TNT).

    In 1998, OpenGL was at its 1.2 specs, and was not very well supported by mainstream 3D card manufacturers (if at all). 3dfx focused on its Glide proprietary 3D API / MiniGL drivers. DirectX was at version 6.0.
    https://en.wikipedia.org/wiki/Direct3D#Direct3D_6.0
    https://en.wikipedia.org/wiki/OpenGL#OpenGL_1.2



    Since Blizzard decided WC3 had to remain compatible with Voodoo3, I believe it was decided in 1999-2001 to keep the lowest common denominator regarding texture size, even when the game's development itself changed directions, and even when Nvidia started to truly take over the 3D video card market with its TNT2/GeForce. Blizzard might have missed an opportunity here. But again : development time and costs.

    Also, please remember the game was initially slated for a 2000 release, and it was first envisioned as a different kind of game. For info, Blizzard reused the title "Heroes of Warcraft" in Hearthstone, as a fun tribute to early WC3 development, and the 1998 years. Now Blizzard you old nostalgia-driven guys :D


    Voodoo hardware blurs textures larger than 256*256. It is still considered tolerable for 512*512. This is why a game like Unreal Tournament 99 has some 512*512 textures, but not beyond that resolution.

    - A Voodoo3 does not do S3TC. Only S3 Savage video cards had it back then, and they are not officially listed as supported in WC3. 3dfx had FXT1, which is its own proprietary texture compression method. But at that time, I remember paletted textures were prefered to save precious video RAM
    - A Voodoo3 does not do AGP texturing
    - A Voodoo3 does not do 32 bit video modes
    - A Voodoo3 renders internally in so-called "22 bit"
    - Lowest common denominator for Voodoo3 is 8 MB video memory on PCI

    http://www.hardware.fr/articles/29-4/autres-limitations.html (in French)


    Pity is even in 1997, video cards apart from 3dfx products, had much higher maximum texture size support than Voodoo cards. For example, even a lousy 4 MB PCI S3 Virge DX from 1997/1998 had 1024x1024 maximum texture size support. But such a card (as well as most, if not all, the others) was more or less unsuitable for fast, high-res 3D gaming.

    And by high-res 3D gaming, I mean 800x600 in glorious 16-bit color. yay ! Again, please think end of the century.
    http://www.xbitlabs.com/articles/graphics/display/voodoo3-3000.html


    The concept of limits varies over time. 640KB of PC memory ought to be enough for anybody, remember ? Also, do you feel your brand new PC is limited in any way ?

    Again, the problem is Warcraft 3 is a 18 year-old game. It is a venerable relic from the *20th* century. Sadly, it is also a dinosaur in today's programing world.

    Now I am curious to see how Blizzard can make a dinosaur resurrect, and adapt to modern times. Hope it does not imply using some equivalent of frog DNA somewhere :xxd:


    But again, all of this is my own personal, uneducated point of view. Only Blizzard can tell the full (and true) story.
     
  13. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,131
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    I thought that might have been removed with the last patch where they fixed up D3D/DD compatibility on modern OS.

    And this is a problem because? The game visual settings allows one to select up to which mipmap level is loaded so for supporting such cards all that was needed was to disable the highest quality texture settings.

    WC3 also uses 512*512 textures. Most famous of which is the Griffon skin used by the storm hammer missile.

    The limit might come from how textures are loaded. If they only allocate a single buffer large enough for 512*512 pixels which they reuse for all texture loading then the limit will be that.
     
  14. fenix140

    fenix140

    Joined:
    Sep 6, 2010
    Messages:
    78
    Resources:
    0
    Resources:
    0
    After seeing the work of ENAleksey on the manipulation of shadows, lighting, etc. for each model. Now leandrotp is advancing in obtaining basic data of each unit, object, skill, etc which have during a game, currently the publisher does not provide default these values, such as:

    Jass function
    Code (vJASS):

    //attack types are hero magic pierce etc
    function GetUnitAttackType1 takes unit u returns integer
    function GetUnitAttackType2 takes unit u returns integer
    function SetUnitArmor takes unit u, real r returns nothing
    function GetUnitArmor takes unit u returns real
    function GetUnitWeaponType1 takes unit u returns integer
    function GetUnitWeaponType2 takes unit u returns integer
    function GetUnitAttackRange1 takes unit u returns real
    function GetUnitAttackRange2 takes unit u returns real
    function GetUnitDamageDicesCount1 takes unit u returns integer
    function GetUnitDamageDicesCount2 takes unit u returns integer
    function GetUnitGreenBonusDamage takes unit u returns integer
    function GetAbilityCD takes integer abil, integer level returns real
    function GetAbilityManaCost takes integer abil, integer level returns integer
    function GetAbilityPositionX takes integer pability returns integer
    function GetAbilityPositionY takes integer pability returns integer
    function GetUnitScale takes unit u returns real
    function GetRegenerationLifeBase takes unit u returns real
    function GetRegenerationManaBase takes unit u returns real
    :


    Well, here are some lists that can be marked as possibly achievable in Warcraft 3.

    by DracoL1ch Undecided/Unfinished/Other
    Undecided:
    JASS:
    Add native GetObjectData(integer objectID, string dataname) (maybe vaious GetObjectDataInt()/GetObjectDataStr()/... for diferent data values?)
    Basically this will allow to get object's properly like movespeed: GetObjectData(GetUnitTypeId(u),"spd"). dataname - exact match for values from SLK tables. "spd" - 35th column of Unitbalance.slk
    by Skyflash:, Mike7742, fenix140 Undecided/Unfinished/Other
    Undecided:
    fenix140:
    - Get data of the editor objects of a unit through triggers. (Optional, Ability, Doodad, Buff, etc)

    Skyflash:
    Add GetHeroMainAttribute to jass

    Mike7742:
    - Hp/Mp regen values as actual values somewhere on the UI, preferably at the bottom of a hero/unit's stat bar.
    - Attack speed values displayed instead of the usual "Very Fast" listed hopefully as number of attacks per second or something.

    Greetings...
     
  15. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,842
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    I agree.

    Blizzard should provide these natives
     
  16. pyf

    pyf

    Joined:
    Mar 21, 2016
    Messages:
    2,689
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    Glide got broken in Diablo II with patch 1.14a. Customers rightfully complained. It was restored with 1.14b.

    Sometimes, using Glide emulation allows for an overall better gaming experience. Depends of the game, and the issues met with D3D/OGL support (if said game supports different 3D API, of course). It is always worth experimenting imho.

    The bigger the surface to texture, the more of a visual problem it is. The texture does not look sharp at all, missing detail it should have.

    I experienced that first-hand on real hardware 10 years ago.

    I was then checking a 3rd party hi-res pack of wall textures, for Hexen source ports. I used either jHexen or the Hexen part of the Doomsday Engine, I can not remember.
    - on voodoo2 hardware, textures looked blurry and so-so (lacking detail)
    - on Nvidia RIVA TNT2 Vanta hardware, textures looked sharp with great detail
    (and what an elegant video card it was technically, compared to 3dfx hardware !).

    hehe I know that already. :thumbs_up:

    Hope to see more of your programing someday, btw

    I trust you on that one, I never delved into it. And I do not own official 3dfx documentation about "best practices", aimed at 3D game programers who wanted to code for their hardware.

    I believe this 256*256 texture size limit existed since the beginnings of Voodoo hardware. Back then it was great stuff. But 3dfx kept the same hardware architecture for too many years, and that was their downfall imho.

    During the success of the Voodoo2, they should have gone back to the drawing board, and have designed an entirely different card architecture. Instead, they tried to slap something new on top of something old, in order to save R&D costs. Bad move. This is why newcomer Nvidia was so superior : no old ideas from the middle of the 90's in their hardware.
     
  17. Paillan

    Paillan

    Map Reviewer

    Joined:
    Jan 22, 2011
    Messages:
    3,056
    Resources:
    2
    Models:
    2
    Resources:
    2
    Well, more things:
    1) Allow to customize the height of the projectile from nerubian's passive the ones that go and return)
    2) add a skillshot system (a missile that deals damage when it hits something, not everything in a line)
    3) fix the barrage bug (you can't shoot less than 3)
    4) Make barrage be affected by enemy's evasion/unit's chance of failing the attack (because of curse, for example)
    5) Fix the vertex coloring windwalk bug
     
  18. DracoL1ch

    DracoL1ch

    Joined:
    Dec 12, 2010
    Messages:
    2,038
    Resources:
    2
    Tutorials:
    2
    Resources:
    2
    you can make barrage affects 2 targets only if you'll set maximum damage dealt = 2
     
  19. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    26,131
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    The 512*512 BLP limit is a hard-coded limit with the loader. Specifying images larger still load but they load something different, in my case pure opaque black texture. BLP files with indexed content do not need to be powers of two, even for textures.

    Adding support for BLP2 files might be useful for modders.
     
  20. EdwardElric

    EdwardElric

    Joined:
    Jun 19, 2010
    Messages:
    49
    Resources:
    0
    Resources:
    0