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

0 Members and 1 Guest are viewing this topic.

Offline m!m

  • 211
Re: Ingame UI for commandline settings discussion
He's definitely right about HTML not being a system for defining UIs, though. HTML is a document markup language; it's up to the browser to provide a UI, which can differ radically between browsers.
:wtf: The whole point of the W3C is to standardize the appearance of web pages.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ingame UI for commandline settings discussion
It's true that HTML is a markup language, but CSS is a language for defining precisely how HTML should look, and standards-compliant CSS should look the same across any standards-compliant browser.  Combine that with Javascript and you have a language for applying interactions in a standard way, and you have everything you need for a UI.
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

 

Offline mid_gen

  • 22
Re: Ingame UI for commandline settings discussion
He's definitely right about HTML not being a system for defining UIs, though. HTML is a document markup language; it's up to the browser to provide a UI, which can differ radically between browsers.
:wtf: The whole point of the W3C is to standardize the appearance of web pages.

The web page may look the same, but the UI can be very different. See = implementation of a drop-down list UI control on iOS Safari vs IE11, etc...is what he was driving at.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ingame UI for commandline settings discussion
Yes, default stylings may vary, but again, CSS allows you to standardize that appearance across browsers.  So when we say, HTML, we're not really talking about only the markup language, we're talking about the entire client-side language stack natively supported by any modern browser.
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

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: Ingame UI for commandline settings discussion
Isn't the point about the differences across browsers pretty much moot given that the entire community will effectlvely only be using one browser anyway, i.e whichever one we build into FSO?

Or am I missing something about why this is important?
Karajorma's Freespace FAQ. It's almost like asking me yourself.

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

 

Offline m!m

  • 211
Re: Ingame UI for commandline settings discussion
The native controls on the different platforms will look different but given that most of that will be styled using CSS it shouldn't be a problem.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ingame UI for commandline settings discussion
The point is people are arguing the semantics that HTML isn't for UIs, it's a markup language, but this isn't important because we're talking about the entire web language stack and not just pure HTML.
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

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
It's more important to be right than useful on the internet. :)
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 BirdofPrey

  • 28
  • Help! I see GIMP in my sleep
Re: Ingame UI for commandline settings discussion
Isn't the point about the differences across browsers pretty much moot given that the entire community will effectlvely only be using one browser anyway, i.e whichever one we build into FSO?

Or am I missing something about why this is important?
I think the point was to differentiate between the content and the UI.  The UI for a browser is stuff like the forward and back buttons, address bar, tab bar, etc.  The webpage, no matter how interactive it is, is separate from the UI.

You're right, though, browser UIs are a moot point.  All that's really needed is the layout engine, and Chromium seems to have been decided upon already.
I would HOPE a full browser with it's own UI isn't used to draw the FSO UI (Yo dawg, I herd you like UIs, so we put a UI inside you UI)

The native controls on the different platforms will look different but given that most of that will be styled using CSS it shouldn't be a problem.
Im confused as to what you are saying, it makes it sound like you are planning on having things like forward and back buttons and reskinning them to the FSO theme.  Aside from that native controls tend to vary by browser, but the browser look across platforms tends to vary little.

The point is people are arguing the semantics that HTML isn't for UIs, it's a markup language, but this isn't important because we're talking about the entire web language stack and not just pure HTML.
I am pretty sure I mentioned I was talking about the entire web language stack, or more importantly, a full web layout engine.

Yes, i'm aware, mine isnt much better but you have made more than 4 posts worth of useless, unsubstantiated claims so far.
Tell you what, when someone actually says, "we have researched other options and determined chromium works the best", I'll shut up.
My main concern is that whatever gets used will get used simply because people have heard of it, not because it's the easiest to implement and easiest for modders and end users to use.

Quote
[edit] also, read one of your previous posts, you mention using SVG + JS. Now that, my friend, is truly spoken like somebody who has never worked with any of it. Please stop "brainstorming" and "throwing stuff at the wall and seeing what sticks". [/edit]
No?  SVG can be fully scripted, and even supports styling.  I didn't say it wasn't terrible, I just said you could.

Quote
PS, first one to pull jQuery into FSO gets an international slap from me :p
Does someone mentioning jQueryUI earlier count?

It's more important to be right than useful on the internet. :)
Always.
Pretty sure in a modding community it's also important to be stubborn.
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 mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
My main concern is that whatever gets used will get used simply because people have heard of it, not because it's the easiest to implement and easiest for modders and end users to use.

Oh, come on then. Easiest to implement? It already is. Done. Easiest for modders? HTML is so simple, I think my grandma could put together a rudimentary webpage, not to mention what modders who have learned SEXPs can do with such a simple language.
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 The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
Tell you what, when someone actually says, "we have researched other options and determined chromium works the best", I'll shut up.
My main concern is that whatever gets used will get used simply because people have heard of it, not because it's the easiest to implement and easiest for modders and end users to use.

Please trust us on this. Whatever solution ends up getting used, you can be certain that it will be a) easy to implement and b) easy to learn. Point b more or less requires that we use something that is somewhat standardized.

Quote
Quote
[edit] also, read one of your previous posts, you mention using SVG + JS. Now that, my friend, is truly spoken like somebody who has never worked with any of it. Please stop "brainstorming" and "throwing stuff at the wall and seeing what sticks". [/edit]
No?  SVG can be fully scripted, and even supports styling.  I didn't say it wasn't terrible, I just said you could.

And have you done any research on the available libraries that we can integrate into FSO, and the amount of work required to do so? Because you're talking to people who have, and who have concluded that they aren't workable.

Look, we do appreciate your enthusiasm, we really do. But please trust that we who are working on the engine and have been working on it for years have a better appreciation for what is doable than you do.
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 Flaser

  • 210
  • man/fish warsie
Re: Ingame UI for commandline settings discussion
Just my 5c having developed webapps in the past:

1) HTML + CSS were created to display *stuff*, not be a program interfaces. This means that you don't have proper interface entities. (Entities = "Thingy", not the HTML shenaningans with reserved charaters). What you have is instances of entities used for structuring and displaying content. BirdofPrey's input is very valid. On the surface the distinction seems moot, as the HTML form elements are very similar to what wants from interface elements... however compared to the interface components I describe below they're excessively *crude*.

2) XAML or other UI languages are typically provided by high level languages/programming environments like Java or .NET (that focus on business application). Here you typically have components that are specific *interface* elements. A .NET or Java Swing component is a lot *more* than a mere Form button or field. It has built in tools to handle masking user input, they come with vastly better & simpler to use layouts, they have built in support for directly binding to your business/app-logic and your (data)-model.

3) How webapps are usually actually made: Unless you're cobbling together something from basic PHP, you typically *don't* deal with HTML elements. You use whatever UI components your programming environment provides and you let the *framework* translate this all into HTML / CSS. Your graphic designer might tweak the CSS output to make the UI "prettier" or tweak the layout (either at the XAML or the CSS level) but this is all about layout & look.

So while a lot of people rightly made the remark that "HTML+CSS+JS" is just "known", I feel it prudent to point out that very few apps / UIs are actually developed in it, even if the end result will be *translated* to those to be displayed in a browser. That said, the remark that the above trio are know is *valid* and for simple stuff it's indeed easy to use. (Although I wouldn't really agree about that when it comes to CSS. Modern layouts are so darn complex that I wonder how many people still tweak the code by hand instead relying on other tools). Still... learning XAML for instance is not *hard*, actually anyone who worked on HTML will be able to grasp it really fast. (It *simplifies* UI layout).

From a developer point of view thus the question should be this:
1) Should the project focus on HTML *rendering* (with whatever subset of the HTML stack will be supported) vs another framework? The former is better known, but (IMHO) clunkier, the later more powerful but less well known.
2) If HTML rendering is supported should that be the "end" of the development, or could a two-tier approach be used?  JSP/JSF/PHP and other server side scripting/programming solutions allow one to use both tools: One can write code that operates on UI components that get translated to HTML elements and one can directly embed HTML code too. The downside is increased complexity.

TL;DR:
The choice between declarative / markup languages (e.g. XAML vs HTML) is not a clear either/or choice.
"I was going to become a speed dealer. If one stupid fairytale turns out to be total nonsense, what does the young man do? If you answered, “Wake up and face reality,” you don’t remember what it was like being a young man. You just go to the next entry in the catalogue of lies you can use to destroy your life." - John Dolan

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
That post is less helpful than you might think.

Telling us that "HTML is not meant for applications" doesn't help. You know. We know. Everyone knows. Unless you have a better alternative, do not waste your time and ours on telling us things we already know.

I am sorry if this comes across as dismissive and abrasive. However, please understand that noone gains anything by having the thread devolve into philosophical discussions on what a given tool is meant for.

That said, let me recap the issue. Hopefully this'll allow us to get back to a more productive track.

1. FS2's menu system is pretty much non-extendable.
2. A modder wanting to include new UI elements will have to resort to built-from-scratch lua scripts.
3. Given that we do not have a lot of lua scripters, and not a lot of people comfortable with using lua, this drastically reduces the options available to the average modder.

So, we're looking into ways to create a new interface layer that can be used to replace the entire interface. One solution that has been proposed and prototyped is to use chromium; this seems like overkill for the purposes of doing an interface, and is perhaps unsuitable for use in-game. Another HTML/CSS-based solution, libRocket, seems like a really good alternative, but needs experimentation. Building an interface using these tools may not be what the designers of HTML had in mind, but we don't particularly care; after all, at least in libRocket's case, it has been shown to be feasible.

What we're looking for here are alternatives to this. Our parameters here are:
-Compatibility with the FSO license (Short version: Anything under GPL is out)
-Easy to learn using industry-standard tutorials.
-Straightforward to implement.
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 Flaser

  • 210
  • man/fish warsie
Re: Ingame UI for commandline settings discussion
Could you please clarify what licenses are permitted? (I know this is an ass question as legal matters can be a real quagmire. I only ask in hope someone has tried to untangle it before).

IIRC while (pure) GPL software can't be used, LGPL (with some limitations) can. (The new cutscene player by m!m for instance uses ffmpeg, which - AFAIK - is LGPL/GPL).
What other licenses are compatible with FSO? Chromium was mentioned as a strong possibility, which is available under the LGPL, MIT, BSD and MPL licenses. If the Chromium Embedded Framework is used than I'd assume the "New BSD License" is also compatible with FSO.
"I was going to become a speed dealer. If one stupid fairytale turns out to be total nonsense, what does the young man do? If you answered, “Wake up and face reality,” you don’t remember what it was like being a young man. You just go to the next entry in the catalogue of lies you can use to destroy your life." - John Dolan

 

Offline The E

  • He's Ebeneezer Goode
  • Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: Ingame UI for commandline settings discussion
GPL is completely out. LGPL can be used (conditionally, if linked correctly). MIT, BSD, Apache, zlib, these are all fine and pose no problems.
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
When I mentioned jQueryUI, I was not saying it was what we should use, I was pointing out that there is at least one blatantly obvious UI-oriented framework for the browser stack.  There are probably dozens more good ones for browser UIs, and hundreds of ****ty ones, just like there are UI frameworks for Java, C++, etc.

We're not talking about back and forward buttons either.  The platform-specific elements that would see on a web page are typically form elements and scroll bars.  But CSS makes that a moot point, as we could have a reference implementation that styles them the same way across every platform FSO runs on.  A good UI framework for JS probably already has the accompanying CSS to do just that.

So, Flaser, you're still saying HTML+CSS, and you're right, without a language designed to implement behaviors, there's no possibility of a UI.  But since there's also JS, viola, we have the potential for a UI in the browser stack.

Seriously, so many mobile apps have UIs that run in the phone's browser engine these days, and just make RESTful calls to populate data in the DOM, I don't know how it's so difficult to accept that the browser stack is perfectly competent at rendering a UI these days.  I'm not saying it's definitely the right solution for us, but can we please stick to arguing actual negatives of using the chromium browser stack vs trying to say it can't be done at all?

As far as LGPL code goes, it's not just linking, and as implemented the cutscene player is far leaving us LGPL compliant.  I don't think we should be merging it in until the proposal meets everything in this checklist, or we can prove that we are compliant via other means.  Same goes with proposing any other LGPL library integration, although if we were compliant with one, it would likely make it easier to be compliant with others.
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

 

Offline Flaser

  • 210
  • man/fish warsie
Re: Ingame UI for commandline settings discussion
Having done a little research the following widget toolkits/libraries could be alternatives to using Chromium. This is not meant to be a comparison from on-hands coding experience, just an overview of what can be glimpsed from the documentation / Wikipedia.

Common features: C/C++ compatibility, being multi-platform, having tools available for modders to create UIs without having to code it all.

The Big Two™: GTK+ (with Gtkmm) and Qt.
Pros: These are extensive frameworks with good documentation and (coding) tutorials available. Very wide variety of widgets available. Of the two, Qt seems to be preferred by a lot of developers.
Cons: These are extensive frameworks and would likely need extensive learning by coders. Licensing: Both are only available as LGPL.

CEGUI:
Pros: It's specifically aimed at game UI development and unlike the Big Two™ it uses the MIT license. It's also more lightweight as it's supposed to interface other modules to handle rendering, parsing, etc. not directly related to the UI widgets.
Cons: Less variety in available widgets. While (probably) requiring less documentation studying than the Big Two™, it'll likely need more custom code developed to interface with the FSO code.

All three have tools for creating UIs in WYSWYG environments. Downside? Unlike libRocket these UIs are not defined in HTML. Qt and CEGUI use their own XML based markup while GTK+ doesn't have a default UI markup language. For libRocket any XHTML editor would do.

Big question: Could anyone provide feedback on either of these having used them?

EDIT: @chief1983 I have nothing against a browser stack, I just to give feedback on things I've used in the past. (Unfortunately those being .NET - Windows Forms & WPF and Java Swing they're not relevant to FSO). This post is just trying to outline some more alternatives to what has been proposed so far (Chromium or libRocket). In the end using Chromium could be the simplest and most straightforward (even if not lightest resource use wise) solution.
« Last Edit: May 13, 2015, 09:57:07 am by Flaser »
"I was going to become a speed dealer. If one stupid fairytale turns out to be total nonsense, what does the young man do? If you answered, “Wake up and face reality,” you don’t remember what it was like being a young man. You just go to the next entry in the catalogue of lies you can use to destroy your life." - John Dolan

 

Offline Swifty

  • 210
  • I reject your fantasy & substitute my own
Re: Ingame UI for commandline settings discussion
Can someone just make proof of concept duplicating the Freespace2 briefing screen in HTML+CSS+Javascript so we can have a proof of concept that this stuff could actually work for us? I mean, it'll run in a browser so you can just put it somewhere online and slap the URL here. :P

 

Offline pecenipicek

  • Roast Chicken
  • 211
  • Powered by copious amounts of coffee and nicotine
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • PeceniPicek's own deviantart page
Re: Ingame UI for commandline settings discussion
also, the simplest, dumbest interface with js could be onclick="main.goToBriefing();" or what have you :p

Those of you who are arguing for non html stuff. Sure, they are the right, proper, full double plus good solutions.


EXCEPT for the end users (modders). Who just want the thrice damned thing over and done with.



Anything involing a custom DSL (Domain Specific Language to the code-challenged of you) is a very very very bad idea, because of the aforementioned "look how badly lua has fared".

Its a simple problem, people will not bother to learn something thats specific to this one sole thing unless they have a very personal investment in it.


Btw, swifty, this just crossed my mind, how in the twelve hells would we integrate the rendered background and stuff? One thought that comes to mind is a canvas element with pass-through, but other than that...
Skype: vrganjko
Ho, ho, ho, to the bottle I go
to heal my heart and drown my woe!
Rain may fall and wind may blow,
and many miles be still to go,
but under a tall tree I will lie!

The Apocalypse Project needs YOU! - recruiting info thread.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: Ingame UI for commandline settings discussion
Recreating the existing FS2 interfaces would be as difficult as creating a new interface by replacing the existing artwork in the current system.  But creating a new interface that looks sleek, and has all the functionality of the FS2 interface, that would be pretty easy to cover most of the current menus.  Although, we'd really just be excited to add a new options menu off the bat, which wouldn't have to look like anything in particular, but be very easy to implement.  Prototypes of replacements of the existing menus could follow, and be styled as we see fit, but the functionality for existing menus would only have to be written once, and then a mod could just pretty them up as desired, with much more flexibility than with the current system.
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