Make Elemental "Skinnable" (XML system for menus and user interface) [Modding][Interface]

Consider using a data-driven system to style the interface and create new windows

Elemental would benefit from a skinnable interface that allows custom menus and entirely new menus to be created without programming changes.

I don't know the internals of Elemental's engine. Maybe this is already possible.

There are many reasons to do this in a game. One of them is that it greatly extends the possibilities available to modders and even the real development team down the line if the interface is easily editable. This is stardock, so we all probably know that skinnability is really important to some of us, but it's not just about being able to change the background to pretty colours. Being able to modify the interface is key to being able to create many kinds of systems, including shifting the kind of game you're playing from (for instance) 4X strategy to Dungeon-crawling Adventurer.

NWN2 (which by itself was not a perfect game) did try to innovate with a very strong, data-driven interface system. It enabled users to implement whole new features that simply weren't possible in the original system. Modders created everything from new menu bars, Dungeon Mastering tools, to readable books and minigames just from having access to the interface.

It also enabled the developers to revist the game in subsequent expansions and readily create brand new interfaces without signifigant work.

For example, compare the below images.

 

The first image is the base game with no modifications. In the second image, the developers have created an overland map system and integrated it into it a classic, story-telling style of gameplay. The game style has changed from "Diablo point and click" to "Livingstone's choose your own adventure." You can see a conversation window giving the adventurers options for dealing with approaching Kobolds. You can also see a further window where the skill roll to spot the kobolds is made. Not only is a static map shown, but through clever usage of lighting and scaling, a large overall area is displayed that gives a feeling to the location the adventurers are in. Supplied are full images to get a better idea of what is being shown here:

http://journals.rpgnexus.net/content/imgs/NWN2_XML-Driven-Interface_01.jpg
http://journals.rpgnexus.net/content/imgs/NWN2_XML-Driven-Interface_02.jpg

It is not only possible to create unique systems, but entirely new sub-games, or minigames, when the right approach is taken. Civilization 4's approach led to the creation of an in-game cardgame that players could play, that was integrated into the popular FfH 4. You can't even tell that's been done using Civ4 - that's how much power being able to modify the interface has.

These are a few good examples of the kind of gameplay variety modders can explore when they have access to a robust skinning system.

7,474 views 7 replies
Reply #1 Top

Everything in Elemental already uses DesktopX.

http://www.desktopx.net

You can download that and mod the UI right now. Just find the .dxpacks.  Same for GalCiv.

Reply #2 Top

Hello Frogboy,

That's really neat. I thought you would have something like that but wasn't sure. Are you saying the whole API of DesktopX 3 is going to be addressable in Elemental? So that I could just drop in a modified .dxpack, scripts and all, and the widgets would be there?

I'll try out DesktopX and see what I can come with. Thank you.

Reply #3 Top

Quoting Frogboy, reply 1
Everything in Elemental already uses DesktopX.

http://www.desktopx.net

You can download that and mod the UI right now. Just find the .dxpacks.  Same for GalCiv.
End of Frogboy's quote
Enlighten me, please.

We are going to be able to mod UI with "notepad" and be happy? Using DesktopX is going to make it all easier? Right now I have no reason to buy DesktopX but I'd not mind to buy it (Standard? Pro?) for modding purposes. (it's more or less cheap and as long as it doesn't require a Master Degree to learn to use it XD )

Reply #4 Top

Are you saying the whole API of DesktopX 3 is going to be addressable in Elemental?
End of quote
No, just the placement information is really used, but graphically it gives you an amazing amount of power to change to feel of the game.

Reply #5 Top

So do we need the Client, Standard, or Pro? Because right now, $70 for the ability to skin a game... it's a little much.

Reply #6 Top

Quoting MagicwillNZ, reply 5
So do we need the Client, Standard, or Pro? Because right now, $70 for the ability to skin a game... it's a little much.
End of MagicwillNZ's quote
I don't think that Client will cut it. https://www.stardock.com/products/desktopx/features.asp The "Export widgets as gadgets (stand-alone programs)" feature must be really awesome to suppose that price (bit more than a CE of a game here).

Come on Stardock, a quick video of: "Modding an Elemental UI with notepad* and modding that same UI with DesktopX".

* or whatever else and free that can be used for modding UIs

Reply #7 Top

Quoting BoogieBac, reply 4

Are you saying the whole API of DesktopX 3 is going to be addressable in Elemental?No, just the placement information is really used, but graphically it gives you an amazing amount of power to change to feel of the game.

End of BoogieBac's quote

Thank you for the clarification. Knowing that skinning the game will be easy makes me happy, even if we don't get all of the DesktopX API at our disposal (which would be incredible).

I hope that you will considering putting in some analogs of the following into the system, so we can really make so mindblowing stuff in Elemental.

UI3DScene Renders a 3D scene of the character model within the element.
UIButton A simple clickable button element, mouse events can be scripted.
UICollapsable Creates a collapsable panel that can be hidden or visible.
UIFrame A highlighting frame used to indicate button states etc
UIGrid  An element that arranges other sub-elements to a grid.
UIPane A flat pane which can be used as the substance for a window or object

Even those six things could allow somebody to mod in everything from a "barbershop" where you can change your characters hair by clicking UIButtons that link directly to Python scripts and change the model, to a game of chess between Channelers, to a Sidebar that display special information for an in-depth "sim-world" mod, giving social unrest, crime rate information polled from script. A Civ4-style "Culture/Science/Tax/Intrigue" bar.

Here's an example of a readable book where clicking on the buttons in the side corners changes the pages. Impossible without UIbutton and UIPane, but about twenty lines of python code if those exist.