Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

UI Overhaul?

An area for discussing new ideas and additions to Oolite.

Moderators: another_commander, winston

Post Reply
User avatar
pleiadian
Deadly
Deadly
Posts: 143
Joined: Mon Feb 20, 2017 2:14 pm

UI Overhaul?

Post 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.
User avatar
phkb
Impressively Grand Sub-Admiral
Impressively Grand Sub-Admiral
Posts: 4657
Joined: Tue Jan 21, 2014 10:37 pm
Location: Writing more OXPs, because the world needs more OXPs.

Re: UI Overhaul?

Post 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!
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6557
Joined: Wed Feb 28, 2007 7:54 am

Re: UI Overhaul?

Post 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.
User avatar
pleiadian
Deadly
Deadly
Posts: 143
Joined: Mon Feb 20, 2017 2:14 pm

Re: UI Overhaul?

Post by pleiadian »

Sounds like a challenge to me 8) Let's do this.
Commander_X
---- E L I T E ----
---- E L I T E ----
Posts: 666
Joined: Sat Aug 09, 2014 4:16 pm

Re: UI Overhaul?

Post 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
User avatar
Svengali
Commander
Commander
Posts: 2370
Joined: Sat Oct 20, 2007 2:52 pm

Re: UI Overhaul?

Post by Svengali »

pleiadian wrote: Thu Apr 12, 2018 7:16 pm
Let's do this.
YES! YES! YES!
jackiebean
Dangerous
Dangerous
Posts: 112
Joined: Wed Jan 18, 2017 2:01 pm

Re: UI Overhaul?

Post 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.
User avatar
pleiadian
Deadly
Deadly
Posts: 143
Joined: Mon Feb 20, 2017 2:14 pm

Re: UI Overhaul?

Post 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.

Thread:
https://bb.oolite.space/viewtopic.php?f=2&p=263120
Post Reply