Jump to content

Generic UI?


Chilvence

Recommended Posts

I have some questions about the UI in general:

 

Now that it is pretty much fully fledged, would it be feasible to create a generic, game independant UI, that can be used as an alternative to the original UI? Would such a thing be possible without using CHU/MOS files?

 

There are several reasons why this would be my dream feature, even if it seems a rather boring thing to change:

 

1: banishment of inventory fiddling - far too much time is spent moving things around between slots and characters after every looting/shopping spree, and after 13 years of playing, the novelty has worn off (not only worn off, but fallen from a 13th floor balcony, landed on a bus, causing it to roll over a group of pensioners on a zebra crossing)

 

2: lots of new resolutions/platforms/input methods potentially supported, for which a non scalable mouse centric ui is terribly unsuited

 

3: there is more than one way to skin a cat, ie while the original ui's are very pretty and bespoke and all that, I am very much a fan of simple non intrusive ui, eg half-life style, which would give the game world more of a stage to look pretty on

 

4: the original layouts all suck - which may just be my opinion, but as a way of representing and manipulating the character information, there is much room for improvement. less clicking, less scrolling, less pages, less clutter, less redundancy are all possible improvements.

 

5: interchangablity - gemrb supports all the infinity engine data types from every game, so presumably, it would be conceivable to create mods that, for example, upgrade the rules icewind gate II style. IWD2 character files in BG2 would allow for that nice custom action bar stuff (I know thats not finished, but potentially...)

 

6: make a new game without fussing over interface - I would imagine that anyone with the artistic ability to create game worlds is not the sort of person with patience for ui coding, and having some good foundation ui would mean anyone can start to make a new game just by dumping in their art and a few ARE files, whether glorious 3d renderings or old fashioned fine art backgrounds. It's all DND after all, the ui just serves a purpose and should have a backstage role

 

I have a rather crude understanding of programming, and would love to get to work on this, but it would make me more confident to hear opinions/advice from the dev team. I think it is a logical move though, I am sure one of the main motivations for gemrb is to allow for change :)

 

I have had many good ideas burning a hole in my head over the years, I have just lacked the courage to try and implement them until now. Being able to actually see the guts and how it works has been a great help however.

Link to comment

No, the system cannot create all controls without a .chu.

Or it would be extremely inconvenient.

On the other hand, anyone can create their OWN .chu.

It is easy, GemRB contains some created from scratch (loadscreens).

 

Without .mos files, most of the gui would be bland (or outright ugly to the level of uselessness).

But, you can always create a .mos from a .bmp. It is about 4-5 clicks in dltcep.

Link to comment

Yes, it's possible. I think you can already use bmp and png (if the plugin was built) instead of mos. With quite some work chu could be replaced with a human readable config or much more yucky, be completely hardcoded in the script.

Link to comment

Well, I understand how to make chu and mos files, that wasn't really what I am getting at - I just don't see them as the best solution.

 

Anyway, nothing in gemrb is 'hard coded' in the same sense as when talking about the original game. Hard coded originally meant you can't change something at all without hacking the exe. So the phrase is not relevant to gemrb, since you can change anything you like, the beauty of the code not being locked up in a vault somewhere never to be seen again. That is what the evil game industry does, not modders :)

 

As far as I can see, the feature of chu is to set the position of pre-defined 'hard coded' buttons around the screen and set the file name for their graphics, which I don't find that exiting...

 

I'm probably on my own here then, but I have not yet seen an RPG ui I didn't dislike :D. Being an RPG shouldn't mean you have to unceasingly fiddle with an inventory tetris 'subgame' but yet it exists in some form in every rpg out there. What purpose does it serve?

 

If it is to give information about equipment, well even FPS games can manage that without breaking the absolutely minimal ui mould that started with Wolf3d. If is to manage carrying capacity, surely either your character can pick up an item, or he can't, and that is all that needs to be said about it.

 

Everyone seems to think this is an intrinsic part of what an rpg is about, I think it is an insipid nuisance.. imagine playing tabletop dnd with a scrabble rack and little painted chips for each of your items. Sorry, you cant pick up that plate armor, you'll have to drop that small gold ring. Would it happen? Should it?

 

Sorry if I am boring you guys with the long posts, I just find game ui to be an interesting problem... its a good challenge, can you marry the complexity of rpg games with a simple control interface without watering down either? Some games. Well. Deus Ex 2 anyway - have got it very wrong in the past...

Link to comment

hardcoded was meant as when the code isn't separate from the data. In this sense, chu files are good, but the format is not human readable without help (which also means not easy trackable through version control). And since everything is defined very statically, it is useless if you want to achieve arbitrary resolutions.

It's also true that probably the chu format could just be extended with whatever is required.

 

I don't agree about the ugliness - vector graphics, seamless textures (don't know why mos is a problem for wsm), gradient fills, transparency, all could replace static imagery.

Link to comment

Drudging this back again, here is my dilemma: I want to tweak the ui to have a double row of spell buttons, and the code is flexible enough to do this quite easily, and a single chu file is easy enough to make. Playing like this is fun, and I want to do many more things like this to make playing the game for the 10 millionth time less painful and more flowing.

 

Every single time I play these games, No matter how I try I finish the game with 400 unused potions, scrolls and wands :) - because flicking back and forth to the inventory screen totally murders the carefully crafted game atmosphere, so subconciously I avoid the other pages unless I need them...

 

Now if I want to share these tweaks, I have to modify all the chu files for every resolution in every game, or it will crash. If any other mod changes a chu file, it will also crash... I am perfectly happy to work in the limits that exist, but I can't help think it is inviting unexpected problems.

 

It's easy to call me lazy, but the chu files were only ever meant to support one resolution - 640x480 in Baldur's gate 1, back when that was the norm, and then BG2 comes along and that isn't enough anymore, so instead of making something smarter or scaleable, the devs take the easy option and just make a seperate set of chu files for the limited supported resolutions and simply box in every game screen except the world one :D

 

Anyway, please don't interpret anything I have said as demands or complaints, I am just hoping to provoke some thought.

Link to comment

I don't think anybody would complain about having an alternative to CHU. However, I dont think any of the current devs are willing to spend time developing it. thats not to say that we wouldn't be wiling to help in some way, just that we have other priorities etc.

 

It would have to be an alternative tho; we cannot break CHU compatibility. You would have to do something akin to how I developed support for TTF fonts and more or less copy the end result.

 

how about something XML based? probably would be easier than some proprietary format. Lots of existing parsers out there too.

Link to comment

the crash should be easy to avoid — I guess you mean the bad access when the control isn't found? To get the additional row on every resolution, create it at runtime in the bg2 guiscript (like GUICommonWindows). This would be the same even with a generic ui.

Link to comment
I don't think anybody would complain about having an alternative to CHU. However, I dont think any of the current devs are willing to spend time developing it. thats not to say that we wouldn't be wiling to help in some way, just that we have other priorities etc.

 

It would have to be an alternative tho; we cannot break CHU compatibility. You would have to do something akin to how I developed support for TTF fonts and more or less copy the end result.

 

how about something XML based? probably would be easier than some proprietary format. Lots of existing parsers out there too.

let's not complicate the matter and just use the existing and familiar INI format. It supports grouping too, but I'm not sure about nesting (not that it is clear it would be needed).

Link to comment
the crash should be easy to avoid — I guess you mean the bad access when the control isn't found? To get the additional row on every resolution, create it at runtime in the bg2 guiscript (like GUICommonWindows). This would be the same even with a generic ui.

 

Actually, that was more or less the solution I was looking for. A custom chu file would guarantee trouble with mods, but a code solution could be enabled/disabled. Is there an example of this somewhere in gemrb alread?

Link to comment

yeah, check for example CreateButton in the python scripts. You want something more complicated though and you still need to change the core to populate it.

 

Actually we have a longterm goal to move most of the actionrow stuff (like SetupControls) to the scripts — some of that will be needed for iwd2 anyway.

Link to comment

Thanks, the engine more or less does what I want already with a slight change, but this should give me the flexibility to think about the other additions I want to make.

 

One thing I've wondered for a while, the todo mentions trying to import the iwd2 system to all games, but isn't that system partly dependant on the updated cre format? Have you already thought of a workaround?

Link to comment

I have just read an amusing snippet in the bg2 manual pg 24:

 

Quick Item(x3): You may ready any item in the personal inventory for quick use by R-clicking on any of these three slots and selecting from all items held personally to configure that slot (much as per Use Item). This is the same as the usage of quick spells.

 

Which describes another behaviour I would like to implement. I dare you to make use of this feature in vanilla BG2 :)

 

edit:

 

regarding the fixme in line 325 of inventorycommon.py - rather than worry about where mods will set the open bag screen, why not just go straight to the bag contents? much more user friendly :D

 

I just stuffed an OpenItemWindow() command in there, not sure what else it needs, because it works but spat console error messages

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...