• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Warcraft 3 patch wish list

Status
Not open for further replies.
Level 6
Joined
Jul 30, 2013
Messages
282
True Hashtables would be nice..
eg the following could in rare cases be true and cause heisenbugs:

StringHash(a) == StringHash(b) && StringHash(a) != StringHash(b)

to fix it it would be nice to have native hashtables that took actual native types as keys and ensured correct operation on hash collisions.

also the silly limit on the number of hashtables .. why does it exist??, just get rid of that nonsense.
and the 2 key api for hashtables.. i know it mimics gamecache.. but still nuke it ( deprecate) and get sth actually reasonable.


EDIT: i meant this: StringHash(a) == StringHash(b) && a != b
 
Last edited:

deepstrasz

Map Reviewer
Level 69
Joined
Jun 4, 2009
Messages
18,847
No, well kinda.. if you have 2 of the same type of map that uses the same kinda triggers it would be nice to transfer them towards each map without having to redo the variables and everything.
You can export and import triggers but that means replacing existing ones in a map. What @Sieben reinforced is that we should be able to copy from other maps or import triggers without having to replace the current ones in the map we want them in.
I really want them to "fix" this and make it so that we don't have to import resources for each map separately when it comes to campaigns.
I've written these before but I just wanted to reinforce it now when such a grandiose patch is coming.
 
Level 25
Joined
May 11, 2007
Messages
4,651
No, well kinda.. if you have 2 of the same type of map that uses the same kinda triggers it would be nice to transfer them towards each map without having to redo the variables and everything.
Sounds what you're looking for is the Starcraft II dependencies.

In SC2 you simply create a dependency mod, like in Warcrafts 3's campaign editor. You can edit all object data, etc including triggers.
Then you add it to the maps you want to use the triggers.
The nice thing is that you can have multiple dependencies for a map, so one guy could make a trigger library while another did a data library if you want to.
 

The Panda

Icon Reviewer
Level 57
Joined
Jun 2, 2008
Messages
8,912
You can export and import triggers but that means replacing existing ones in a map. What @Sieben reinforced is that we should be able to copy from other maps or import triggers without having to replace the current ones in the map we want them in.
I really want them to "fix" this and make it so that we don't have to import resources for each map separately when it comes to campaigns.
I've written these before but I just wanted to reinforce it now when such a grandiose patch is coming.

Yeah I understand but for me triggers take forever and id like it to be much simpler honestly.. because I have maps that I have done but the triggers need fixing and they just take forever... Plus triggers arnt new user friendly you need to learn so much to do them which sucks.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,198
eg the following could in rare cases be true and cause heisenbugs:

StringHash(a) == StringHash(b) && StringHash(a) != StringHash(b)
This cannot ever be true. You are confusing floating point equality comparison having an epsilon with hash collisions.

The problem is that the following can be true where a and b are strings with completely different characters (not case as hash is case insensitive).
JASS:
StringHash(a) == StringHash(b) // Hash collision
and the 2 key api for hashtables.. i know it mimics gamecache.. but still nuke it ( deprecate) and get sth actually reasonable.
Likely based on how MPQs work. They take 2 hash keys.
 
Level 5
Joined
Jul 15, 2015
Messages
118
In World Editor, if we could have the possibility, for heroes, to have them have different collision sizes when colliding with enemy units and different when colliding with friendly units. Meaning that collision size would of course be bigger for when touching enemy units but smaller when touching friendly units. I say this because it's lame that your own units block in your hero to be aimed down by enemy ranged (specifically in custom maps with large armies and important heroes), I mean okay if your hero is surrounded by enemy units then bravo to the enemy, he made a good maneuver, but having your own units trap your hero is stupid and makes you have to retreat completely. :p Now realistically the friendly units would get the fuck out his way if the important commander is trying to go back, but the enemy units would try the opposite. :}

Ok so bottom line: Two different collision size options for heroes, one against enemy units (would be larger), and one against friendly units (would be smaller). :)

Edit: Oh and also the ability to select more then 12 units would be great too, something like 20 or 24 units would be nice! :)
 
Last edited:
Level 11
Joined
Nov 23, 2013
Messages
665
Ok so bottom line: Two different collision size options for heroes, one against enemy units (would be larger), and one against friendly units (would be smaller). :)
Great idea!
What I usually do is reduce collision size of player's units, because I hate it when there is a big space between two warriors but no one can get there even though that space looks wide enough. But this trick can only be applied for solo games. I totally concur with you.
 
Level 6
Joined
Jul 30, 2013
Messages
282
This cannot ever be true. You are confusing floating point equality comparison having an epsilon with hash collisions.

The problem is that the following can be true where a and b are strings with completely different characters (not case as hash is case insensitive).
JASS:
StringHash(a) == StringHash(b) // Hash collision
Likely based on how MPQs work. They take 2 hash keys.

i typo'd that boolean algebra there, added edit regarding what i meant to write in poriginal post.
also i know my ints from real, and i definitely did not confuse my two's complement 32 bit integer with a 32bit ieee binary float.
 
Level 12
Joined
Mar 13, 2012
Messages
1,121
Ok so bottom line: Two different collision size options for heroes, one against enemy units (would be larger), and one against friendly units (would be smaller)

That's too specific, better suggest how it could be done via some trigger.

Would multiplayer mapmaking be something that Blizzard will ever add?
No. Getting it right is higly complicated and World Editor is coded with a single mouse and keyboard in mind.
For the internal map files use Git and maybe in addition Wurst, that's as close as multi user as you will ever get.

Given that 1.29 is a patch that touched the World Editor, maybe modding or making an orb of lightning ability to create passive autocast without the problem with the hidden button.
Do you mean the faded passive button? If yes how should it be?
 
Level 11
Joined
Nov 23, 2013
Messages
665
In the object editor, for items, add a boolean field "Stackable", so items with charges can be easily stacked.
I made a system to do it once, it worked but it was a hell of a pain. There are other systems doing that too, but they require vJass and complicated stuff, they're not easy to handle for beginners. A simple box to check and voila. And you won't have to do it for every single map in your campaign. I'd like that :D
 
Level 5
Joined
Jul 15, 2015
Messages
118
That's too specific, better suggest how it could be done via some trigger.
Damn, I never did any triggering ever so I don't know that. :c All I can do is explain how it should look like in the end lol:

Sorta like each unit having both a green and a red circle around it, green circles would only collide with other green (or yellow for neutral passive) circles while red circles would collide only with red circles... And by default both of these would have the same value until changed by the map editor.
 
Level 27
Joined
Jun 20, 2013
Messages
752
Do you mean the faded passive button? If yes how should it be?

When you use Lightning Orb in a Hero unit, the investigation button appears on the card as it should, but after being investigated the button doesn't appear.

Another case is when you're using cooldown in the active ability it happens like in the screenshot the icon appears in DISBTN mode.

attachment.php
 
Level 27
Joined
Jun 20, 2013
Messages
752
The talk about Orb of Lightning made me remember something that @Kyrbi0 was telling to us sometime ago, what about getting a proper "Magic Missile" skill, just Damage, not hardcoded debuff, maybe making it full custom like Acid Bomb.

For example, damage to objetive, damage AOE, damage over time as the basics, and debuff, stun with customizable graphic effect, as the optional fields.

On Orb of Lightning, maybe creating an Autocast version in the vein of Cure/Bloodlust, these simple things will be able to get great ideas running without depending much of GUI/JASS

And maybe a Dummy Autocast skill, a empty skill that allows you how the AI will use the Autocast, for example, as a healing ability, as a buff, as debuff, a dispell, as an arrrow, as an ofensive skill, as an defensive skill, when attacking or when attacked.

This will help a lot when trying to make Autocast skills, because the only two skills that are good for general use, are slow and fury, Parasite is very anal about the targets, without forgetting about the parasite unit, and Abolish magic requieres the unit being under the effect of a spell.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,198
And for the WE multi layered mapping as seen in the overground and underground of Heroes of Might and Magic and later in Armies of Exigo with two minimaps:
The engine needs to be designed with this in mind from the start. A simple update is not possible.

Closest one can do is the Haunted Mines HotS style double layered map where you have both layers next to each other and work to isolate them as best as possible.
I want code arrays and bitwise operators kthx
From what I understand code arrays were removed for security reasons. Any sort of exploit that allowed arbitrary values for them could be used to write arbitrary code. Even if such exploits are fixed, chances are Blizzard does not want the risks involved with allowing them. We all remember that fake DotA map that used to delete everything.
 
Level 20
Joined
Feb 23, 2014
Messages
1,264
One thing I'd really like to see added to the game are the hotkey profiles.
I don't expect much, but being able to switch between classic hotkeys and grid would definetely be nice.
 
Level 9
Joined
Oct 17, 2009
Messages
370
Set item description changes description for all items of the type, not just the item specified. (The action takes an item as input, not an item type)
(Same goes for item tooltip and extended tooltip)

Either fixing it to only change description of the item specified, or allowing us to create/instantiate new items at runtime would be nice :)
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
Allow read-access to all screen drawning-related memory regions. There are no cure for maphacks and that's primary thing people should fight with. WC3 has been unable to do ANYTHING about them for ages and still nothing changed in that terms. No defense == no reason to play fair == no reason to play at all for those who concerned (a lot). Any hardcoded protection will be evaded week later. Custom protections may live long enough, as they could be unique per each map update.

HTTP(s) interface to send GET/POST data to servers. Should be able to receive the answer as well, handling it as a string. There are no future for custom maps if author can't have any info, feedback about his decisions, as well as providing something in return, affecting game process directly.

Graphical drawning engine on HUD/game level. Currently there are already a few levels of rendering, and, for instance, lightnings are one of those, or images. This engine must support as default primitives a-la circles, rectangles, as converting various BLP/TGA images into custom images to use them.
When used as HUD, it should appear below default HUD. Stretching to screen size perfomed by using %% based offsets for drawning coordinates and auto-rescaling fixed sizes, considering screen resolution/window size.
When used as game image, engine should use it like normal images.

Auto-generate DIS buttons for images if required, but not found. There are 0 sense to waste map's space for such nonsense if it can be generated directly using gray-filter on original image.

Allow local (map) files to override default pre-cached. Add an option to drop all cached models/files as well. Required to be able to replace default landscape graphics inside the single map.

Improve JASS virtual machine perfomance overall. Index natives to improve it's search speed instead of comparing hashes every time. It's fine for custom funcs but natives should definitely use pre-generated array or list, since they're already indexed in bytecode.

Add syncable data transfer mechanism to sync ANY integer/real value between the players, in any reasonable amounts. It may be 10s of integers per cycle, for instance. Receivers should be able to tell who is the source of transmission, and it also should be protected from spoofing.

Add functions to work with hardcoded mechanics of each ability. Pretty much every ability has some hardcoded effects which are usually undesirable. All of them should be at least toggleable at once, better - customizable. For instance Holy Light - allow to select race it cannot be applied to instead of using fixed "Undead".

Add new pathing algoritm with lower cell size to remove issues with computing maps on movespeed 522+. It should be toggleable as well, to use this "2x more precious" map instead of default. Reason - it only needed when there are purpose to use that high speed, if not - normal pathing to reduce CPU usage.

Prolong CPU window for computing pathing as well - currently it get stuck after a few hundreds of units moving, causing most of them to stand still. While it's lagging, players can't act as well. It shouldn't work this way, definitely.

Allow to customize hardcoded hotkeys actions, including complete disable of their effects. Tilda, backspace, space, F1-F5, etc.

Add functions to work with missiles class which is widely used at engine level yet non-existant for coders. Create, destroy, edit properties - everything.

Add funcs to work with minimap pings, accessing it's data and the list of those. Asynced functions by it's nature.

Add funcs to all the wrappers widget may have. Adding true sight vision, removing one, adding silence counter, removing, there are tons of methods for each kind of widget which are unaccessible for mapmakers, yet useful in some ways.

Add all possible setters/getters through widget's parameters, without any exceptions, even for non-trivial a-la game flags or widget's rendering specifications.

Fix memory leaks on BJ level, or add non-leaking functions-alternatives so at least new maps won't suffer of those that much. Add some native which would display counter of non-destroyed objects in memory which is still active and weren't used for a while ("while" may be an argument, for instance, to compare with "last access" timestamp).

Improve map editor - it should be complete copy-paste of NewGen or any other modern editor. Noone of a "real" mapmakers uses default. Ever. Only small indies/newbies.

Allow to bind custom keys to command panel cells, including combinations. Same for inventory. Support right and left click. Allow to edit command panel completely, saving it's state per unit.

That what we can start from.
 

Kyrbi0

Arena Moderator
Level 45
Joined
Jul 29, 2008
Messages
9,502
Lets not talk about BDSM here anymore, plz. Use whatever you like, I like the ones with actually usable interface
I've honestly never seen; does NewGen or whatever have substantially different interfaces? I'm talking most about the Object Editor, Import Editor, Terrain Editor...

(Also I think you mean "Masochism"; unless you consider the vanilla WE to be "Bondage, Discipline, Dominance & Submission"... ?)
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
Bondage yourself with strict senseless limits
Discipline yourself with sense-lacking syntax checker which way too useless next to pjass
Dominance over tons of sudden issues a-la unability to setup IDs
In the end - get submissive and get used to it.

Well idk, but its newgen and it's features which cme up with syntax highlight, autocomplete, etc. Isnt it?
 

Kyrbi0

Arena Moderator
Level 45
Joined
Jul 29, 2008
Messages
9,502
Bondage yourself with strict senseless limits
Discipline yourself with sense-lacking syntax checker which way too useless next to pjass
Dominance over tons of sudden issues a-la unability to setup IDs
In the end - get submissive and get used to it.
xD

WelcomeBack said:
Well idk, but its newgen and it's features which cme up with syntax highlight, autocomplete, etc. Isnt it?
Ah, yes... I've heard it does loads to help out coders with a new & fancier Trigger Editor. Thing is, I don't really code all that much, and it doesn't offer a whole lot in the way of the Object Editor.

To each their own. I'm glad you've found something that works; just want to point out that there are some "non-indie/newbie" modders that still use the vanilla WE. ; )
 
Using vanilla editor when WEX/Newgen exist is modding BDSM. Newgen is outdated afaik, unfortunately, because it has a lot of OE features like being able to setup your own IDs, in-built colour-changer for tooltips, etc. However, the only reason that should be enough for you to switch over to WEX is that it allows you to use vJASS libraries like do you realise how much shitake you're missing out on!? Even if you can't code, people can make things for you. You turned down a spell because it used TimerUtils. TIMERUTILS! SUCH GOOD LIBRARY. MY HEART CREY EVERITEM.

Be sensible. Use WEX today.
 
Add new pathing algoritm with lower cell size to remove issues with computing maps on movespeed 522+. It should be toggleable as well, to use this "2x more precious" map instead of default. Reason - it only needed when there are purpose to use that high speed, if not - normal pathing to reduce CPU usage.

In line with improving the limits of the game, I request the following: (Overkill)

[/s]
Allow cooldown of attacks to reach 0 (A 0-second timer duration) or at least 0.01. This might help some folks out in whatever escapades they have planned in their maps. (I do consider the complications thereof).

Allow toggleability of the maximum and minimum attack speed (suggested in Gameplay Constants and some natives that need to be invoked), with minimum attack speed having a lower bound of 0, and maximum attack speed only being limited to the minimum attack cooldown. (Assume a unit with 1.00 second attack speed with a 9900% attack speed boost!)

In certain cases, if the mapper knows what he/she is doing, allow toggleability of the op-limit. This could help both those who want intensity in performing resource-intensive tasks for whatever reason, and leave those who are not restricted by the op-limit untouched. The best of both worlds, in a sense...

Of course, the attack cooldown, maximum and minimum attack speed, and op-limit will be reset before returning to either the main screen, crashing, or map transitioning.

As for the number of units, assuming that there are a lot of them, (which is very unlikely, except in Footmen Frenzy), the internal limitations (movement, attack, order) when it comes to moving could be improved, and optimized to the best. It wouldn't matter in non-intensive maps, but it could prove very useful later on, with the introduction of 24 players, and so on.

In another note, removing units does not fully clean them up. Perhaps, that could be resolved internally.
Terrain Deformation, as far as I've heard, cause a lot of leaks. Even offering a native for removing that would help a lot for those who rely on them a lot. Shockwave, in this aspect, can also be optimized.

With all of these suggestions, even just 1 or 2 of them would be greatly appreciated. With the style of patching as it is, these changes can be introduced gradually.

As much as this is an external feature, can we get the option to generate the object-ids ourselves? It would be toggleable as well.
 
Last edited:
Level 19
Joined
Dec 12, 2010
Messages
2,069
oh yeah, about indirect buffs for wc3

Replay menu should provide much more info about every replay there: player names, date of creation, duration should be displayed in next column or when replay selected
replay tools should allow to specify the timing you'd like to FF into

FF option: increase max speed to unlimited instead and min to 0x25 instead of current.

Replay menu should allow to toggle control butons in order to clean up command panel, which should display selected thing control panel as if it's your unit selected in real game

Observers should have free selection and panel visibility as well 24/7
 
Level 25
Joined
Feb 2, 2006
Messages
1,689
I guess this is already listed as "Battle.net 2.0 integration" but make hosting and finding/joining games easier. My Internet provider does not even support redirecting an IPv4 port anymore so I cannot host a custom map. If hosting becomes easier, there would be more games and less hosting bots. If they would allow to host servers marked as bots and filtering for games with at least one player it would also help a lot. Besides, add the game to your updater, so it can be downloaded and updated more easily. Steam provides something like "Join Game" and maybe the Blizzard updater does it, too.

... and finally make the game much cheaper. I can't believe it is still as expensive as 10 years ago :D
 
Status
Not open for further replies.
Top