Page 1 of 6

(Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 4:02 am
by phkb
Gnievmir's original Vimana HUD has earned a lot of praise for the stylish layout of the graphical dials and other UI bells and whistles. However, I always struggled to choose it for a number of reasons:
  • It seemed to be designed with a single font in mind. Using a different font leads to a lot of text overrunning the graphical bounds of the UI, or not aligning correctly.
  • It also seemed to be designed with a very specific group of OXP's in mind. If those OXP's are missing then parts of the UI were effectively useless.
  • When viewing any of the F5-F8 pages during flight, or when going to the F2 screen after pausing, the HUD would overlap parts of the screen, making some things difficult to read.
  • The Ship info and Target info panels are useful, but only a limited number of ships would be shown as an image.
  • The "Mode" information for certain primable OXP equipment items was limited in what it would show.
  • The jump distance indicator on the fuel gauge would only show after the Travel Module was purchased.
  • An "uber" laser was included in the original Vimana HUD, as well as a targeting equipment item. Both were better suited to separate OXP's.
So, I embarked on a tweaking session, which turned into a design/layout session, which turned into a much bigger update than I was expecting. However, I feel the result is worth it. Here's a complete breakdown of everything I did:
  1. I divided the UI up into two, with only the scanner and core dials and gauges showing whenever a non-viewscreen view is selected.
  2. I repositioned some components to allow for some greater flexibility with other items. I repositioned the injectors icon, the fuel scoop icon, and the fuel warning icon to be inside the speed, cargo and fuel gauges respectively, which allowed me to move the shield capacitors icon, shield cycler icon and EEU icons to the left side of the UI. This then allowed enough room to add an additional gauge which is used for aft armour (at present, this is only used by Ship Configuration, but if other OXP's deploy aft shields it can be configured to use that as well).
  3. I darkened the background of the UI substantially, making it less transparent, and therefore better able to cope with high-glare environments. But in case anyone was particularly attached to the "light" version, it can still be used as an option (selectable from an F4 interface screen).
  4. I reworked much of the text alignment code to ensure all the displays would work well with every font available. So columns will line up, text will be centred where required, and text items will not go beyond the bounds of the UI (mostly!).
  5. I looked at how it works with other OXP's and tried to expand the possibilities and remove the locked-in feeling with some of the UI elements. In particular, the Anti-missile system and the Self-Repair system, which had their own lines on the UI. I switched this for a customisable system to allow for future OXP integrations, and added a couple of extra options to select from. There is now a F4 interface page, "Vimana-X HUD Settings" where the different options can be selected.
  6. I expanded the "MODE" display for primable equipment, finding as many OXP's as I could that make use of this feature and adding the appropriate text.
  7. I added alert icons inside each of the items that can cause alerts (altitude, cabin temp, energy, shields), and a missile warning icon in the combat HUD, to complement the larger warnings that appear at the top of the screen. If you find the top screen icons too intrusive, they can be turned off via the interfaces page, leaving just the smaller alert icons on the HUD. Also, I removed the text from the alert images, leaving them as images, and added text to the HUD, so that the warnings will appear in whatever font the player has chosen to use.
  8. I added a bunch (300+!) of extra ship images from a variety of sources, so chances are a ship image will display in the left panel in the majority of cases. I also redid the existing images, because I couldn't reproduce the style of the original. What I've used is the wireframe version of all the ships, which carries a nice blueprint/schematic style to the ships. If I've left out your favourite ships, just let me know and I'll include them in a future release.
  9. I changed the way the "scan" component works. In the original HUD, different parts of your ship would be highlighted individually, as if a "scan" was taking place. However, given the number of new ship images I was adding, it would be a mammoth task to divide each one up into four to keep that system. So I implemented a new "scan" that will work for whatever ship is displayed.
  10. I changed the colour of the jump distance indicator in the fuel gauge, to make it stand out more.
  11. I changed the source of the targeted ship's weapon, taking it from Combat MFD's data, so that it matches what you see in that MFD, but also so that some information isn't revealed before the player has any right to know.
  12. I added an icon for the naval energy unit, to make it distinct from the normal one.
  13. To aid with startup timeout issues, I made the various timers start in sequence, and play a small sound when they turn on, to indicate the systems are starting up.
  14. I added a 10-MFD version of the HUD, as well as reducing the size of the lower left and right MFD's on the 12-MFD version, to prevent them from overlapping the UI on a 16:9 display. If you use the 12-MFD HUD, and your screen dimensions cause the lower left and right MFD's to overlap the UI, and it doesn't make your eyes twitch, then everything is fine! But if you find small details like that really annoying, and you really need all the MFD's you can get, I'd recommend the 10-MFD version. I won't judge.
  15. I turned on the non-linear scanner and ultra zoom options on the HUD.
  16. The Alt gauge will now reset when entering interstellar space.
  17. Only equipment that is visible on the F5 page will be shown on any damaged equipment list.
  18. Lots of small bug fixes, code tweaks and performance improvements.
  19. I removed the targeting equipment item and the "uber" laser. It's now just a HUD. If you really want to keep those items, you should keep the original Vimana HUD OXP installed. There should be no conflicts between the HUDs.
You can download this now from the expansion manager, or from this link: VimanaX_HUD.oxz
Wiki page is available here: [EliteWiki] Vimana-X HUD

Link to the original Vimana HUD thread here: Vimana HUD BB Thread

If you have previously used the Vimana HUD, and purchased the Target, Travel and Ship modules for it, you will have those modules added automatically when you install this HUD.

All credit to Gnievmir for the original design, and to dybal for getting the original cleaned up and working with HUD selector.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 5:26 am
by hiran
That is an extensive change.

I tried to install the Vimana-X HUD. While doing so I started wondering: what happens if I still have the VimanaHUD 2.07 installed? Which one would get used?

Also the VimanaHUD lists a lot of optional expansions - I believe those are the ones it collaborates with if available. Although I do not yet know what to best do with this information, I believe Vimina-X would collaborate in the same way?

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 5:51 am
by phkb
hiran wrote: Wed Aug 09, 2023 5:26 am
what happens if I still have the VimanaHUD 2.07 installed? Which one would get used?
They are separate HUDs. You can have both installed, and use HUD selector to pick which one is active.
hiran wrote: Wed Aug 09, 2023 5:26 am
Also the VimanaHUD lists a lot of optional expansions - I believe those are the ones it collaborates with if available. Although I do not yet know what to best do with this information, I believe Vimina-X would collaborate in the same way?
I haven't taken away any functionality (other than removing the laser and targeting equipment items, which you can still get from the original HUD). All I've done is broaden what OXP's it works with.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 6:24 am
by Redspear
Sounds great phkb, looking forward to trying it out.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 6:48 am
by Cholmondely
Superb! Thank you for adding my favourite stations (Killer Wolf's beauties and Strangers World versions) to the Target Module! And the extra warning symbols.

Image

What is the new (to me) icon on the bottom left inside the green "targeting box" in the middle of the viewscreen? (The red reticle)

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 7:02 am
by phkb
Cholmondely wrote: Wed Aug 09, 2023 6:48 am
What is the new (to me) icon on the bottom left inside the green "targeting box" in the middle of the viewscreen? (The red reticle)
incoming missile warning indicator. Because I gave you the option of turning off the large warning indicators at the top, I needed a small version of that warning that would do the same job.

Don’t try to make sense of the screenshot by the way - I used the console to force some of the lights on, just so you can see them on screen. You’ll notice there’s no missile in the scanner, and the front and back shields are full with the warning lights on.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 7:12 am
by hiran
phkb wrote: Wed Aug 09, 2023 7:02 am
Don’t try to make sense of the screenshot by the way - I used the console to force some of the lights on, just so you can see them on screen. You’ll notice there’s no missile in the scanner, and the front and back shields are full with the warning lights on.
Reminds me of a car's dashboard where all the lights light up when turning on ignition - just as a functional test. :-)

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 7:22 am
by Cholmondely
I'm sorry, I should have mentioned this earlier, but the only major lack of the Vimana HUD which I have noticed over the years is a "precision indicator" for the joystick.

Since it is a good HUD for newcomers (all those warning signs, especially altitude), who might not enjoy the superior-spline-setting-skills which avoid the need for precision options, I feel that it is more of an issue for the Vimana than for other HUDs.

If you do decide to add one, could you also write up brief instructions for how us dumb pilots can tweak other HUDs and do the same?


Minor issue: might it be an idea to add selection of ultra-zoom & logarithmic scanner options to the Vimana-X settings on the docked F4 screen? Again, most newcomers will not be aware of the need to do so via the installed HUD-selector equipment piece using the mode button.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 8:31 am
by phkb
Re: joystick precision indicator - shouldn’t be a problem. I’ll have to find a good icon to use… (suggestions welcome!)

Actually, I didn’t realise HUD selector had the option to change the scanner settings! How about that? As for putting the options, I’m running out of room. I might need to redesign it a bit.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 8:37 am
by phkb
Actually, re the icon, I’ve got an idea. Should be clear, I think! New version on the way.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 9:07 am
by Cholmondely
phkb wrote: Wed Aug 09, 2023 8:31 am
Actually, I didn’t realise HUD selector had the option to change the scanner settings! How about that? As for putting the options, I’m running out of room. I might need to redesign it a bit.
So how do you change the scanner settings?

Why can't the "Vimana-X HUD settings" options screen just run over to a second page, like all the others do? You could even include a little description explaining that Ultra-Zoom allows 1x,2x,4x,8x,16x rather than 1x,2x,3x,4x,5x magnification options and that logarithmic "removes the need to change the scanner zoom" or whatever it does. Again, useful for the newer players.

And possibly include a mention that the darker version is "glare-proofed".

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 9:51 am
by phkb
Cholmondely wrote: Wed Aug 09, 2023 9:07 am
Why can't the "Vimana-X HUD settings" options screen just run over to a second page
Laziness, actually! I was hoping to keep the screen to one page, so I don't have to worry about which page you're on, etc etc. I'll see if I can still get away with one.
Cholmondely wrote: Wed Aug 09, 2023 9:07 am
So how do you change the scanner settings
I edit the HUD file and change the values! But it's not something I change pretty much ever. I put the setting I like best in and leave it at that.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 10:38 am
by phkb
Well, I think that was the fastest turn-around for a 1.1 release! Available now:
  • Adjusted the F4 options page to better handle all options being visible.
  • Added options for setting Ultra Zoom and Non-Linear scanner to the options page.
  • Added joystick sensitivity indicator to the HUD.
  • Added ship images for FdL Lightspeeder, Stormbrewer, Kracken, Draven ships, Armory items, Phantom, Spectre, SKS Plasma Mk1, Heavy Metal ships, ADCK Bulk Haulers, Saiph Interceptor, Rigel Tactical Bomber, Star Destroyer, Star Destroyer Shuttle, Tie Fighter and Tie Interceptor.
  • Some code refactoring.

Re: (Release) Vimana-X HUD

Posted: Wed Aug 09, 2023 11:53 pm
by phkb
Bug fix release 1.2 is out now. Main problem was that all the equipment items were being awarded to the player regardless of whether you'd purchased the original Vimana HUD ones.

Re: (Release) Vimana-X HUD

Posted: Thu Aug 10, 2023 2:30 am
by phkb
Cholmondely wrote: Wed Aug 09, 2023 7:22 am
If you do decide to add one, could you also write up brief instructions for how us dumb pilots can tweak other HUDs and do the same?
Here are the steps to add a joystick sensitivity indicator to any HUD that doesn't have one.

Open the HUD's plist file (should be in the Config folder of the OXP).
There should be a section labelled "dials", kind of like this:

Code: Select all

    dials = (
    ... various settings
    );
This section is an array of dictionary items. You can tell it's an array because of the round brackets, and each of the items is separated by a comma. An array is like a numbered list of items, and in this instance, the items are dictionaries. You can tell they are dictionaries because they have curly braces (ie {}). A dictionary is a group of key/value pairs, each separated by a semi-colon.

The reason all that is important is because we are going to add a new dictionary item to the array. The easiest and safest way to do that is to add it either at the very top or the bottom of the array. Let's put ours at the top, because that's easier to show.

So, you need to add something like this:

Code: Select all

    dials = (
    		{	// stick sensitivity indicator
			alpha		= 0.7; // this controls how opaque or transparent the item is on the screen. Between 0 and 1. 0 means invisible
			selector	= "drawStickSensitivityIndicator:"; // this tells the game what we want to show here
			x		= 40; // this defines the x co-ordinate where the item will be shown on the HUD
			y		= 115; // this defines the y co-ordinate where the item will be shown on the HUD
			y_origin 	= -1; // this defines the origin point for the y-axis. -1 means the bottom of the screen.
			height		= 6; // this controls the height dimension of the item
			width		= 6; // this controls the width dimension of the item
			viewscreen_only = 1; // this controls whether the item will be only visible on the view screen
		},
		... other dictionaries follow this one...
	);
The dictionary above hasn't listed the "x_origin" value. That's because we are going to be using the default value, which is 0, which means the centre of the screen.

After adding the item in, you then need to position the item on the HUD where you want it to be. You'll be fiddling with the X and Y values to do this. So, interpreting the above settings, on the Y axis we are going to be moving upwards from the bottom of the screen 115 points, and on the X axis we will be moving right from the centre of the screen 40 points.

We can then save the HUD file, run Oolite, and see whether we got the positioning right. If we didn't we have to close Oolite, tweak the X and Y values, and try again.

I hope that helps a bit, anyway.