Jump to content

Can't get GZDoom to work on mac


Foodles

Recommended Posts

GZDoom already has most of it, it just defaults to a portable install if placed in an unprotected directory. If you copy it to "Program Files" it will behave properly as an "installed" application.

 

The main issue with Linux and macOS is that even the people using these systems can't seem to agree what's the "right" place for stuff. Especially on Linux, every distro seems to have its own rules that differ from the next one, and that not only affects user data but also the internal .pk3 files. I have lost count of reports from users complaining that files aren't copied to the "right" place ("right" of course being different for each report, normally.)

 

Share this post


Link to post
6 minutes ago, Graf Zahl said:

GZDoom already has most of it, it just defaults to a portable install if placed in an unprotected directory. If you copy it to "Program Files" it will behave properly as an "installed" application.

 

The main issue with Linux and macOS is that even the people using these systems can't seem to agree what's the "right" place for stuff. Especially on Linux, every distro seems to have its own rules that differ from the next one, and that not only affects user data but also the internal .pk3 files. I have lost count of reports from users complaining that files aren't copied to the "right" place ("right" of course being different for each report, normally.)

 


On Linux you can for sure get away with putting it in .config or .local.  Anyone who complains about that is just being a Schmuck.  Especially when it comes to config files and settings.

 

Of course there is also the possibility of ~/.gzdoom

 

There is also the FHS.  If you follow that, then you’ll be putting it in a standard location.  Users can complain, but oftentimes they are the ones not using their system correctly.

Edited by Gibbon

Share this post


Link to post

You can do a lot of things.

This is what we're at right now for the IWADs:

 

        SetValueForKey ("Path", "$HOME/" GAME_DIR, true);
        SetValueForKey ("Path", "$HOME/.local/share/games/doom", true);
        // Arch Linux likes them in /usr/share/doom
        // Debian likes them in /usr/share/games/doom
        // I assume other distributions don't do anything radically different
        SetValueForKey ("Path", "/usr/local/share/doom", true);
        SetValueForKey ("Path", "/usr/local/share/games/doom", true);
        SetValueForKey ("Path", "/usr/share/doom", true);
        SetValueForKey ("Path", "/usr/share/games/doom", true);

 

For sound fonts it gets even worse:

 

        SetValueForKey("Path", "$HOME/" GAME_DIR "/soundfonts", true);
        SetValueForKey("Path", "$HOME/" GAME_DIR "/fm_banks", true);
        SetValueForKey("Path", "$HOME/.local/share/games/doom/soundfonts", true);
        SetValueForKey("Path", "$HOME/.local/share/games/doom/fm_banks", true);
        SetValueForKey("Path", "/usr/local/share/doom/soundfonts", true);
        SetValueForKey("Path", "/usr/local/share/doom/fm_banks", true);
        SetValueForKey("Path", "/usr/local/share/games/doom/soundfonts", true);
        SetValueForKey("Path", "/usr/local/share/games/doom/fm_banks", true);
        SetValueForKey("Path", "/usr/share/doom/soundfonts", true);
        SetValueForKey("Path", "/usr/share/doom/fm_banks", true);
        SetValueForKey("Path", "/usr/share/games/doom/soundfonts", true);
        SetValueForKey("Path", "/usr/share/games/doom/fm_banks", true);

 

Share this post


Link to post
57 minutes ago, Gibbon said:

I guess it helps if the developers actually use the systems themselves that they support.  I support 4 because I use 4 (Windows, FreeBSD, RedHat and macOS).  It’s hard to care about a platform if you never use it and pass it off to someone else to do. 

 

I myself only really focus on Windows and also Linux from time to time.  It's not as difficult as one might think, especially considering all three major operating systems are multi-user, and improvements to one percolate to the other platforms.

 

52 minutes ago, Graf Zahl said:

The main issue with Linux and macOS is that even the people using these systems can't seem to agree what's the "right" place for stuff.

 

Windows is by far the worst offender here.  User/Documents/My Games is actually an informal standard started by a gaming blog that game developers adhered to of their own free will.  Kex Engine games write to User/Saved Games.  The official place to write program data is under AppData/Roaming for settings that are computer agnostic and AppData/Local for settings that are specific to a computer (like display resolution).  It's insanity, and my best advice is to just pick one, stick with it, and make sure your program makes the config dir easy to find.

 

On Linux, for global installation there's /usr/local and for user installation it's ~/.local.  For configs, there's just two standards, the XDG standard and the informal bespoke dot directory that everybody and their brother seemed to use before then.

 

Apple has the Applications directory as its blessed way of installing programs, and has guidelines for preferences.  The only programs I see breaking those guidelines are programs ported from *NIX that haven't or don't want to switch from bespoke dot dirs.

 

13 minutes ago, Graf Zahl said:

This is what we're at right now for the IWADs:

 

This is something we used to run into repeatedly, and after adding our wad directory modifier our user complaints about not being able to find WAD files cratered.  If you 're looking for one of my suggestions as a "min effort max result" sort of thing to add, it would be the WAD directory modifier.  It's so handy, and it's so nice not be taken by surprise by "Oh, it loaded freedoom for some reason....?"

Edited by AlexMax

Share this post


Link to post
8 minutes ago, AlexMax said:

 

I myself only really focus on Windows and also Linux from time to time.  It's not as difficult as one might think, especially considering all three major operating systems are multi-user, and improvements to one percolate to the other platforms.


Yeah it isn’t hard I was getting at more about the attention to detail and caring about each community on the respective platforms.  For example the GUI being non-Mac like.  I would have used Cocoa and SwiftUI for a native look, feel and integration with the OS.  
 

That’s the difference.

Share this post


Link to post
1 hour ago, AlexMax said:

Windows is by far the worst offender here.  User/Documents/My Games is actually an informal standard started by a gaming blog that game developers adhered to of their own free will.  Kex Engine games write to User/Saved Games.  The official place to write program data is under AppData/Roaming for settings that are computer agnostic and AppData/Local for settings that are specific to a computer (like display resolution).  It's insanity, and my best advice is to just pick one, stick with it, and make sure your program makes the config dir easy to find.

 

Aside from the roaming/loical separation (that nobody seems to adhere to anywyy) it sounds logical. Even if My Games is informal, it looks like developers have learned the lesson of using something standardized here. Saved Games is also a Windows standard folder GZDoom also uses when running from a protected directory.

 

It clearly separates user provided data (in My Games), savegame data (which the user may want to access e.g. for deletion) and internal configuration stuff. The only thing falling through the cracks is the configuration, but only because in ZDoom-based ports, part of it are supposed to be user-edited.

 

If we did the same separation in macOS all would be fine.

 

As for Linux, I found it's virtually impossible to convince those in favor of old Unix conventions to change to something more modern. Even on Windows you'll find countless of badly ported Unix tools writing to ".appname" because its devs simply do not care about platform conventions. So we're stuck with a hodgepodge of places where users expect their data, and don't even try to get a consensus. And meanwhile on both my Mac at work and my private Windows machine, those godforsaken '.' directories pollute my user folder and make it harder to look up other, more important things.

 

 

Share this post


Link to post
1 hour ago, ABirbWithGuns said:

I have a rather simple solution:

ezsave.gif.790af22f41bd0132d54618730441109a.gif

 

It is indeed..  however the amount of Mac users who would ever click on 'Show Package Contents' is very small.  But a nice solution yes, though wads should ideally be read from 'Resources' and not from the MacOS directory as that is reserved for binaries.

Share this post


Link to post
  • 2 weeks later...
On 3/21/2022 at 3:53 PM, AlexMax said:

We use FLTK for the boot window.  It only looks a little bit less ugly than the website itself, but it's easy to build (we use a devbuild that we build in-tree), it's small enough to statically link, it's been around forever, it has an active support community around it, it gets the hell out of your way and doesn't try to own the entire stack, and since it does not rely on native widgets you can customize the widget drawing process so it actually looks nice. 

 

I've been trying to get FLTK compiled inside the GZDoom project but have been running into walls with their overzealous CMake script. Since you already got it working, can you give me a bit of help integrating the project so that it works?

Aside from automatically generating an endless amounts of useless demo projects, which of course need to be disabled for a library build, my biggest issue is their dependencies which are included in source form and partially clash with other dependencies (e.g. FLTK includes a libjpeg that's not compatible with the one used by the texture system.

 

Replacing the existing GUI elements with a cross-platform solution would be great, but so many of these libraries come with project files that are so hard to use as subprojects, and FLTK is no exception.

Share this post


Link to post

i dont know why it would not run on mac im not a mac expert also i use windows not mac i think the launcher is broken

Edited by DENTYZ

Share this post


Link to post
31 minutes ago, DENTYZ said:

i dont know why it would not run on mac im not a mac expert also i use windows not mac

You're not obligated to reply to threads to which you have nothing to add, you know.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...