1. The 30th edition of the Modeling Contest is finally up! The Portable Buildings need your attention, so come along and have a blast!
    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

SharpCraft: World Editor Extended

Discussion in 'SharpCraft & WEX' started by Ralle, Apr 25, 2017.

  1. Ralle

    Ralle

    Owner

    Joined:
    Oct 6, 2004
    Messages:
    11,129
    Resources:
    22
    Tools:
    3
    Maps:
    5
    Tutorials:
    14
    Resources:
    22
    119264-5c6f590cae95c3810f2d550a6a31c430.png

    Introducing, SharpCraft: World Editor Extended also known as WEX. An add on to the World Editor used to heavily expand the limits in modding Warcraft III along with making it more efficient and flexible to use. Using WEX makes it much more possible to create complex and creative maps and mods than in the vanilla editor, especially in terms of JASS usage, the code used in developing the game. WEX currently supports WC3 versions 1.27b and 1.28. In simpler terms, it’s the “World Editor 2.0”.


    Some of the major features include:
    • Removal / increase various limits, such as the number of doodads, units, destructables, and more to be placed on a map.

    • JassHelper, a vJASS compiler, that replaces the internal world editor compiler completely.

    • No more crashes from bad code and many more features through vJASS.

    • Trigger Editor Syntax Highlight (TESH), a code syntax highlighter for the Trigger Editor, that makes coding in JASS/vJASS a breeze.

    • Simple to update when WC3 is patched by editing a text file.

    • Object ID dialog, that allows you to manually set the object id when creating a new object.
      Want to make a hero peasant? Just copy the peasant, and when the dialog asks, just change the first letter to uppercase, and he's ready.

    • Expanding the map dimensions (playable map area size) to 480x480, whereas the default limit was 256x256. Note that this is not working as intended at the moment, however.

    Today, we are pleased to announce that SharpCraft joins Hive Workshop as our newest hosted project, with its very own forum for discussion, updates, and more! If you would like to try it out, contribute to the project, engage in discussion, or simply read more about it, visit the forum linked below.

    SharpCraft Forum

    More background information & technical details
    WEX is a stab at creating a replacement for JNGP based on modern principles. JNGP has served the modding community well for many years with its turbocharging of many aspects of World Editor. It has support for syntax highlighting and a more modular version of JASS (vJASS) allowing for easier code sharing and development. It also comes with abilities to use custom object IDs, remove doodad/destructible limits and more.


    Grimoire, which JNGP uses to inject all its features, is starting to age, and hasn't been updated since version 1.21 of Warcraft III. This means that in order for JNGP to keep working, we've had to bundle the 1.21 version of worldedit.exe along with it ever since. This has been working fine for a while, but by now so much has changed in the internal structure and workings of Warcraft III that several issues have started to come up and features are missing.

    • GUI HashTable functions like the Key of ... will immediately crash the editor.

    • The MPQ structure has changed, making it necessary to manually import the cd-keys back for the World Editor to work again.

    • The new Validate feature is completely missing from JNGP.

    This is only bound to get worse, as Blizzard continues to add new features we requested, which aren’t compatible with the old 1.21 editor.


    While it might be possible to patch Grimoire and keep it up to date, it will be hard to maintain because it is hardcoded to target a specific version of Warcraft 3 in a very cumbersome way. Not to mention the fact that taking the opportunity to rethink the system can be healthy sometimes.


    Blizzard has picked up patching Warcraft III again and that is at this point a mixed blessing, but we trust that Blizzard will soon make it enticing to run the latest patches and we want to make sure that we can keep up with the latest versions of Warcraft 3.


    The official maintainer of JNGP, @MindWorX, saw the writing on the wall and in late 2016 started work on a replacement based on his existing project SharpCraft. Some of you may have tried it already, but it hasn’t drawn much attention to itself until now.


    It is already more robust and works with both 1.27b and 1.28. All features are loaded independently, so if one feature fails, the other features continue to work. This ensures a very stable environment for the users. It also uses a dynamic plugin system, which means it is much easier to add or remove plugins from the pack. This means that everyone can tailor their WEX package just to their own need. WEX builds on a programming principle called Dependency Injection, which makes it possible to switch out features without affecting the overall system. If you’re not satisfied with the way it currently uses static addresses, you can simple remove the plugin and add one that uses dynamic lookups, and it’ll continue to works just as before. The plugin system is open to anyone, and as SharpCraft and WEX mature, the plugin API will be properly documented. If you’re interested in getting in early, you can get in touch via the SharpCraft forum to get more information and help.


    It is important that everyone keep in mind that WEX is new and still under very active development, and will likely lack some features you have been used to in the past. As it develops, most of these features hopefully make their way back. If you miss any particular feature, please don’t hesitate to tell us about it. Enjoy :).
     
    Last edited by a moderator: Apr 26, 2017
  2. MindWorX

    MindWorX

    Blizzard Developer

    Joined:
    Aug 3, 2004
    Messages:
    689
    Resources:
    5
    Tools:
    1
    Tutorials:
    4
    Resources:
    5
    If anyone has any questions, don't hesitate to ask.
     
  3. A]mun

    A]mun

    Joined:
    Dec 4, 2007
    Messages:
    702
    Resources:
    0
    Resources:
    0
    So what exactly will be missing at present - switching over from JNGP? Because at this moment i am comfortably using the latter with the Self-fix for JNGP on Patch 1.28.
     
  4. MindWorX

    MindWorX

    Blizzard Developer

    Joined:
    Aug 3, 2004
    Messages:
    689
    Resources:
    5
    Tools:
    1
    Tutorials:
    4
    Resources:
    5
    Currently, it's only the most specialized features that will be missing, like Risc's Colorizer or the Campaign Builder. The only critical feature missing at the moment, is the increased map dimensions, but I'm working hard on getting this fixed. My best suggestion is to give WEX a try and see if there is anything you're missing. In the future, WEX will also come with even more features, like improved saving times and perhaps even a way to import assets directly from The Hive Workshop. This should hopefully be give people a good enough incentive to leave JNGP behind before it breaks completely.
     
  5. Hotwer

    Hotwer

    Joined:
    Mar 10, 2013
    Messages:
    370
    Resources:
    0
    Resources:
    0
    It would be great to have a way to attach the optmizers to it so you can already save development, and production type maps.
     
  6. MindWorX

    MindWorX

    Blizzard Developer

    Joined:
    Aug 3, 2004
    Messages:
    689
    Resources:
    5
    Tools:
    1
    Tutorials:
    4
    Resources:
    5
    This was recently discussed and should absolutely be possible. Are there a particular optimizer you have in mind? If so, I might be able to make an example.
     
  7. A Void

    A Void

    Joined:
    Mar 29, 2011
    Messages:
    2,480
    Resources:
    10
    Models:
    2
    Spells:
    1
    Tutorials:
    7
    Resources:
    10
    Nice! Is map protection planned as a feature?
     
  8. Archian

    Archian

    Site Director

    Joined:
    Jan 1, 2006
    Messages:
    2,686
    Resources:
    12
    Skins:
    1
    Tutorials:
    11
    Resources:
    12
    Great stuff @MindWorX ! Hopefully this will put minds at ease of those who feared for Warcraft 3 modding. I'm looking forward to test WEX. Keep up the good work!
     
  9. MindWorX

    MindWorX

    Blizzard Developer

    Joined:
    Aug 3, 2004
    Messages:
    689
    Resources:
    5
    Tools:
    1
    Tutorials:
    4
    Resources:
    5
    Definitely also possible. Protectors and optimizers are kinda like compilers, only they save to a different file. So imagine you enable the optimizer/protector. Whenever you save, it'll save normally, but the optimizers/protector will save to "<mapname>_optimized_protected.w3x".
     
  10. BlueSaint

    BlueSaint

    Joined:
    Jun 18, 2012
    Messages:
    2,726
    Resources:
    3
    Tools:
    1
    Spells:
    2
    Resources:
    3
    How would I go about adding another compiler? In JNGP it would be couple of lines in wehack.lua, requiring mere English knowledge.
     
  11. Hotwer

    Hotwer

    Joined:
    Mar 10, 2013
    Messages:
    370
    Resources:
    0
    Resources:
    0
    I have three in mind: the Widgetizer (or the Wc3 Slk Optimizer, both do the same, so it would better if we choose the best, or if both were good, at least the most flexible), and Vexorian's Optimizer as well.

    Could be configurable, I usually use "opt-<mapname>.w3x".
     
  12. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,500
    Resources:
    17
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    17
    Doing more for the modding community than Blizzard, nice.
     
  13. MindWorX

    MindWorX

    Blizzard Developer

    Joined:
    Aug 3, 2004
    Messages:
    689
    Resources:
    5
    Tools:
    1
    Tutorials:
    4
    Resources:
    5
    With SharpCraft, each plugin will need some C# to bootstrap. You can see how JassHelper works in SharpCraft. It might be some additional work, but it offers a much more flexible environment than before. Now everyone can pick and chose from whatever plugins they'd like. This new requirement only puts a bit of work in the hands of plugin developers. And, if Lua is a must, it's more than possible to make a Lua plugin for SharpCraft as well.

    The main importance is that the optimizers can be run with commandline arguments and don't need a window so they can be automated. I'll give those a look when I can.

    <3
     
  14. Hotwer

    Hotwer

    Joined:
    Mar 10, 2013
    Messages:
    370
    Resources:
    0
    Resources:
    0
    Any link you can give me about it? It's always a pain to optimize my maps (ok, not a real pain, but it would make the process easier and I would take a lot of less time everytime I need to optimize a map to test it).
     
  15. BlueSaint

    BlueSaint

    Joined:
    Jun 18, 2012
    Messages:
    2,726
    Resources:
    3
    Tools:
    1
    Spells:
    2
    Resources:
    3
    Well, I loved the idea of wehack.lua, one text file to control it all. But sure I can learn new things, seems like little effort in exchange for a more modern WE, hehe. But for now I'll stick to JNGP until it breaks beyond self-fixable, generally I tend to grow liking into software I've already tackled instead of seeking for bleeding edge features in newer technology.
     
  16. streetpunk

    streetpunk

    Joined:
    Oct 9, 2015
    Messages:
    721
    Resources:
    2
    Spells:
    2
    Resources:
    2
    First congratulations on this new project, it seems it will inject some more years of life to warcraft 3. Second: Does this new tool provides support for mouse hovering and clicking detection? If so, does all users need to have sharpcraft installed aswell ?
     
  17. Cokemonkey11

    Cokemonkey11

    Wurst Reviewer

    Joined:
    May 9, 2006
    Messages:
    3,153
    Resources:
    18
    Tools:
    1
    Maps:
    5
    Spells:
    3
    Tutorials:
    2
    JASS:
    7
    Resources:
    18
    How can I use it with wurst?

    No wurst => no WEX [on my pc]
     
  18. A Void

    A Void

    Joined:
    Mar 29, 2011
    Messages:
    2,480
    Resources:
    10
    Models:
    2
    Spells:
    1
    Tutorials:
    7
    Resources:
    10
    Looking forward to it. WEX might become as big as JNGP, possibly even bigger.
    Ok, not that Wurst matters..
     
  19. StoPCampinGn00b

    StoPCampinGn00b

    Community Manager

    Joined:
    Apr 2, 2013
    Messages:
    2,459
    Resources:
    1
    Maps:
    1
    Resources:
    1
    In case anyone was wondering, we've edited the news post so it has a brief introduction for everyone to understand what this is about. We get that pretty much all the skilled modders here understand it, though. Previously, the thread started with the background of JNGP with little detail on what WEX does and means for Warcraft III & the World Editor. Anyhow, we hope those who aren't familiar with NewGen or isn't fluent in the modding basics could understand how significant this is. Not much new, specific detail was added. That's all, cheers and enjoy.
     
    Last edited: Apr 27, 2017
  20. Hotwer

    Hotwer

    Joined:
    Mar 10, 2013
    Messages:
    370
    Resources:
    0
    Resources:
    0
    That will surely help. I'm not a newb in the concept of developing, but I'm returning from a long time ago were a I used to make maps with my friends, and I never made any really big map or used any kind of tool either, to thanks it will help alot everyone that is in a similar (or without knowledge) state as me.