1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

SharpCraft: World Editor Extended

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

  1. Ralle

    Ralle

    Owner

    Joined:
    Oct 6, 2004
    Messages:
    11,236
    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

    Joined:
    Aug 3, 2004
    Messages:
    690
    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:
    740
    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

    Joined:
    Aug 3, 2004
    Messages:
    690
    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

    Joined:
    Aug 3, 2004
    Messages:
    690
    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,498
    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,843
    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

    Joined:
    Aug 3, 2004
    Messages:
    690
    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. 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,623
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    Doing more for the modding community than Blizzard, nice.
     
  13. MindWorX

    MindWorX

    Joined:
    Aug 3, 2004
    Messages:
    690
    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. 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,240
    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,498
    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.