Author Topic: Ingame UI for commandline settings discussion  (Read 22580 times)

0 Members and 1 Guest are viewing this topic.

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Re: Ingame UI for commandline settings discussion
Yes, this is what I'm trying to challenge. Obviously FSO shouldn't need to ship with any additional files to be able to run, but I think requiring extra assets to enable functionality that was never in retail to start with is pretty reasonable and the SCP shouldn't be going to these lengths to avoid doing so.

I'm not sure that you fully grasp the nuance of the discussion.  Perhaps it would be helpful to compare it to two features that do require the MediaVPs to be enabled -- scrollable command briefings and the apply-loadout-to-the-entire-wing button.  These both require new interface art, which is supplied in mv_core.vp.  If the new graphics are not present, they will not be shown on-screen and you will not be able to use the new features.

This is acceptable because these two things are minor tweaks to an existing interface.  It's no great loss if the features are disabled, because they didn't exist in retail.  (Well, the lack of scrollable command briefings would be inconvenient for briefings that run off the screen, but that is usually handled by opening the mission files to read the text.)

This new settings screen is a different sort of animal.  It is not the interface that is being upgraded for its own sake.  It is the ability to set options without exiting the game and restarting.  The interface is not intrinsic to the feature itself.  Heck, the problem could be solved by adding a console-based settings system with text prompts, but that isn't very user friendly.

In a nutshell, this discussion is about providing a user-friendly way to modify options that does not depend on external assets.

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: Ingame UI for commandline settings discussion
People seem to be assuming that this only applies to retail. It doesn't.

We're talking about removing the commandline settings and setting up an in-game screen for them. And although we've not mentioned them, I can't think of any good reason why most of the lighting options (-spec_tube etc) shouldn't also be moved to this screen so that they can be altered in-game (unless they are like tables and can only be set on load).

Why doesn't this only affect retail? Cause of the TC's. TBP is no longer in development (nor are Wing Commander Saga or Beyond the Red Line if they ever works on modern FSO). Diaspora and WoD would be forced to rush out new art to allow those settings to work.

So this is not a matter of simply saying "You need media VP's in order to use new FSO features", this is a case of saying "I want a minor upgrade to something which isn't really very important (cause we already have this feature via the command line) to use pretty interface art, so **** the TC's who support this via the command line"
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline BirdofPrey

  • 28
  • Help! I see GIMP in my sleep
Re: Ingame UI for commandline settings discussion
I have to agree with Phantom,  if we can get something good without distributing any extras do so, but don't bend over backwards to avoid shipping ancillary files just on principle.   Do what works best regardless of whether or not you may have to ship some assets.

As for HTML and chromium,  if memory is an issue,  is there another render engine that works better?   I'm confused why you want to use HTML in the first place.   It's designed to render rich content and link to a multitude of other pages,   why use that instead of a markup language specifically for UIs that are actually designed to pass commands to a program (eg. XAML)

There's a lot of stuff in HTML that I just don't see a use case for, so having all of them could be detrimental to the resource footprint of the program.  I also have concerns over how exactly it's going to work since HTML is designed to retrieve and render resources, not control program flow.   Is it about familiarity with HTML and coding for it or is there another reason to use HTML?


. I tried looking for retail assets that I could drop in but a lot of interface art blocks are "anchored" to the bevels of the interface backgrounds which is really annoying.
ALL of the buttons are technically part of the background.   Another image then defines hotspots in the image each with its own color (shades of off-white) and the program links each color to a function and mouse over and clicked button images which are overlayed as-needed into the defined space.

That's why any changes to the current way Freespace handles the UI are going to be problematic.

"I want a minor upgrade to something which isn't really very important (cause we already have this feature via the command line)
That sentiment is how bad code and paradigms pile up in programs.
Fixing up the UI and allowing for settings to be changed in game doesn't mean we have to take away the original options (at least, not right away).

Aside from that, can the campaign restoration project's scope be expanded to provide some support to keeping TCs up to date if/when features get depreciated?
The Great War ended 30 years ago.
Our elders tell stories of a glorious civilization; of people with myths of humanity everlasting, who hurled themselves into the void of space with no fear.

In testing: Radar Icons

 

Offline m!m

  • 211
Re: Ingame UI for commandline settings discussion
As for HTML and chromium,  if memory is an issue,  is there another render engine that works better?   I'm confused why you want to use HTML in the first place.   It's designed to render rich content and link to a multitude of other pages,   why use that instead of a markup language specifically for UIs that are actually designed to pass commands to a program (eg. XAML)

There's a lot of stuff in HTML that I just don't see a use case for, so having all of them could be detrimental to the resource footprint of the program.  I also have concerns over how exactly it's going to work since HTML is designed to retrieve and render resources, not control program flow.   Is it about familiarity with HTML and coding for it or is there another reason to use HTML?
Chromium is a full browser stack and not just a HTML renderer. That means we will have support for CSS and JavaScript which is how the control flow would be handled.

 

Offline BirdofPrey

  • 28
  • Help! I see GIMP in my sleep
Re: Ingame UI for commandline settings discussion
and why do we want/need a full browser?

(note HTML rendered tends to imply CSS and javascript due to the way HTML relies on them)
The Great War ended 30 years ago.
Our elders tell stories of a glorious civilization; of people with myths of humanity everlasting, who hurled themselves into the void of space with no fear.

In testing: Radar Icons

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
and why do we want/need a full browser?

(note HTML rendered tends to imply CSS and javascript due to the way HTML relies on them)

Why wouldn't we want this? You mentioned yourself how FS2's UI works, and you're probably aware that it's a complete mess of hardcoded stuff. Getting support for an HTML renderer would mean that TCs or mods could fully customize their UI withoiut being shackled to 1024*768, or :V:'s idea of control flow.
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns

 

Offline BirdofPrey

  • 28
  • Help! I see GIMP in my sleep
Re: Ingame UI for commandline settings discussion
Well I already mentioned the fact that stuff exists specifically for make UIs.
HTML is not one of them.  It's goals are different, it's feature set is different.

It's not that I don't think a more flexible system is necessary (I am fully aware the FS interface is a byzantine mess from an earlier time), I am just confused as to why HTML would be the way to go for it, and more pertinently, why a full browser is the way to go.  Seems heavier than what's needed.

(on a side note what language is FSO programmed in/ what is the runtime environment?)
The Great War ended 30 years ago.
Our elders tell stories of a glorious civilization; of people with myths of humanity everlasting, who hurled themselves into the void of space with no fear.

In testing: Radar Icons

 

Offline m!m

  • 211
Re: Ingame UI for commandline settings discussion
Well I already mentioned the fact that stuff exists specifically for make UIs.
HTML is not one of them.  It's goals are different, it's feature set is different.
:wtf: HTML is designed to create UIs, that's pretty much all it does. This may not be what the language was designed to do but nowadays that's all it does. If you have a good alternative then please let us know.

 

Offline BirdofPrey

  • 28
  • Help! I see GIMP in my sleep
Re: Ingame UI for commandline settings discussion
A web page is not a user interface.  It's a document that contains rich content and links to other web pages.
There may be parallels, but they aren't the same.

I am researching alternatives, which is why I asked about how FSO runs internally.
My initial thought was to at least take a look at QML (QT Quick) which uses javascript and is extensible through C++, and if I am not mistaken uses OpenGL
If FSO uses .net (can't remember if it does, but I think it's a no) there's XAML.
I believe we also have a couple people here familiar with wxWidgets.

Anyways, HTML can certainly be used, I am just wondering if there was a specific reasoning for using it in particular (eg. already did it, might as well use it, or most people already understand HTML), and whether or not other options have been considered or explored.


On a side note, do we even need something like HTML?
there's ALREADY the need for javascript for HTML and my initial suggestion, and work is already being done to implement SVG support.  That alone could be workable, javascript interprets commands to the engine and SVG is responsible for graphics rendering.
At the very least, due to having to control program flow, most of the heavy lifting will be done in javascript, so making that work is of more importance than making the HTML part work.
« Last Edit: May 08, 2015, 03:20:05 am by BirdofPrey »
The Great War ended 30 years ago.
Our elders tell stories of a glorious civilization; of people with myths of humanity everlasting, who hurled themselves into the void of space with no fear.

In testing: Radar Icons

 
Re: Ingame UI for commandline settings discussion
So this is not a matter of simply saying "You need media VP's in order to use new FSO features", this is a case of saying "I want a minor upgrade to something which isn't really very important (cause we already have this feature via the command line) to use pretty interface art, so **** the TC's who support this via the command line"

This is a pretty good argument for keeping the command-line flags, not for crippling the options interface.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline AdmiralRalwood

  • 211
  • The Cthulhu programmer himself!
    • Skype
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
And yet this whole thread started because we have too many command-line options and an in-game options menu is one way to cut back on them.
Ph'nglui mglw'nafh Codethulhu GitHub wgah'nagl fhtagn.

schrödinbug (noun) - a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.

When you gaze long into BMPMAN, BMPMAN also gazes into you.

"I am one of the best FREDders on Earth" -General Battuta

<Aesaar> literary criticism is vladimir putin

<MageKing17> "There's probably a reason the code is the way it is" is a very dangerous line of thought. :P
<MageKing17> Because the "reason" often turns out to be "nobody noticed it was wrong".
(the very next day)
<MageKing17> this ****ing code did it to me again
<MageKing17> "That doesn't really make sense to me, but I'll assume it was being done for a reason."
<MageKing17> **** ME
<MageKing17> THE REASON IS PEOPLE ARE STUPID
<MageKing17> ESPECIALLY ME

<MageKing17> God damn, I do not understand how this is breaking.
<MageKing17> Everything points to "this should work fine", and yet it's clearly not working.
<MjnMixael> 2 hours later... "God damn, how did this ever work at all?!"
(...)
<MageKing17> so
<MageKing17> more than two hours
<MageKing17> but once again we have reached the inevitable conclusion
<MageKing17> How did this code ever work in the first place!?

<@The_E> Welcome to OpenGL, where standards compliance is optional, and error reporting inconsistent

<MageKing17> It was all working perfectly until I actually tried it on an actual mission.

<IronWorks> I am useful for FSO stuff again. This is a red-letter day!
* z64555 erases "Thursday" and rewrites it in red ink

<MageKing17> TIL the entire homing code is held up by shoestrings and duct tape, basically.

 
Re: Ingame UI for commandline settings discussion
A web page is not a user interface.  It's a document that contains rich content and links to other web pages.
There may be parallels, but they aren't the same.
And yet, most modern applications' UI are actually web apps using a mixture of html, css, javascript and some other language server-side to make things a bit more dynamic.


Quote
I am researching alternatives, which is why I asked about how FSO runs internally.
*lists alternatives*
Aside from wxWidget, you are suggesting what I'm guessing are markup languages. I assume you are familiar with these, so could you explain what advantages these have over html?


My understanding is that chromium brings a whole host of capabilities while being easy to integrate into the engine. Besides, as you mentionned, there's a a fair amount of people that are familiar with html, js & css, and plenty of tutorials available out there for those that aren't.

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
My understanding is that chromium brings a whole host of capabilities while being easy to integrate into the engine. Besides, as you mentionned, there's a a fair amount of people that are familiar with html, js & css, and plenty of tutorials available out there for those that aren't.

This, to me, is chromium's main selling point that any other solution has to be measured against.
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns

 

Offline m!m

  • 211
Re: Ingame UI for commandline settings discussion
I would also like to mention that a chromium integration into FSO already exists.

 

Offline BirdofPrey

  • 28
  • Help! I see GIMP in my sleep
Re: Ingame UI for commandline settings discussion
Bear with me a bit, I'm just brainstorming here.
Crazy man, throwing ideas at the wall to see what sticks.

A web page is not a user interface.  It's a document that contains rich content and links to other web pages.
There may be parallels, but they aren't the same.
And yet, most modern applications' UI are actually web apps using a mixture of html, css, javascript and some other language server-side to make things a bit more dynamic.
You'll have to provide some examples.  Most programs I am familiar with use whatever UI format is provided by the SDK for a platform (I see a lot of .NET, UIs codded into java programs and GTK, and Qt is also popular).

Quote
Quote
I am researching alternatives, which is why I asked about how FSO runs internally.
*lists alternatives*
Aside from wxWidget, you are suggesting what I'm guessing are markup languages. I assume you are familiar with these, so could you explain what advantages these have over html?
I'm somewhat familiar with .NET (which XAML is a part of), don't know as much about QML.  XAML uses XML syntax, but both are declarative languages rather than markup languages like HTML is.  The advantage is they are designed for this work and are extensible by the programming language they run on top of, and they are actually designed for drawing interfaces whereas HTML is for displaying content and only contains javascript as an option to allow for some interactivity.  The layout engine for rendering web pages also contains a lot of fluff not needed for this purpose.

I'm not saying don't use it, I'm just saying explore your options.  Just because something can be used, doesn't necessarily mean it should be used.


Quote
My understanding is that chromium brings a whole host of capabilities while being easy to integrate into the engine. Besides, as you mentionned, there's a a fair amount of people that are familiar with html, js & css, and plenty of tutorials available out there for those that aren't.
Fair point, and I figured it would come up, although I could have swore someone mentioned Chromium was running a bit slow and bloated under FSO.  With the talk of not breaking retail compatibility how likely is this to increase the memory footprint by an unacceptable margin?

or am I just misinformed and need to remember what I read better?

My understanding is that chromium brings a whole host of capabilities while being easy to integrate into the engine. Besides, as you mentionned, there's a a fair amount of people that are familiar with html, js & css, and plenty of tutorials available out there for those that aren't.

This, to me, is chromium's main selling point that any other solution has to be measured against.
I should point out that's a selling point for HTML, CSS and javascript rather than chromium itself
(I should note, Gecko has it's own interface language, though I would be equally wary of that bloating the executable as chromium)

I would also like to mention that a chromium integration into FSO already exists.
Fair enough.  How does/will it interact with being used for UI purposes?  Isn't programming the hooks to let the javascript actually control FSO yet to be done?

The Great War ended 30 years ago.
Our elders tell stories of a glorious civilization; of people with myths of humanity everlasting, who hurled themselves into the void of space with no fear.

In testing: Radar Icons

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
You'll have to provide some examples.  Most programs I am familiar with use whatever UI format is provided by the SDK for a platform (I see a lot of .NET, UIs codded into java programs and GTK, and Qt is also popular).

Gmail.

Quote
I'm somewhat familiar with .NET (which XAML is a part of), don't know as much about QML.  XAML uses XML syntax, but both are declarative languages rather than markup languages like HTML is.  The advantage is they are designed for this work and are extensible by the programming language they run on top of, and they are actually designed for drawing interfaces whereas HTML is for displaying content and only contains javascript as an option to allow for some interactivity.  The layout engine for rendering web pages also contains a lot of fluff not needed for this purpose.

I'm not saying don't use it, I'm just saying explore your options.  Just because something can be used, doesn't necessarily mean it should be used.

This is an antiquated notion of what a web browser, html, css and javascript are for. All of these things have made massive strides towards making it possible to build applications on them in recent years.


Quote
Fair point, and I figured it would come up, although I could have swore someone mentioned Chromium was running a bit slow and bloated under FSO.  With the talk of not breaking retail compatibility how likely is this to increase the memory footprint by an unacceptable margin?

or am I just misinformed and need to remember what I read better?

There is no reason to invoke the HTML renderer unless it is specifically requested to run by a mod. Also, there are no real limitations on memory use; right now, the most complex FSO missions rarely use more than 2 GB of memory. We have some headroom to play with in that regard, I believe.

Quote
Fair enough.  How does/will it interact with being used for UI purposes?  Isn't programming the hooks to let the javascript actually control FSO yet to be done?

There's a ****ton of work left to do before this becomes anything close to useable.
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ingame UI for commandline settings discussion
How many modders know or would like to know XAML?  Ok, how many know or would like to know the ubiquitous langauge of the web, on both desktop and mobile devices?  HTML has far more appeal than most other options.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 
Re: Ingame UI for commandline settings discussion
You'll have to provide some examples.  Most programs I am familiar with use whatever UI format is provided by the SDK for a platform (I see a lot of .NET, UIs codded into java programs and GTK, and Qt is also popular).
Well, a lot of the programs I've worked with or on are in-house, or destined to a specific client and as such can't be found online, so, on top of my head, I can only point to a few 3rd party tools, such as TestLink, Quality Center or Mantis.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
The notion that HTML is used for displaying content rather than creating UIs is a very wierd one... Those two things overlap and are amongst the same thing. Mobile webpages, specifically, are almost closer to full UIs than ever before. It just so happens that the same code grabs the content and fills the page too.

And yes, what Chief said. I don't want to have to learn yet another language thing just for FS interfaces when HTML is more than capable and I already have a working knowledge of.

Oh and HTML's native linking abilities sound great for linking to different parts of FS's interface.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ingame UI for commandline settings discussion
jQueryUI.  Use it all the time at work.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays