SCII Editor: Suggestions & Improvements Thread

Editor Discussion
Post Limit:
1 2 3 11 Next
While we’re constantly improving the tools for our own uses as well as coming up with tools and systems to benefit the community, there are often times when we may miss out on some great ideas coming from all of you – the community. There are many of you who have been using the tools since the Wings of Liberty Beta, many of you who have started checking out the editor with the release of 1.5.0 and the arcade, and a lot of you who have picked up the Starcraft 2 Editor at some point in-between. I’m sure that there’s often been times when you’ve thought to yourself “I really wish that the editor had this one additional feature – it would be awesome”, or “If only I didn’t have to do these actions repeatedly, it would save me a ton of time”. These things are the kinds of information that we’re looking for to help make your lives easier, better, and more awesome. I want to stress though, that this is for suggestions and improvements to the editor only – any posts about bugs, “how to”, the game, or anything otherwise viewed as off-topic will be removed.

In order to get the most from your post, here are a few simple guidelines:

  • Explain your suggestion as clearly and concisely as you can.
  • If you can cite concrete examples of how it impacts you or how the fix would benefit not just you but the community, please include this.
  • If you can cite metrics (ie measured time amounts for tasks, the amount of steps that an action takes, etc), please include these, as it will help to give us a better idea of the issue at hand.
  • The more specific you are the better – if you are able to provide actionable examples rather than vague explanations, this will help us more quickly understand the core issues at hand.


2 theoretical examples:

  • “I primarily work in the trigger editor, which means that I end up having to add a large number of actions on a regular basis. I find that whenever I add a new action, I have to click in the “Find:” field, then enter my search query. If the “Find:” field was given focus initially rather than having to click there each time I added a new action, this would save me quite a bit of time in how I work.”
  • “I would really love to be able to re-arrange my terrain textures while painting terrain via a drag and drop mechanism. Often times when I’m painting terrain textures, I find that I end up using different textures together in different areas of a map. If I could re-arrange these without having to open the “Map Textures” menu, this would be great!”


We look forward to hearing what you come up with!

Edit:
For those of you in the EU: http://eu.battle.net/sc2/en/forum/topic/5116951946#1
Update 8/18/12:
Show hide terrain in region for player. This could help with maps that end up being laggy because of draw distance problems, in first or third person. With a feature like this we could optimize what is visible for a player at any given time.

Show skybox regardless of draw distance. This is pretty self explanatory.

Additionally the ability to copy paste instances in user data would be nice, I know this can be done in xml view but it would be nice in the detail view too.

Update 8/11/12:
More of bugs than anything but xml syntax highlighting doesnt want to turn off (ie anything with highlighting stays highlighted). While xml syntax highlighting is on scrolling with the mouse causes the scroll bar to go nuts flying up and down.

----
Add detection for right clicking on dialogs please! This could be very useful for custom action bars or item systems. Right clicking to auto use something or left clicking to move it etc.

The ability to get the date/time either from local computer or realm time would be amazing. This could be all kinds of useful.

I realize these are more about functionality in game than actual editor stuff itself so...

It would be nice to have some conversions for getting user data to say change an integer into the instance name.

IE: To get the "Field" in a user data function the only options are "User data (User Instance), User Data Instance and User Instance From Reference" I tried the reference but it didnt seem to work however converting an integer to string in that spot works.

And not to spam, but this from the EU post would be amazing:

WaRadius-
A native Send Actor Message For Player Group function to perform actor changes that are visible to specified players. There is a workaround described by Renee ( http://us.battle.net/sc2/en/forum/topic/2191101410 ), but a native function would be nice.
My suggestion:

http://us.battle.net/sc2/en/forum/topic/6246877035

@Above me:

I agree, right-click detection on dialog items would be very useful.
I work Primarily in the Terrain and the Data Editors, and would like to have a way to warp water to better simulate a stream going downhill. Also I would like to manipulate each individual square.
WaRadius-
A native Send Actor Message For Player Group function to perform actor changes that are visible to specified players. There is a workaround described by Renee ( http://us.battle.net/sc2/en/forum/topic/2191101410 ), but a native function would be nice.


Hmmm actually the way I described in that thread is old. I got a much better and efficient solution last year, which actually allow you to send ANY message for Player Group instead of just show&hide.

I only made a chinese version tutorial of it though
http://bbs.islga.org/read-htm-tid-53755.html

But I added it into my public mod: GAx3, so every one could use it without need to learn how to do it:
http://www.sc2mapster.com/forums/resources/project-workplace/27296
http://www.sc2mapster.com/forums/general/general-chat/34564
Well, is this a wishlist thread that you can make your wish list?

Hmmm, ok. I have plenty of them.

A new UI Hookup function "Hookup Unit Group Icon Dialog Item"

  • So, in 1.5 we can hookup most standard UI by "Hookup Standard Dialog Item", we can hookup trigger dialog item by "Hookup Dialog Item", we can hookup the customized unit status bar by "Unit Status Dialog Item". But it seems we cannot directly hookup specified unit group icons in the unit group panels.

    What I want to do is reproducing a user experience in WC3: Cast ability on unit by targeting on the unit's icon. I wish to hookup the icons of every unit in the panel, then attach a "Unit Target" dialog item on each of them. So that these icon can be targeted as the units themselves. I can hookup evey single slot of the inventory container panels, so I thought I can do so to the unit group icon panel.

    The problem is, when I was browsing the SC2layout files, I found the the InfoPaneGroup panel doesn't even have any defined unit group icon frame as its subframe. All the unit icons in this panel seems to be generated at runtime via the game logic itself. So I can't find ways to hookup them, the situation is competely different frome the inventory container panel, and more like the unit status bars.

    So, if there is any way to allow us hookup and modify every single "unit group icon", it would be very helpful.

  • The ability to modify Hero Skill Points at runtime (Effect or Function).

  • SC2 Editor is better than WC3's in different ways. But the hero support seems relative short. We can't modify hero's current skill point like we could in WC3 (We can use update or CatalogFieldValueSet(), but it affect every hero who use the same Learning ability).

    The ability to modify the amount of Hero Skill Points on the fly would allow us to create items like "Skill point tome" or some "extra skill point" quest rewards, just like the Rexxar campain in TFT.

  • The ability to "unlearn" an learned ability on the fly

  • Another Learning ability related thing. When I was trying to make a "talent reset" system to unlearn all learned abilities, I found that I need to simulate all the ability learning system.

    The issue is, the "set ability level" function only allows me to set the level of the ability, but the ability level in script is 0 based, so if I set the level to "0", it's actually it's first level, so I can't reset it to the "haven't learned" state with this function. I can hide the ability, but the leaning button would still display "learn lv 2", so that's not help.

    We can recreate items like "Tome of Retrain" in WC3 with this feature.

  • Customlized damage type & customlized unit filter type

  • Well, honestly, I'm trying to create a WC3 mod. I simply need more unit Attributes (which could be detected directly by unit filter) other than the default Armored, Structure, even I rename them to Spell Immune, Ethereal, Summoned... The amount of default Attributes simply not enough. Currently I'm using special buff to stand for these Attributes. But they cannot directly be detected directly by unit filter, so it's become complex when I reproduce the abilities in WC3(I need to add more validator into them).

  • The ability to change the mouse cursor on the fly.

  • Well, I know it can be done if you use the "mouse move" event to capture the location of the mouse, and create image on it. But the event is laggy.

  • MousePosX ()/MousePosY ().

  • The mouse move event is just laggy. And most time we do not need to track the mouse move, but just want get the current position of the mouse. So, a way to instantly get current position of the mouse would be great!

  • X chance to do Crit Strike” Behaviors.

  • In my personal Mod, I used a 1-charge “Damage Takenx2” buff to do a Crit Strike, but it is still not perfect enough.

    Currently, if we set the “DamageResponse.Location” field of CBehaviorBuff to “Attacker”, the “DamageResponse.ModifyFraction” field would be ignored. So if T1 could make the ModifyFraction field works under attacker location, it would be very easy to do “X chance Crit Strike” buff.

  • =================


    The ability to get the date/time either from local computer or realm time would be amazing. This could be all kinds of useful.

    I realize these are more about functionality in game than actual editor stuff itself so....


    I second it. It would allow us to create Farmville like games :)
    And here are two things I think their chance is very low, but would revolutionary impact the game if they could really be introduced.

    "Travel back in time"?

    Well, but since we can "travel back in time" in Replay system (and it is said the Hots would support "Multiplayer replay viewing"), I think it is not compeletly impossible to do similar things in real games.

    "Join a middle game"?

    It's a feature of Diablo series game. Image you can start a rpg game, and you can have your friends you as you are playing rather than have to wating in the robby till every one is in their slot. Even if you dropped when you are playing with your friends, you can rejoin the game to continue. That what we called a "Online Game".

    With the "Resume game from replay" feature of hots, I think this isn't compeletly impossible either.
    There are a few features I would like to see in the editor. Since I find myself using quite a few words, I will only post one for now. Please
    allow map dependencies to include mods imported with the Import Module

    One would be able to import a mod document to a map, then add the file that is in the map's internal directory tree as a dependency. A map could contain within itself the specialized mods it depends on. This would allow map makers and especially map teams to better use mods as an organizational tool, without worrying about consuming too much of their battle.net (file number) allocation by publishing many components to a single map. There is some overlap here with the Sections feature of the Overview Manager, but I find Sections to be lacking, particularly with their exclusion of Data Module objects. I could request an upgrade to Sections, but I imagine (with limited certainty) my suggestion to be simpler to implement, and because the Editor's display of data from dependencies is already defined, I know exactly how to imagine the collective data showing up.

    As a concrete example, I'm currently working together with a close friend on a simple map, for which we have found it useful to generate some map data in xml format using hand-made templates and a few hundred lines of Java. Putting this generated data in a separate mod document has a few advantages, including the ability to override pieces of it in a way that is clearly indicated within the editor. This is a case where we are using a mod as an organizational tool, and we wish we didn't have to upload two documents to do so.

    As a hypothetical example, suppose I were developing a large map including tens of unique hero units with five or six levelable abilities each, and I had some underlings helping me create heroes. Since the hero units would necessarily have at least a minimal amount of Data Module information, Sections as they stand could not be used to coordinate the map team, and parallel development of heroes would be inconvenient, at best. My suggestion, or appropriate updates to Sections, would enable my hypothetical hero developers to each work in a separate map component that could be smoothly inserted into the map and updated in any order at any time.

    Furthermore, in this same hypothetical, heroes have enough unique data that I could seriously consider putting each hero in its own mod file, where it would be tidily encapsulated with all its Data Module information, any triggers used for its abilities, any custom art/sound it used, etc. This would beat individual developer mods by allowing anyone on the team to be assigned responsibility for updating any hero and allowing developers to quit without the team requiring much reorganization, if they stop having time for the project. It would also let me effortlessly port individual heroes to other maps or distribute them to the public (given, that as the project head I would be understood to have that right), if I should feel so inspired at any time.

    In this example, allowing dependencies to reside in the map's directory tree would reduce multiple-upload concerns significantly. Using several mods and publishing each of them would either consume much of my allocation or require the mods to be publicly usable (if published individually by the various team members). It would be almost infeasible to publish a separate mod for each hero.
    Alright, here are the first points that I had in my mind. I might add alot more in the future. I tried to avoid things that were already mentioned alot before, like server-side banks, better editor performance or lower battle.net delay. I also would love to see all this, but I think we have heard all this often enough.

    ========================================================

    Add the possibility to link mutliple maps together by using script. At the moment, its possible to switch maps by using the corresponding trigger action, however, this just works in singleplayer.
    I assume it doesnt work in multiplayer since there is no way to guarantee that all players have the next map on their HDDs. Therefore all players that dont have the map would be dropped once the map changes.
    The solution for this problem would be smth like map-packs: You could upload multiple maps at once to battle.net, as a "map pack". This map pack would contain all needed maps that are linked together via script. Once a player joins one of the maps from the map pack, he/she automatically downloads all content in this map pack. (This would work like it does for dependencies right now - if you play a map that uses dependency X, all players need to download this dependency before playing).
    This would allow to create awesome games consisting of multiple maps, like large campaigns or RPG maps with dungeons.
    ___________________________________________________________________________

    Improve the GUI -> Galaxy "compiler". Currently, alot of unnecessary stuff gets compiled into galaxy script, like empty else blocks or additional brackets, what makes the script larger and slower. If the compiler gets improved, it will effect all maps in a good way (better performance and faster downloading time).
    In addition, add advanced options to the compiler (they could be turned on/off):

    • Remove whitespaces
    • Obfuscate code (Shortest possible function/variable names etc)
    • Remove auto-generated comments (like "//variables")
    • Include GUI comments into galaxy script

    When having a large script, removing whitespaces and comments would make a huge difference in size, as an example. Obfuscating code would help protecting the source code from cheaters that use MPQ-Editors.
    ___________________________________________________________________________

    Make it possible to use boolean values as conditions directly, without having to use a "comparison" in GUI. This makes no sense for boolean values, since it makes the code longer and slower. It also takes additional clicks for each required boolean check.
    It just makes no sense to check if a boolean equals true or false, since this comparison returns a boolean aswell. Why cant we use it directly, like all other programming languages (even galaxy itself) allows it?
    ___________________________________________________________________________

    Add generic dynamic lists to the trigger editor: Currently we have "Unit Group", but why cant we have dynamic data-structures like this for all important data-types? In alot of cases you need a dynamic amount of entries, so currently you always have to deal with arrays to accomplish this, which obviously have a maximum size and needs alot of additional work. We also dont have the possiblity to build our own dynamic data structures since there seems to be no way to use pointers in galaxy.
    Its not necessary that this lists cover each single "fake" GUI data type (like Dialogs for example, which are just ints), but it would be awesome if all "real" datatypes would be supported.
    I would also like to point out that the missing dynamic data structures really make it harder to be within the global variable memory limit, since you always need to ensure that there can be enough entries without going to large in size.
    ___________________________________________________________________________

    Improve the galaxy script editor. The only thing it currently does is giving you a simple text-box where you can type in, together with some syntax hightlighing. However, this alone isnt really enough for a decent programming IDE. What about auto completion? What about useful information, like function documentation (just like in GUI)?
    The current galaxy IDE within the editor has forced many people to use third party tools to be able to script in galaxy properly. I know that the Editor mainly focuses on GUI, but it would be nice if it would have some additional support for more advanced scripters.
    ___________________________________________________________________________

    Add the possiblity to change fog for specific players, just like lighting. Together with the dynamic lighting it would be possible to create amazing athmospheres for different map regions, like caves, forests etc. This isnt possible if fog can just be changed globally for all players, since different players might be on different regions on the map.
    ___________________________________________________________________________

    Allow dialog modification for specific players, just like for dialog-items. (Like move, set size, ...) Currently, if I would want to resize a dialog for a specific player, i would have to create a dialog array to have one dialog per player. However, this costs alot of memory space, since not only the dialog needs to be an array but also all the dialog items within it.
    ___________________________________________________________________________

    Add some sort of LOD (Level of detail) system to the engine, that could optionally be turned on/off. This would be helpful when creating 3D Games, like shooters or RPGs. Currently map makers have to use a quite low farclip to maintain high fps while in 3D mode, a LOD system would allow us to use a higher farclip, resulting in much more viewing-distance without losing FPS.
    ___________________________________________________________________________

    Add the possibility to attach dialogs to the mouse cursor. This would make stuff like "drag move" for custom interfaces possible. I know that its possible to get the mouse X and Y position, however this doesnt exactly match up the custom UI interface (meaning dialog coordinates are different from mouse coordinates) and also suffers from battle.net delay, what makes it pretty much unuseable online.
    ___________________________________________________________________________

    Add the possibility to attach models to the mouse cursor, that would be displayed in the game world. This would make stuff like custom cursor splats possible, for example when creating a custom spell system or other systems that require mouse clicks within the world and cant/dont want to use the data editor for some reason. Again, I know its possible to get the XZY world coordinates from the mouse cursor, but it suffers the same problems as above (Battle net delay, needs a loop etc).
    ___________________________________________________________________________

    Add the possibility to disable/change unit collision via triggers.
    ___________________________________________________________________________

    Add the possibility to disable trigger errors for specific functions or even specific parts of a function. Sometimes you have trigger errors that are just annoying and cant be fixed without alot of work, while they dont really cause any problems. However, this errors spam your trigger debug window so you cant really see the important errors that you are searching for.
    Disabling trigger error messages completly isnt a solution since you still want to be able to see other trigger errors that could cause problems.
    ___________________________________________________________________________

    Add the possibility to create doodads via triggers. Its possible to create the corresponding actors, however the problem is that they dont have any collision. This causes alot of problems when trying to create a dynamic terrain for maps, since you have to find ways to add collsion to this created actors.
    ___________________________________________________________________________

    Improve map protection. Currently, everone who played a map on battle.net can use a special tool to search for the file on his computer (thats hidden in some cryptic folders) and change its file extention to .sc2map.
    Using a MPQ editor all maps files can be opened, and the map script aswell as other assets can be extracted.
    With premium content coming up its necessary to protect the peoples work in a better and more secure way, since otherwise "free to play" copies of premium maps could be released, or work could be copied for own use.
    ___________________________________________________________________________

    It would be nice if the patch notes would cover editor changes a little bit more detailed. Sometimes stuff changes but the mappers dont even notice it until someone lucky discoveres it. New features are cool but useless if nobody knows they exist. I noticed it already got alot better with the 1.5 Patch notes though.
    Mille, some of the stuff you want is actually already doable:
    08/12/2012 01:47 PMPosted by Mille
    Allow dialog modification for specific players, just like for dialog-items. (Like move, set size, ...) Currently, if I would want to resize a dialog for a specific player, i would have to create a dialog array to have one dialog per player. However, this costs alot of memory space, since not only the dialog needs to be an array but also all the dialog items within it.

    To do this its easier to make the actual dialog a full screen empty dialog and use images for your dialog box and just attach things to the image as you would a dialog. It probably wont work for everything but for me it works pretty well for my menus so I can move the dialog items per player etc.
    08/12/2012 01:47 PMPosted by Mille
    Obfuscate code (Shortest possible function/variable names etc)

    I did this by accident on my map just go to any gui function and click its name at the bottom uncheck the Based On Name script identifier box and type in your obfuscated name for it like "i8r" or whatever. You can still have the full name (in GUI) but it will be obfuscated in the finished code. I don't know if the map someone downloads has any of the gui extras but I don't believe so.
    Make it possible to use boolean values as conditions directly, without having to use a "comparison" in GUI. This makes no sense for boolean values, since it makes the code longer and slower. It also takes additional clicks for each required boolean check.
    It just makes no sense to check if a boolean equals true or false, since this comparison returns a boolean aswell. Why cant we use it directly, like all other programming languages (even galaxy itself) allows it?

    Make a new condition, check the Operator box in the Options portion. Give it a parameter of type Boolean, Name that parameter whatever you want (and if you want it obfuscated or different uncheck the Based On Name box and give it a new name). Next type this in the custom script code part:
    #PARAM(b)
    The "b" is whatever your booleans script name is in my case it was just "b". Now when you put in a condition you will have a new one called Boolean which should work just like you want it to.
    08/12/2012 01:47 PMPosted by Mille
    Improve the GUI -> Galaxy "compiler". Currently, alot of unnecessary stuff gets compiled into galaxy script, like empty else blocks or additional brackets, what makes the script larger and slower. If the compiler gets improved, it will effect all maps in a good way (better performance and faster downloading time).

    As far as the empty else brackets, this is a part where you can make your own "If > Then" statement. Make a new action with the option Sub-Functions in the sub functions types put in an "If" and "Then" the "If" will have a Function Type of Conditions (click the if and its at the bottom) and the "Then" will have "Actions".
    Next in the custom script part put in this:
    if (#SUBFUNCS(If," && ")) {
    #SUBFUNCS(Then)
    }

    The "If" and "Then" are the names of the sub-funcs like before you can shorten these by unchecking the Based On Name box though I don't think it matters. In the first subfunc after the "If" the ", && " is what to put between each of the conditionals.
    To do this its easier to make the actual dialog a full screen empty dialog and use images for your dialog box and just attach things to the image as you would a dialog. It probably wont work for everything but for me it works pretty well for my menus so I can move the dialog items per player etc.


    I know that there are workarounds for this, however i would just like a native way better.

    I did this by accident on my map just go to any gui function and click its name at the bottom uncheck the Based On Name script identifier box and type in your obfuscated name for it like "i8r" or whatever. You can still have the full name (in GUI) but it will be obfuscated in the finished code. I don't know if the map someone downloads has any of the gui extras but I don't believe so.


    Same here. It would be an insane amount of work to do this for all existing functions. Also it wouldnt guarantee the shortest possible names.

    Make a new condition, check the Operator box in the Options portion. Give it a parameter of type Boolean, Name that parameter whatever you want (and if you want it obfuscated or different uncheck the Based On Name box and give it a new name). Next type this in the custom script code part:
    ...


    This is pretty cool and works perfectly! Nice to know that. However, I still think a native way would be more than helpful. I work with the editor since the beta and didnt know this. Thanks anyway.

    As far as the empty else brackets, this is a part where you can make your own "If > Then" statement. Make a new action with the option Sub-Functions in the sub functions types put in an "If" and "Then" the "If" will have a Function Type of Conditions (click the if and its at the bottom) and the "Then" will have "Actions".
    Next in the custom script part put in this:
    ...


    This isnt really an option, since it doesnt allow to add an else part later. In addition this is a very special solution that nearly nobody knows about and it would be alot of work to replace all if then elses without else part by this own function.

    I think the compiler should really be able to make simple optimizations like leaving out empty else blocks.
    The whole point of this is that ALL maps benefit from an improved compiler, without having the mappers to do anything about their code.

    This isnt really an option, since it doesnt allow to add an else part later. In addition this is a very special solution that nearly nobody knows about and it would be alot of work to replace all if then elses without else part by this own function.

    Well, what I do is just copy paste the "if" components and the "then" components to a new if then else if i need to :P
    08/12/2012 04:46 PMPosted by Mille
    This is pretty cool and works perfectly! Nice to know that. However, I still think a native way would be more than helpful. I work with the editor since the beta and didnt know this. Thanks anyway.

    Well, the natives are nothing more than premade versions of this really. I know where you're coming from but I think some of these aren't included to prevent people from messing them up maybe? Anyways yes I agree with all of what you say, just thoguht I'd put in the few things that I've done to make my life simpler.
    Well, what I do is just copy paste the "if" components and the "then" components to a new if then else if i need to :P


    Well... you have to agree that this isnt optimal. :P

    Well, the natives are nothing more than premade versions of this really. I know where you're coming from but I think some of these aren't included to prevent people from messing them up maybe? Anyways yes I agree with all of what you say, just thoguht I'd put in the few things that I've done to make my life simpler.


    Sure, I didnt want to derail your post or anything like that, in fact it was very helpful.

    Just wanted to point out that all my above points are still valid even though there might be (complex) solutions for some of them. This thread should be improving the editor for everyone and making it easier to use and more powerful, that said, lets get back to topic.
    Suggestion: Enable the in-game recording functions
    Often times, me and my development team will want to create some sort of demo video to show to the community. Unfortunately, there are not any free and high-quality video recording systems. Even if there were, it would be significantly easier to record in-game footage if we could use the "Start Recording" actions. Unfortunately, the action is currently restricted, meaning only blizzard maps can use it. I can totally understand the potential abuse or misuse of the action (For example, filling up people's hard drives when you record in a published map). If the action was only allowed to be used in local tests (or after for some of confirmation from players in the game), it would allow mapmakers to record their projects much faster. It would also allow players who can't record at all (either due to a lack of knoweldge, lack of software, or lack of money to purchase software) to make videos of their maps, increasing the popularity of both the individual, the map, and the starcraft mapping community in general.
    Editor Layout & Performance

    To elaborate on our discussion in irc;

    The data editor's layout needs optimizations and improvements made to how it presents information. For my initial provided example, I gave the example of Editor - Description, which is a unit's tooltip, and Unit Name, being on entirely opposing ends of the table and data view. Both of these elements are UI elements, and they are directly related, so they should be organized together.

    The goal with our attack on the layout of the editor is to group related information together and make the most prominent and important information more readily accessible. If I am changing a bunch of unit names and descriptions I have to scroll back and forth constantly. This impacts workflow and makes the editor more difficult to break into for new users.

    Additionally, the editor's performance is very bad. You're already aware of the redraw issues, for which, if necessary, I propose an option to force load all ui elements of the editor on startup. I'd rather have the editor use more RAM if it meant being always snappy and reliable. Currently, changing tabs and inputting info just takes way too long. In either case, there's no reason the editor should be slow.

    Proposals on Layout

    Layout is critical to the editor. We are trying to expose more information than we had in Brood War, but if the layout is very poor, the game ends up being a lot more difficult to create custom content in than brood war. This isn't necessarily because making content is more complex, but rather because the amount of information we are displaying is strewn about haphazardly and makes finding what we want difficult.

    We currently have Table view and Detail view. Both of these are disorganized in varying degrees. When looking at the Unit table, examples like unit description and name are easy to pick out. When looking at the detail view, problems are compounded a lot further.

    Our overarching goal with any and all changes to the data editor is to make it present its vast amount of information in a malleable and recognizable manner. It's easy to say thing like, "group related information", but what are our goals with this?

    Before I begin analyzing the sc2 editor's layout, I'd like to analyze one of our Brood War editors, Datedit.

    Figure 1-1 - http://img188.imageshack.us/img188/8866/guide0.jpg

    This is Datedit, an editor for Starcraft: Brood War. It interfaces with much less information than sc2's editor, but still a vast amount. The important things I'd like to talk about with this editor are how it groups information. The small, but large enough, input boxes, the collection of related information in their own quadrants, and the workflow this interface permits.

    (This editor didn't edit TBL files, so we can't change unit strings here. One thing I'd like to have had changed in it.)

    Basic attributes, like health, shields, armor, are all grouped up nice and tight. Chances are if we're changing something related to health or armor, we want access to all of those elements in one go. Less often used, but still attribute-related stuff, like Cargo space, are easily accessed below the more important values.

    Figure 1-2 - http://www.gameproc.com/meskstuff/imgursucks/EDITOR1-0.jpg

    This is a screencap of sc2's editor with the detail view pane set on the same sort of attribute window we saw in Datedit. The differences are obvious. First you've got the got reflex that it's not as "pretty", in which the values are kind of scattered haphazardly all over the place, but we (more importantly, seeing as this is probably unfinished) have a major disorganization of how information is presented.

    The first and most dominant thing we see is Cargo Overlap Filters. Probably not something our go-to gut reflex tells us to change when we flip into a new unit. The rest of the information is all over the place, with death timers and stuff just kind of lopped in this giant confusing pile.

    If we look at the table view, we see a very similar story. In fact, I'd wager all the "Detail" view is, is a parse of the table view that dumps it into a window, given that the values seem to be very similarly (dis)organized.

    http://www.gameproc.com/meskstuff/imgursucks/EDITOR1-0b.jpg

    The table view is a lot more malleable to the user because the data is more compacted and, at first glance, organized better. But the problematic organization still exists, its impact is just a lot less than the detail view.

    The table view just seems to list stuff alphabetically. This is useful for a proof of concept kind of deal, but when we want to actively organize information, alphabetical won't cut it. We need to have related information gathered together.

    Re-organizing the Detail View

    All concepts we employ in re-organizing the detail view can be extended to the table view, because both layouts, though different in prose, are nearly identical in the information they are presenting and how it's represented.

    The cargo should not be on the top. We should refer to the Datedit screenshot and put our most important, basic attributes at hand's reach. Health, armor, shields, regeneration values, joined by their upgrade amounts and then eventually the other stats like revive time, should be grouped and intentionally laid out at the very top instead of just left to collapse into this lardy mess. Cargo, and other such things, can then be placed below these elements in their own sort of grouping of related elements.

    Figure 2-1 - http://www.gameproc.com/meskstuff/imgursucks/EDITOR1-1.jpg

    Here is the "unit" tab in the Detail view. We have two sections with major attributes but they aren't side-by-side.

    Figure 2-2 - http://www.gameproc.com/meskstuff/imgursucks/EDITOR1-1b.jpg

    And here, through decades of intense photoshop training, I have proposed a very simple change that can easily echo into the Table view. It may not seem like a significant change, but we want to present related information as fast and easily as possible. I find we are naturally drawn to read left to right, not sure why I'd have that kind of an idea, but ultimately we want our related options to be horizontally appropriate as well.

    In table view, we're talking vertical-only organization. The goal with table view would be to abandon alphabetical listing and instead list things by relationship. We want less scrolling and value-hunting, more content creation. Currently the values are unnaturally organized and so finding stuff is unnatural. We want the editor to feel more natural to use and read. This will make a more pleasant experience for our user. If it were me, I'd consider something like this for table view;


    - Name/Description/Tooltips
    - Stats/Weapons
    - Flags/Attributes
    - Graphic/movement
    - Tech
    - Glossary stuff
    - ...


    Of course, every individual may have their own way they want the information to be laid out. I can only speak from my perspective, that of a person who works on immensely large total conversions and campaigns, where I must process vast amounts of information very quickly and efficiently be able to single out my data and selectively work on it. Currently, the editor's layout fights me every step of the way. Finding the data I want is troublesome, and the slowness of moving between that data renders basic editing tiring and exhaustive. In the perfect world we'd have a customizable interface for the editor.

    Simply putting related information closer together, and forgoing alphabetical layout in favor of relationship layout, would go a long way to not only making the experience of existing users more pleasant but also make the editor more encouraging to new users who otherwise struggle to find what they want. Currently, the detail view is just tacked on and needs a major overhaul to compete with table view.

    Typing in the XML editor has lag to it, going in and out of dialogues all requires waiting, and this compounds the existing problems.

    Here's another screen cap from Datedit.

    Figure 3 - http://img25.imageshack.us/img25/5894/guidez3.jpg

    Weapon editing is something of a convoluted mess inside Starcraft 2, especially since duplication is thoroughly bugged beyond belief. Even if you can identify and crunch the bugs duplication causes, sometimes weapons have 2-3 "trees" of related information that all need duplication, and their information is scattered across many different tabs.

    This problem would need some serious consideration to tackle, especially if we wanted all of our information laid out like Datedit. But I think it's perfectly possible, and something you should consider the implications of. While I don't expect you to overhaul the editor data editor, some quicker or more efficient means of reaching the values we want without sc%**!@# through trees of files would be much appreciated. Perhaps improving how the tree "sees" related files (beams are a good example) would be a good start.

    The datedit example provided here is a way of kind of showing a bridge between elements. We have our unit information that we showed previously, and now weapon information. Brood War's weapon information depends on a lot different things, like the all-mighty iscript.bin, flingy.dat for movement and turn radius, and images.dat that gives some newbies grief when they first start. With starcraft 2, you have movers, damage, ranges, actors, everything all split apart, each with their own potential for improvement.

    Features

    We should only consider new features when the performance and layout have been tackled. But here's some features I would personally find very helpful.

    - Remove the Blizzard-only flag on some triggers.

    I'd like to be able to play movie files, organize savegames, and other related things in my campaign. Currently, these are arbitrarily restricted. I understand security concerns, but if you want to encourage custom content, you need to stop trying to restrict us. There are many ways to break maps or mangle sc2 without these functions.

    - Allow the cutscene editor/model preview to interface with models.

    I'd like to be able to change the material settings and texture entries for models without having to go in and out of 3ds max. Currently the only other way to do that is with hex editing. The editor can see these values, so it should be able to change them. You could extend this to cover editing particles and I would be a very happy man.

    - Add Computer AI defense functions to triggers.

    The Campaign AI does not defend itself when attacked. To get this functionality I have to use a library that adds some defense priority to attack waves. Inelegant and ineffective. The AI triggers need to be more fleshed out and support defense, even if it's as simple as a boolean that makes the AI defend itself when attacked or not.

    - Improve the pipeline for bringing in voice acted dialog.

    I'm a voice actor. I like cinematics and dialog. I don't like clickwaitclickwaitclickwaitclickwaitclickwait to get a 3 second line into a cinematic after it was imported. Perhaps have some kind of function that creates sound data entries for sound files inside the import menu using the same settings of a template file you select, basing the new sound entries names off of the filenames. More of a personal gripe, and I'm like the only voice actor in starcraft 2, so I can understand if you just ignore this.

    This is just a primer post and, pending further discussion, I may elaborate further.

    Regards.
    Hey so mapper channels should direct you to a channel of the mappers choice. Can you guys add support for this? In example, channel "LotR" is a conglomerate channel within a genre. I think that there should definitely be a parameter that changes which channel one enters upon clicking "join channel" on the Arcade UI!
    First off I am a terrible writer, So sorry in advance.

    I would like 3 things,

    1. Stats+ field where we can create stats and link them to the new user types,

    2. A flag to turn off and on an experience bar for any unit.

    3. A new field on each unit for Experience

    As of right now, you have to go through long tutorials most of which are broken, and try to peice together a hero unit. it takes HOURS, and with just these 3 things I can make a hero unit as easily as any other unit.

    This would greatly benefit everyone

    Join the Conversation