• 🏆 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!

HiveWE - World Editor 0.6

HiveWE is a fully custom 3rd party world editor. It's completely separate from the original editor and is open-source!

Features:
  • Open and view Warcraft III maps.
  • Edit the terrain.
  • Edit the pathing map directly!
  • Change the tileset to up to 16 tiles.
  • Fly around in first or third person camera
  • Manage your imports with folders
  • Edit global tile pathing
  • Place and remove doodads
  • Edit map loading screen information
  • Import heightmaps
  • View GUI and edit JASS triggers
Limitations
  • Doodad rendering is not 100% accurate (teamglow, billboards, etc)
  • Does not show animations
Required for running HiveWE:

HiveWE 0.6

Additions
- Map script generation!
- Improved Jass highlighting
- Improved Jass autocomplete
- Tabs in the trigger editor now configurable
- Trigger comments shown and editable
- Rudimentary find window in trigger editor
- Move camera with arrow keys
- Shortcuts for opening/saving maps
- Improved doodad pathing placement
- Cool application icon
- Doodad copy and paste
- Doodad positioning with numpad
- Improved themes

Changes
- Camera is now a trackball type instead of TP/FP hybrid
- Camera drag now proportional to distance
- Camera now changes with terrain height
- Doodads height after terrain change now interpolated
- Doodads now selected with one click instead of two

Fixes
- Clicking on minimap now moves you to the correct location

HiveWE 0.5
Additions
- Minimap
- Full undo/redo for terrain/pathing/doodads
- Show destructibles pathing
- Visiblity/Solidity flags for doodads
- Pathing map preview for doodads
- Cliff lighting
- A functioning JASS editor (with some limitations)
- Dark theme
- Doodad palette functionality
Changes
- Check for empty warcraft directory path
- Default doodad palette to Trees/Destructibles
- Tries to run on the fastest GPU
- Now also shows RoC (.w3m) maps in the open map dialog
Fixes
- Can now launch HiveWE while Warcraft is running
- Deep water for terrain palette has proper height
- properly applies water pathing

HiveWE 0.4
Additions
- Warcraft 1.30 support!
- Full BLP1 support
- Loads the shadowmap file (implementation waiting)
- Import a heightmap (PNG, TGA, JPG and many others)
- Load and edit map information! (loading screen/description)
- Trigger viewer! View GUI and JASS triggers
- An option to disabled enforcing water height limits
- Added an experimental doodad palette
Changes:
- Now uses the OS temporary folder instead of the "Data/Temporary" folder
- Greatly increased pathing map contrast
- Trigger and Import editor window modality changed
- Now uses a ribbon instead of the old menu
Fixes:
- Properly set the pathing for water and blight
- Tilesetter now properly enforces 16 tiles
- The correct ground texture variation is now chosen
- Properly scale units and items
- Properly scale doodads
- Saving now chooses the right target

HiveWE 0.3
Additions:
- Warcraft 1.29 support
- Added a Tile Pathing setter
- Added a Terrain Palette.
- Added an Import Manager
- Now shows the pathing texture on cliffs too
- Added a first person camera and allow switching between them
- Added terrain shadows
- Reset camera using CTRL + Shift + C
Changes:
- Removed war3Patch.mpq from the hierarchy
- Added deprecated.mpq (from 1.29) to the hierarchy
- SLK loading is now roughly 4x as fast (improved map load time)
- Hides the brush when palette is inactive
- Some small quality of life improvements
- Improved RoC compatibility for unit loading
- Changed terrain rendering to support different ground texture sizes
- Now remembers your last open/save location
- Further increased rendering performance for doodads a lot
- Now remembers your Warcraft 3 directory if you previously located it

Fixes:
- Fixed tileset/map hierarchy order
- Fixed loading items placed on the map
- Fixed a bug with the terrain being off by one (64x64 became 63x63)

HiveWE 0.2
- Instanced rendering for Doodads and Cliffs provide a massive speed upgrade
- Added tooltips to all buttons
- Centered brush on mouse
- Some code refactoring
- Added tilesetter
- Fixed blocky pixels under oblique angles
- Added terrain saving
- Allow running multiple instances
- Fixed tile variation bug
- Fixed tile texture UV bug
- Added unit rendering
- Very rudimentary animation parsing and geoset hiding
- Improved RoC file format compatibility
HiveWE 0.1
- Initial release
- Draws terrain and doodads
- Editing the pathing map

Technically a Warcraft installation is not required since the editor relies only on the game CASC files. We cannot distribute these due to legal reasons. Just point the editor at the folder containing them when it asks and you should be good to go!

If you encounter any issue with HiveWE then do ask for help! You can post here, reach me on the Hiveworkshop Discord eejin#4240 or message me on GitHub.

Many thanks to Ghostwolf for without him I wouldn't have gotten anywhere near as far. Also thanks to the rest of the Hiveworkshop community for supporting the creation of this editor.

Backup your map before using HiveWE
Previews
Contents

HiveWE 0.6 (Binary)

Reviews
Retera
This is a state of the art open source World Editor that draws on all of the community's knowledge of how to make Warcraft III maps. This current build is great for drawing terrain and doodads -- and new features are clearly under active development...

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
I use some features only available in OpenGL 4.5. Developing for multiple render APIs add extra complexity which is a bit of a waste anyways since OpenGL is supported practically everywhere. You can always use the original WE if your hardware does not support OpenGL 4.5.
 
Level 9
Joined
Jun 17, 2010
Messages
217
Why should it? OpenGL runs on Windows, Mac, various Linux distros and even web. DirectX runs on Windows. As a single developer, supporting multiple platforms is difficult enough as it is. There's no gain from trying to target multiple graphical frameworks as well.
I thought it was only for Windows. or crossplatform ?

I need to buy a new computer for edit Warcraft III maps ? :(

Or in the future there will be a choice between Directx / Opengl 4.5?







This is also custom Map Editor for the Warcraft :eek::
wc3lib/src/editor at master · tdauth/wc3lib · GitHub
Or also not finished? Can anybody build this for Windows ( See what features provides this editor )? :)
 
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
Why in HiveWe does not use DirectX?
Because why should it?
I use some features only available in OpenGL 4.5. Developing for multiple render APIs add extra complexity which is a bit of a waste anyways since OpenGL is supported practically everywhere. You can always use the original WE if your hardware does not support OpenGL 4.5.
What features are those?
OpenGL runs on Windows, Mac, various Linux distros and even web.
I thought Mac version of OpenGL was hopelessly out of date because Apple did not care...
I thought it was only for Windows. or crossplatform ?
OpenGL is cross platform. Although OSes like Mac and Android do not support all features.
Or in the future there will be a choice between Directx / Opengl 4.5?
He might choose to use Direct3D 11 which is feature compatible with OpenGL 4.5 odd. In which case you would still need a new computer.

That said, does he really need to use 4.5 features?
I try to build this (wc3lib) editor for Windows but got many errors and can't find some libraries for Windows. )
Well then get the libraries that it is missing. They are likely common open source ones. Google their names.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
Direct State access is 4.5
Although an optimization, it does not appear to be a critical feature. Warcraft III is so old that even with the old context binding method it will still perform well. In fact it will still likely perform better than Warcraft III and WorldEdit as both still use the old fixed function pipeline to render before programmable shaders were added to OpenGL and Direct3D.
GL_DEBUG_OUTPUT is 4.3
Appears to serve a similar purpose to the debug layers of Vulkan applications. This is an optional feature that is useful for developers but optional for users. Hence could easily be removed for final builds.

If performance is a concern you would already be using Vulkan, which only has a slightly higher requirement to run than the currently required OpenGL version.
 
Level 9
Joined
Jun 17, 2010
Messages
217
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
But i can't convert shaders from 450 to 3xx )
Possibly because they are using a 4.5 feature. Dropping back to 3.X is a huge regression in available shader features and capabilities. That said technically WC3 does not need any such advanced stuff because the game itself uses nothing more than the most basic OpenGL fixed function pipeline. One can however expect performance regressions as a result, after all that is largely what the more recent API revisions focused on.

I personally would recommend targeting the editor at similar requirements to what one needs to run WC3 since that would make it the most available to potential users. Note that Warcraft III had its system requirements raised to Direct3D9 recently, so there are still many features one can use.
 
Level 3
Joined
Feb 14, 2018
Messages
33
Is it able to change the tiles editor like sc2? Not completely replace the old one,but just add the circle tiles and cliffs editor. Sorry,bad english :(
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
I'm working on a project called Wardota2 that brings dota 2 experience to dota1's players but we cant because the tiles editor was bad
What does this have to do with a third party Warcraft III editor? If you are saying that you are making a DotA2 based map for Warcraft III then you will have to deal with the limits of the Warcraft III engine.

DotA2 is over a decade more advanced than Warcraft III.
 
I'm working on a project called Wardota2 that brings dota 2 experience to dota1's players but we cant because the tiles editor was bad

Welcome to Warcraft 3 modding. This is just an editor, it doesn't add new features beyond the scope of the game. However, there are various workarounds to your tile problem.. Try using Ubersplats as ground textures. See my attachment for an example.
 

Attachments

  • cl3.png
    cl3.png
    502.1 KB · Views: 440
I found 2x World Editors for War3 )))))


Next-generation WC3 world editor
and
Mrkol/war3editor

But i can't run it. One with many missing folders and files, second can't be compiled )

There's also Zépir's War3 Map Editor 1.0, however none of them have rendering like HiveWE.

I actually didn't know about Mrkol's war3editor. It looks like he will be trying to implement rendering as well but it's in early stages. The code is C# though which is nice (@MindWorX).


I'm working on a project called Wardota2 that brings dota 2 experience to dota1's players but we cant because the tiles editor was bad

Take a look at the attached images. I couldn't find a download link but maybe they are using ubersplats like A Void said.
 

Attachments

  • 150249aqs04lblqex2rsed.png
    150249aqs04lblqex2rsed.png
    941 KB · Views: 507
  • 150300smcmqjmzlsdlcwjy.png
    150300smcmqjmzlsdlcwjy.png
    983.5 KB · Views: 314
  • 150303cimhiyqgqidcqf0y.png
    150303cimhiyqgqidcqf0y.png
    972.9 KB · Views: 397
  • 150306y9s660sj9gg9y999.png
    150306y9s660sj9gg9y999.png
    996.8 KB · Views: 563

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
Wareditor, but some features can be moved from not working map editor to HiveWE, or no ?
No they cannot. It is like asking if you can ride your bike to the moon. Just because a rocket can go to the moon does not mean your bike can.
By the way, why are the textures more detailed and crispy in the editor? They look damn fine, but in-game it gets worse. War3 needs rendering upgrade... Ironic considering that rendering from editor is better than the game we're playing in.
Because they incorrectly use mipmaps, which is not supported by the way tile textures are composed. This is why the textures look utter garbage in this editor on oblique angled terrain because bilinear filtering has to be turned off which in turn means it looks like an ancient PS1 game (although with affine correction) due to nearest texel interpolation being used.
I probably use better texture filtering too.
You use incorrect filtering. There is a reason why in a game where all other world models use mipmaps Blizzard designers purposely told the terrain to not... Your hacky work around causes major artefacts with oblique angles, which are not a problem for and render perfectly in Warcraft III.

This is what I mean...
hivewe0-1-png.292225

Notice the pixilation that is occurring due to nearest texel being used during interpolation. Watch the texture feature positions as well to see bad UV logic. Seamless Warcraft III terrain will show seams in this editor!
normalwe-png.292226

Notice how the green smudge is lower down showing bad UV or mipmap logic in HiveWE. Additionally notice how no pixilation is present because bilinear sampling is being used. Aliasing can be noticed with the textures in the background due to the lack of mipmaps.

The map shown is not mine, but rather one I had lying around and just happened to use for testing the editor that noticeably showed the problem. I do not claim any credit for it.

The correct (Warcraft III) UV logic is to place the vertex corners exactly in the middle of the 2 pixel boarder assuming 64*64 pixel tile components or in the middle of the boarder pixels assuming 32*32 pixel components. Assuming a numeric range from 0.0 to 1.0 for the tile component (with all 64*64 or 32*32 pixels being square and equal sizes) this would mean they would have some combination of the values 0.015625 and 0.984375.

If one wants to use mipmaps for terrain one would have to break each tile component into its own texture (possibly a 3D texture?). This is to prevent cross component bleeding at lower mipmap levels than 32*32 pixel components where the bilinear interpolated sample is derived from texels of neighbouring tile components. This obviously has huge performance implications which is why Blizzard decided to disable mipmaps for the terrain and why StarCraft II blends in continuous textures rather than using tile components.
 

Attachments

  • HiveWE0.1.png
    HiveWE0.1.png
    450.1 KB · Views: 1,019
  • NormalWE.png
    NormalWE.png
    384.9 KB · Views: 951

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
Test this,used ubersplat but it isnt good,that why I need a new tiles editor
This tool is nothing more than an editor for Warcraft III. It cannot make Warcraft III do anything Warcraft III cannot do.

If you really want detailed terrain consider modelling it all as walkable destructables. This way you can import the models and textures and assembly them to make a fully custom terrain.
 

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
Notice how the green smudge is lower down showing bad UV or mipmap logic in HiveWE.
It's because OpenGL uses the bottom left corner as 0,0 while I use the top left. I should fix it since its an easy fix.

If one wants to use mipmaps for terrain one would have to break each tile component into its own texture (possibly a 3D texture?). This is to prevent cross component bleeding at lower mipmap levels than 32*32 pixel components where the bilinear interpolated sample is derived from texels of neighbouring tile components. This obviously has huge performance implications which is why Blizzard decided to disable mipmaps for the terrain and why StarCraft II blends in continuous textures rather than using tile components.
This is exactly what I do. I use a 2d texture array for each 64x64 tile and then let OpenGL generate mipmaps.


I will look into the blocky textures.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
I will look into the blocky textures.
In that case you must be using the wrong interpolation mode, or for some reason the interpolation mode is not working as expected.

I think one has to use "GL_LINEAR_MIPMAP_LINEAR" for the sampler mode. That should at least get rid if the pixilation by using bilinear filtering.
Sampler Object - OpenGL Wiki

Such oblique geometry might still look a bit ugly and low resolution due to how mipmaps are selected. To combat this one can use anisotropic filtering. Although needing 4.6 core it is available as an extension before then that most GPUs in the last decade should support.
 

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
Ah yes I thought the default would be GL_LINEAR_MIPMAP_LINEAR, but it appears that it is GL_NEAREST_MIPMAP_LINEAR. I changed it for the newest built. I've been looking at anisotropic filtering indeed. I will look into how to use this extension with my framework.
 
Level 3
Joined
Feb 14, 2018
Messages
33
Ah yes I thought the default would be GL_LINEAR_MIPMAP_LINEAR, but it appears that it is GL_NEAREST_MIPMAP_LINEAR. I changed it for the newest built. I've been looking at anisotropic filtering indeed. I will look into how to use this extension with my framework.
Is my idea easy to do?they said that it's impossible
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
Is my idea easy to do?they said that it's impossible
Link an existing Warcraft III map that does what you want and I am sure the required tools can be investigated. If there is no existing map that does what you want then that generally points towards it being impossible to do, most likely due to game engine limitations.

Warcraft III is a data fed game engine. Maps are nothing more than data of various kinds that get fed into it. Outside of arbitrary code execution exploits, which will be patched, one cannot make the game process data any differently. Warcraft III is not a game engine, e.g. Unity, where one can extend and change how it processes data to suit the requirements of the game.
 

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
HiveWE 0.2 is out!

Changelog

- Instanced rendering for Doodads, Cliffs and Units provide a MASSIVE speed upgrade (More than 5x)
- Added tooltips to all buttons
- Centered brush on mouse
- Some code refactoring
- Added a Tilesetter allowing you to have up to 16 tiles in your map!
upload_2018-3-6_17-17-49.png

- Fixed blocky pixels under oblique angles
- Added terrain saving
- Allow running multiple instances
- Fixed tile variation bug
- Fixed tile texture UV bug
- Added unit rendering
upload_2018-3-6_17-18-59.png

- Very rudimentary animation parsing and geoset hiding
- Improved RoC file format compatibility

Download the newest version at the top!
 
Level 11
Joined
Nov 23, 2013
Messages
665
This is getting better and better. Thanks for your work!

New version allows up to 16 tiles, and it is actually 16 tiles, regardless of the tile size (1 or 2). This is even better than 1.29 update, which allows 16 tiles too, but still has that tile size limitation. :)
 
Level 12
Joined
Jun 12, 2010
Messages
413
If I edit my map's global pathing with HiveWE, then export the .wpm file from the MPQ, could I work on the map seperately on the World Editor and then import the .wpm file with an MPQ Editor before releasing the map again to restore the pathing that was lost when saving with the WE? I'm not quite sure how the global pathing file works, and a quick google-foo is not turning up any useful info. But if this works, it might be useful for other people too.

I'm guessing the biggest disadvantage would that any edits to the pathing map that were made in the World Editor (by creating cliffs) would be lost.
 

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
I'm guessing the biggest disadvantage would that any edits to the pathing map that were made in the World Editor (by creating cliffs) would be lost.

Yeah that's exactly what happens if you save the map with the regular World Editor. You can of course draw them on again with HiveWE. The only remedy to this is that HiveWE has full terrain editing functionality and doodad placing functionality (since those too are saved to the static pathing map unlike destructibles). I will add some features to version 0.3 to make it easier to work with the pathing like changing a certain tileset texture to be unwalkable/flyable/buildable or make all cliffs unwalkable/buildable.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,179
Yeah that's exactly what happens if you save the map with the regular World Editor. You can of course draw them on again with HiveWE. The only remedy to this is that HiveWE has full terrain editing functionality and doodad placing functionality (since those too are saved to the static pathing map unlike destructibles). I will add some features to version 0.3 to make it easier to work with the pathing like changing a certain tileset texture to be unwalkable/flyable/buildable or make all cliffs unwalkable/buildable.
If one could recreate the WorldEdit pathing logic one could then compile a pathing difference image. This could be exported, the map edited in normal WorldEdit and imported again back in HiveWE so as to restore all pathing modifications while still keeping some pathing changes which were made in WorldEdit.

The pathing difference map could be considered a normal pathing map but where each node has an alpha flag, with transparent pixels being ignored and only opaque pixels modifying the pathing map.
 
Top