Thread Tools Display Modes
02-27-11, 06:56 PM   #1
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
New UI Editor Concept (Feedback & Features wanted)

I am developing a new UI editor concept that I believe could have a broad reaching impact on the whole UI modification scene. Basically games that use an XML based UI format all have very similar layouts and ideas. For example a basic button is nearly the same in all XML based UIs. It has a normal image, pressed image, disabled image, size, location, and text. Of course how each separate game stores this in the XML is slightly different, be it either sub elements <size><x>10</x><y>20</y></size> or with attributes <size x=10 y=20 />. No matter how each widget/element/piece is describe in the XML it is still the same data.

What I am proposing is to create an all purpose UI editor that uses scripting based loading/saving for each type. Internally these widgets/elements/pieces are stored in a common format that the program can draw, but with the specialized elements (such as the EQ chat window element) you can call the script to describe how to draw that element. The script will read through the XML file and create a common internal element based on the XML data. Once editing is finished the same script just performs a reverse operation to put the common internal element's data back into the XML and saves it.

By using a common internal format things could be copied and pasted between UIs of different games to create a uniform look and feel. The future goal for a 2.0 would also be script based Live Mode to allow visual testing of the UI.

What I am looking for is some skilled scripters (familiar with angelscript would be helpful) or skilled C++ programmers. I am writing it tailored to Windows right now, but I am using interfaces that will allow cross-platform programing as well. Keep you eyes on this thread for an updates also please leave feedback and feature requests.
  Reply With Quote
02-27-11, 08:39 PM   #2
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,313
To add some complexity to the idea, WoW needs a client restart when adding files to an addon, and ToC changes require a complete logout (as far as to the login screen). Changes to existing addon files (other than ToC) just need a UI reload.

Just something to think about when you get into live editing.

I've had combined experience of 8 years so far with Lua and 5 years with the WoW addon system (XML + Lua + WoW API). If you need help in that area, I'd be willing to offer assistance.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)

Last edited by SDPhantom : 02-27-11 at 08:43 PM.
  Reply With Quote
02-27-11, 08:41 PM   #3
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
Sorry, by live I meant the editor itself will "run" the UI in demo mode. Not inside the game client.
  Reply With Quote
02-27-11, 08:53 PM   #4
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Mod
Featured
Join Date: Oct 2006
Posts: 10,860
But what if your UI elements are created via Lua code?

/edit: I, and many other authors, don't use XML.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

  Reply With Quote
02-27-11, 08:56 PM   #5
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
This is why I need others from all types of communities on board to create the scripts for that game client. Dynamically created elements are certainly possible via scripting. This type of dynamic element may be beyond the 1.0, but it is a possible feature.

**Edit** Saw your edit there. My XML loader works like a tree, moveup/down/left/right, and it has accessors to get innertext and attributes of each element.
  Reply With Quote
02-27-11, 09:02 PM   #6
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Mod
Featured
Join Date: Oct 2006
Posts: 10,860
Originally Posted by adam4813 View Post
**Edit** Saw your edit there. My XML loader works like a tree, moveup/down/left/right, and it has accessors to get innertext and attributes of each element.
I'm not entirely certain of how that pertains to my edit.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

  Reply With Quote
02-27-11, 09:03 PM   #7
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
You don't work in the XML directly is what I am getting at. Unless I don't understand what you mean by "I, and many other authors, don't use XML." If so could you elaborate. Just so you know I have never modified the WOW UI at all. I have had lots of practice with EQ/2
  Reply With Quote
02-27-11, 09:19 PM   #8
Seerah
Fishing Trainer
 
Seerah's Avatar
WoWInterface Super Mod
Featured
Join Date: Oct 2006
Posts: 10,860
XML is only one half of addon scripting in WoW, and it is entirely optional 99% of the time. If you look around at this site, or your WoW addons, you will find that many of them do not have an XML file. Even WoW's UI code and addons are only half XML, the other half being Lua.
__________________
"You'd be surprised how many people violate this simple principle every day of their lives and try to fit square pegs into round holes, ignoring the clear reality that Things Are As They Are." -Benjamin Hoff, The Tao of Pooh

  Reply With Quote
02-27-11, 09:26 PM   #9
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
Ah, I see. This is why I am getting feedback early on. So I can make changes now rather then further on when its too late. I have chosen Angelscript as my scripting language of choice due to it being native C++ and not C like Lua. I think I may add support for Lua as well side-by-side so Lua scripts can be run as well. Thoughts on this?
  Reply With Quote
02-27-11, 11:54 PM   #10
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
Progress.

I am implemented the editing window commands right now. These types of command allow the script to set up and modify the window itself (add menus, add function handlers to different items, set the window title, and open the OpenFileDialog). I need to know in what other ways should the script be able to change the editing window. I am planning a Toolbox feature and context menus for right-clicking.

Other working aspects include an ElementManager which stores a mapping of each element with adding/removing of elements. Elements themselves can have their properties set, though they do nothing right now. Elements also can have children elements added and their parent element set.

The XML loader is fully done with the scripting so you can navigate the full file with common sense functions.
  Reply With Quote
02-28-11, 05:57 AM   #11
sakurakira
A Chromatic Dragonspawn
 
sakurakira's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 151
Originally Posted by adam4813 View Post
Ah, I see. This is why I am getting feedback early on. So I can make changes now rather then further on when its too late. I have chosen Angelscript as my scripting language of choice due to it being native C++ and not C like Lua. I think I may add support for Lua as well side-by-side so Lua scripts can be run as well. Thoughts on this?
I feel like I should further emphasize Seerah's comments regarding Lua. If you're writing this program based mainly around World of Wacraft and you don't have Lua in it, you're just wasting you're time and effort.

Just looking through my addon folder, there are many great addons, complete with an in-game config that do not use XML at all, they are completely done with Lua. The addons that do have XML files have maybe a couple; all the rest are Lua.

There are also addon systems (for lack of a better word), like Ace that use a combination of Lua and XML that addon authors can use. Ace is sort of a collection of code segments for premade widgets dealing with everything from zone information to button templates for action bars. I don't know if you want to try and work that sort of thing in or not.

Also, you're general idea from the various posts here seems like it's more of an addon creator rather than a UI editor. Addons themselves can do many things, not just alter the UI. I'm not sure if that is just a semantics issue or you were only thinking of the overall UI that a player sees and interacts with. For example, there is an addon called Ackis Recipe List whose sole purpose is to show your profession recipes, the ones you have/don't and where to get them (drop/vendor/etc); nothing really to do with the UI.
__________________
Arise, my champion!
  Reply With Quote
02-28-11, 07:07 AM   #12
hankthetank
A Theradrim Guardian
AddOn Author - Click to view addons
Join Date: Jul 2009
Posts: 64
I believe could have a broad reaching impact on the whole UI modification scene
No offense, but I think that's a hasty assumption based on your description. Good Xml editors are a dime a dozen and as already stated most time you spend when creating WoW addons is with writing lua code. If I wanted to create some templates or static layouts with Xml I could easily open up Visual Studio or XmlSpy, load UI.xsd and start hacking in my code. I can't really think of any way to improve the basic features every Xml editor has to offer. Also there is already WoW UI designer which has a WYSIWYG frame designer if that's what your going for.

Probably the best thing that you could focus on is reading the factory interface files from the game data to offer functions like inheritance graphs or a "jump to definition" menu item which would require (patched) MPQ handling.

Eventually the only thing that you could score with is a really good lua editor in the long run. Integrated real-time debugger, intellisense with WoW API and global functions, a good context help & API documentation, support for common libraries. Good luck with that.

Oh, and on a side note: I don't think the potential market for cross-game uniform UIs is that big.
  Reply With Quote
02-28-11, 10:51 AM   #13
Mischback
A Cobalt Mageweaver
 
Mischback's Avatar
AddOn Author - Click to view addons
Join Date: Aug 2009
Posts: 221
Originally Posted by hankthetank View Post
Oh, and on a side note: I don't think the potential market for cross-game uniform UIs is that big.
QFT. I don't have a uniform UI for most of my chars^^.

I was not able to get your point, really. Because a WoWUI consists of Lua, not XML. XML may be the vehicle to create frames and stuff, but all engines are done in Lua, so without Lua-support (and for your case this means a simulation of the WoW-API), you can not provide anything more than any other XML-editor can do.
__________________
  Reply With Quote
02-28-11, 10:59 AM   #14
Dawn
A Molten Giant
 
Dawn's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 918
I think he was not limiting the editor to just WoW, but also to other games, like Rift. Which also uses lua and potentially xml, as it seems.

Anyway, I second what hankthetank said.

Eventually the only thing that you could score with is a really good lua editor in the long run. Integrated real-time debugger, intellisense with WoW API and global functions, a good context help & API documentation, support for common libraries. Good luck with that.
__________________
Rock: "We're sub-standard DPS. Nerf Paper, Scissors are fine."
Paper: "OMG, WTF, Scissors!"
Scissors: "Rock is OP and Paper are QQers. We need PvP buffs."

"neeh the game wont be remembered as the game who made blizz the most money, it will be remembered as the game who had the most QQ'ers that just couldnt quit the game for some reason..."

  Reply With Quote
02-28-11, 11:05 AM   #15
Othgar
"That" Guy
 
Othgar's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2010
Posts: 228
Along with everything else mentioned above if this is going to be an editor for multiple games, you would have to patch or update your editor constantly just to keep up with the API changes. The WoW API changes slightly with every magor patch. As I'm sure most other games do as well. It seems like you would have to spend most of your current game time just to keep up with the changes. Not to mention adding support for new games as they come out.

Not trying to discourage you, but it is something to keep in mind.
__________________


  Reply With Quote
02-28-11, 11:09 AM   #16
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
Actually with using scripting for the game specific stuff I wouldn't need to patch at all. Just a few scripts changes and done. It is meant to be for multiple games not just WoW, but I see WoW is more complex then just using XML to describe the UI and using Lua to manipulate those elements. Anyone who could aid in helping me better understand these concepts I would love the chat.
  Reply With Quote
03-03-11, 06:10 PM   #17
Crissa
A Flamescale Wyrmkin
 
Crissa's Avatar
Join Date: May 2008
Posts: 136
The interface to Second Life uses mostly XML with some of their own code language (although most of their scripting runs serverside rather than client).

So it is possible to re-use frame elements translated into each client's preferred settings - things like links and URLs and chat elements and actions all exist in all the platforms.

Not sure the reason to do it as a UI editor, but I could see a market for a WoW-like client for Second Life or Rift. (It's so hard not to confuse that one with the other game Rifts. @-@) Everyone in animation now use basically the same two or five editors (with the majority using Adobe Flash) despite having different sources (hand drawn, procedural, 3d, 2d) and completely different outputs (frame rate affects the display of animation heavily, as does bandwidth, whether it's for film or television or downloadable interactive content like games.)

-Crissa
  Reply With Quote
03-03-11, 11:22 PM   #18
adam4813
A Murloc Raider
Join Date: Feb 2011
Posts: 8
If it uses XML for its UI then the editor could be scripted to load and save it. All the scripts do is load and save the files and assist in setting up the drawing. Most frames in all games use the same base properties to display: location, size, text, image, and color. However the editor does expose the ability to draw lines, boxes, circles, and images to the script to aid in the drawing process. Text is will be done by another interface as you have alignment, font, and color to deal with and it will best be done by another system.

**EDIT** Not much work is being done right now or for the next few days as I am at GDC in San Francisco right now.
  Reply With Quote

WoWInterface » Developer Discussions » General Authoring Discussion » New UI Editor Concept (Feedback & Features wanted)

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off