WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   General Authoring Discussion (https://www.wowinterface.com/forums/forumdisplay.php?f=20)
-   -   New UI Editor Concept (Feedback & Features wanted) (https://www.wowinterface.com/forums/showthread.php?t=39110)

adam4813 02-27-11 06:56 PM

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.

SDPhantom 02-27-11 08:39 PM

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.

adam4813 02-27-11 08:41 PM

Sorry, by live I meant the editor itself will "run" the UI in demo mode. Not inside the game client.

Seerah 02-27-11 08:53 PM

But what if your UI elements are created via Lua code?

/edit: I, and many other authors, don't use XML.

adam4813 02-27-11 08:56 PM

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.

Seerah 02-27-11 09:02 PM

Quote:

Originally Posted by adam4813 (Post 230779)
**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. :confused:

adam4813 02-27-11 09:03 PM

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

Seerah 02-27-11 09:19 PM

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.

adam4813 02-27-11 09:26 PM

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?

adam4813 02-27-11 11:54 PM

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.

sakurakira 02-28-11 05:57 AM

Quote:

Originally Posted by adam4813 (Post 230788)
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.

hankthetank 02-28-11 07:07 AM

Quote:

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.

Mischback 02-28-11 10:51 AM

Quote:

Originally Posted by hankthetank (Post 230817)
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.

Dawn 02-28-11 10:59 AM

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.

Quote:

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.

Othgar 02-28-11 11:05 AM

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.

adam4813 02-28-11 11:09 AM

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.

Crissa 03-03-11 06:10 PM

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

adam4813 03-03-11 11:22 PM

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.


All times are GMT -6. The time now is 07:25 PM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI