[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4280: ob_start(): output handler 'ob_gzhandler' conflicts with 'zlib output compression'
Oolite Bulletins • UI Overhaul?
Page 1 of 1

UI Overhaul?

Posted: Wed Apr 11, 2018 7:52 pm
by pleiadian
While the UI in itself is simple but working, I'm wondering if it is possible to up the ante a bit on that one. I would volunteer to find out if I can give it a fresh new look... I'm thinking of a more modular UI that can be arranged by the player as he wants. The UI can be switched into and back out of.

I was thinking of something along the lines of i3wm or awesomeWM, a tiling environment. Imagine having Market on the left and Map on the right for a more effective and quick route-planning. Much like in those desktop managers, one could decide in which direction the next tiling happens, on what exactly should appear in that next tiling.

Also I'd like to make it "overlap" the current flight situation. Say, F9 brings up the UI and F9 hides it again - but it appears transparent so that you can still see what's going on in around your ship. Only in Red Alert situations the UI cannot be shown as you need to concentrate on the current alert level situation.

Maybe with this some cool funky effects can happen, like in-flight refit of your ship - as long as you carry other guns in your cargohold or so. But that's really taking it a bit too far now.

I guess what I'm saying is that I'd like to experiment around on new UI ideas and implementations when I have the time.

And for that to happen, I'd very much like pointers to the locations in the source where UI rendering actually takes place. I have experience with OpenGL, 2D in OpenGL and Shaders (oh and Objective-C too), so I guess I'd find my way around. Any pointers would be appreciated.

Coding platform for me would be Windows 10 as of the moment (working on other Windows-bound projects right now).

Thanks for reading.

Fly safe.

Re: UI Overhaul?

Posted: Wed Apr 11, 2018 11:56 pm
by phkb
I think the "GuiDisplayGen.m" file does most of the heavy lifting for all GUI screens. "HeadUpDisplay.m" does all the HUD stuff. Most of the content for the various GUI screens are controlled through functions within "PlayerEntity.m", "PlayerEntityContracts.m", and "OOJSMission.m". I think. Don't quote me! Retractions are possible!

Re: UI Overhaul?

Posted: Thu Apr 12, 2018 9:34 am
by another_commander
If you can pull this off pleiadian, you will be officially declared my hero and I will consider renaming all Coriolis stations to Pleiadian in my install of the game. This should give a hint of the order of magnitude of the project you are about to undertake.

Firstly, the UI code is very particular. It has a few nice parts and I like some of the ideas I see in it, but overall it is very convoluted and very difficult to use. You will soon find that out for yourself :-). Just changing the layout of existing screens can be a good challenge. Secondly, the design of the UI is such that the game recognizes one active screen at a time and adjusts its behaviour and controls according to which screen it is shown. So, your F9 proposal for example, would have to take into account how to handle the cursor keys while displaying the market screen or the short range chart or how it would handle key input in general when viewing the long range chart in planet search mode.

I think that basically we are talking about a full rewrite of a major part of the game here, exactly because the UI is designed from its roots to be like the old Elite. In addition to the files suggested by phkb, I would think that extensive changes to PlayerEntityControls.m, Universe.m, maybe core JS scripts that handle gui screen changes and probably a bunch of other files will be needed. It is doable for sure, but at a large cost in time and frustration.

Good luck and we can help if we can, but remember: it's hard.

Re: UI Overhaul?

Posted: Thu Apr 12, 2018 7:16 pm
by pleiadian
Sounds like a challenge to me 8) Let's do this.

Re: UI Overhaul?

Posted: Thu Apr 12, 2018 8:19 pm
by Commander_X
pleiadian wrote:
Thu Apr 12, 2018 7:16 pm
Sounds like a challenge to me 8) Let's do this.
... and if that's not enough I can offer the challenge++: stick the freetype2 in the mix, while you're at it :D

Re: UI Overhaul?

Posted: Fri Apr 13, 2018 2:05 pm
by Svengali
pleiadian wrote:
Thu Apr 12, 2018 7:16 pm
Let's do this.

Re: UI Overhaul?

Posted: Sat Apr 14, 2018 3:19 am
by jackiebean
i think the word we are looking for as far as GUI goes is "intuitive". not that it is completely counterintuitive, but the older games like "privateer" for example, seemed to be convoluted in terms of menu navigation etc. there is a slight learning curve to oolites menus and GUI. taking that learning curve down to the level of a purple dinosaur would not really hurt. i welcome any menu/gui changes, as long as they are easy to navigate.

Re: UI Overhaul?

Posted: Sat Apr 14, 2018 4:23 pm
by pleiadian
So... I made it officially my challenge. Primarily because I want a_c to have Pleiadianis Stations instead of Coriolis Stations in his install :D :D . In all seriousness, I began with experiments.

I opened a thread over in Discussion, inside which I will document my progress with screenshots. If I have anything usable, I'll provide the code and explain what changes I have done.