Cross-Platform Startup Window

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: Cross-Platform Startup Window

Re: Cross-Platform Startup Window

by Marisa the Magician » Mon Jul 25, 2022 2:21 pm

This is already a thing now.

Re: Cross-Platform Startup Window

by Graf Zahl » Wed Jun 05, 2019 1:07 am

That thing is based on OpenGL 3.x, i.e. it has no working backend abstraction, which kills it completely.
It's also full of stupid things like outputting diagnostics to cout and pulls in several dependencies. It uses another library by the same programmer as its core, and not surprisingly that also uses stb_truetype.

Sorry, but that isn't usable at all.

imgui can render to a software buffer so it has no dependencies at all on what system is backing the app.

Re: Cross-Platform Startup Window

by Kinsie » Tue Jun 04, 2019 11:34 pm

Graf Zahl wrote:That thing isn't bad - my main gripe is that it's using that stb_truetype library for text output which is entirely useless when having to consider localization and font substitution for missing characters (i.e. I don't think it can support Korean easily in combination with other languages.)
The DearImgui Wiki provides a simple example of loading a Truetype font with Asian-language characters and displaying a Unicode string with Japanese text, so realistically this issue probably won't crop up too much

EDIT: There's also a Freetype addon.

Re: Cross-Platform Startup Window

by gramps » Tue Jun 04, 2019 5:26 pm

NanoGUI looks like a good retained-mode alternative: https://github.com/wjakob/nanogui

Not sure what font library they use, though. My favorite font library is currently freetype-gl: https://github.com/rougier/freetype-gl

It probably has the cleanest font rendering I've seen. Missing characters probably wouldn't be an issue if a comprehensive font like BitstreamVeraSans is included, though.

Honestly, though, I'm not sure it's really the job of a program to help the user run it with a valid combination of arguments. This still sounds like a job for an installer or launcher to me.

Re: Cross-Platform Startup Window

by Graf Zahl » Tue Jun 04, 2019 3:34 pm

That thing isn't bad - my main gripe is that it's using that stb_truetype library for text output which is entirely useless when having to consider localization and font substitution for missing characters (i.e. I don't think it can support Korean easily in combination with other languages.)

It's really too bad that there is no good cross-platform text formatting library to be found.

Re: Cross-Platform Startup Window

by JPL » Tue Jun 04, 2019 3:07 pm

Anyone familiar with imgui and have opinions on its feasibility? https://github.com/ocornut/imgui
Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies).
Personally I think the default styling of its GUIs look pretty good for being obviously non-native.

Re: Cross-Platform Startup Window

by Graf Zahl » Tue Jun 04, 2019 4:14 am

If we do a GUI on OpenGL this should use an external library. Designing this ourselves would be too time consuming.

Re: Cross-Platform Startup Window

by Kinsie » Tue Jun 04, 2019 3:42 am

Caligari87 wrote:Would there be any way to rearrange the engine startup to allow a minimal "ingame" menu before IWADs and PWADs are loaded? Basically a GZDoom-native picker instead of an OS-native popup picker. (maybe showing the load list as well)
This has a number of pros and cons that I can see.

CONS:
  • Would likely require a lot of engine retinkering to enable a "pre-game" state where a game hasn't been loaded, and new archives and data can be loaded in while the engine is running.
  • Would require reinventing a lot of wheels and basically writing a whole new UI toolkit that no other project is likely to use.
  • Would be very easy to make dog-ugly unless either serious effort is put in by UI/UX designers (of which there aren't many around here), or additional tech is added to emulate certain elements of the existing startup windows (truetype fonts etc.)
PROS:
  • Would get consistent results across all platforms
  • Could reuse stuff from the game side of the engine for special startups
  • Additional launcher-style capabilities could be added during the process
  • UI tech created for it could be potentially made available for usage in mods in some form
  • Could be an excuse to enable changing mods/iwads at runtime ala Quakespasm's "game <foldername>" console command.
In short, it'd take a whole lotta heartache. Whether that's worth it or not when there are hordes of other much desired features (vulkan, client/server etc.) begging for man-hours is up for debate...
gramps wrote:That's not a bad idea, but wouldn't it be even better (or at least just as good) to have a menu option for each iwad, maybe all in a submenu, so you could skip the popup? That would be a pretty typical (optional) thing for an installer to set up, and would be more convenient than poking around in the registry or SendTo folder.
Maybe for some people? Feels a little fiddly to me, though. But I guess workflows are very personal things...

(Also it only took me like two minutes to set up with an old freeware tool, so...)

Either way, I don't think removing the launcher and outright requiring users to work with a third-party launcher for multiple-IWAD setups is a good idea. It'd be kind of a step-back, to be honest. Making it (and the auto-search of Steam/GOG installs) a compile-time option or an option in gzdoom.pk3 would make sense, though.

Re: Cross-Platform Startup Window

by gramps » Tue Jun 04, 2019 1:32 am

That's not a bad idea, but wouldn't it be even better (or at least just as good) to have a menu option for each iwad, maybe all in a submenu, so you could skip the popup? That would be a pretty typical (optional) thing for an installer to set up, and would be more convenient than poking around in the registry or SendTo folder.

Re: Cross-Platform Startup Window

by Kinsie » Mon Jun 03, 2019 11:01 pm

I'd definitely miss it, as while I use ZDL a lot, I usually run singular mods/mapsets by using a custom "Run in GZDoom..." option I added to the right click context menu. It's pretty slick!

Re: Cross-Platform Startup Window

by gramps » Mon Jun 03, 2019 9:46 pm

I wouldn't miss it either. It's basically just a reminder that I either forgot to type `-iwad` or forgot to specify an iwad in my own pwad. I almost always close it and fix one thing or the other so it won't pop up next time.

If I didn't usually have a shell open, I'd probably create a bunch of shortcuts like "gzdoom.exe -iwad doom2" and drag mods onto those to play them. So maybe another option could be a simple installer that locates the iwads and creates the appropriate shortcuts (I suspect you'd really only need this on Windows).

Re: Cross-Platform Startup Window

by Enjay » Mon Jun 03, 2019 1:54 pm

I'm sure some people would object to it going but, honestly, I don't find it useful at all and would be quite happy for it to be removed. I launch everything via ZDL, shortcuts or bat files and I only ever see the IWAD launcher when I don't want to (e.g. starting a stand alone game and seeing the option to play GoG games).

A well set up launcher program does everything that the IWAD picker does and more.

Re: Cross-Platform Startup Window

by Marisa the Magician » Mon Jun 03, 2019 1:50 pm

I have to agree with Graf. There really isn't any sufficiently lightweight cross-platform toolkit for this.

Re: Cross-Platform Startup Window

by Caligari87 » Mon Jun 03, 2019 11:13 am

That's what I was thinking of. Mostly just text, maybe a generic GZDoom splash and logo and some predefined icons for each IWAD in zd_extra.pk3 (Assuming that can be loaded before game resources are selected).

Hell, it's not like the IWAD selector uses any graphics anyway, so an "in-engine" text-only menu would already be more coherent and unified than what we have now, even without graphics.

8-)

Re: Cross-Platform Startup Window

by Rachael » Mon Jun 03, 2019 8:41 am

That's not a bad idea. The only issue is someone will have to design all the widgets and fonts GZDoom would need, since it would not be possible to use game resources before one is loaded.

Definitely good for a community project, though.

(edit: Actually, the fonts are already taken care of, via the VGA BIOS/franken font)

Top