What do I want in 2018 for GNU gaming?

Gaming for GNU (popularly known as “Linux” even though that is not the name of the OS) has undoubtedly grown significantly in recent years, and 2017 was no exception.  For 2018, I think that the following things need to happen to increase the quality of GNU gaming even more.

Stop advocating Wayland over Xorg

Yes, I realize that many people believe Wayland is the definite way forward for many reasons, security of the desktop being among them.  But I honestly do not think that Xorg is that big of an issue with the modern GNU desktop, and in fact, it is much better than what Wayland can offer, especially at the moment where the future of GNU gaming is critical and we are beginning to see wider adoption of GNU as a home and gaming OS.

Part of the problem with Wayland is the performance of games and desktops as a whole, and even the ability of some games to even work within Wayland is an issue.  Xorg’s performance is just far and away better on many machines, and I’ve seen many games just crash outright when trying to run them under Wayland vs. Xorg — not a problem one wants to experience as a new user.

Furthermore, programs that depend on the transparency and client/server nature of Xorg will not work under Wayland, something else that can cause a negative opinion of the desktop.  Unfortunately, even the distribution that most will be using — Ubuntu — has gone to Wayland as a default with the latest version, and it seems that its next version, a Long Term Support version which most people will use, will default to Wayland as well.

I would like to see either a radical retooling of Wayland to better support existing programs and run much more efficiently before it gets rolled out, or, preferably, just keep working on Xorg.  I realize that there are some who would say it’s unfixable and unmaintainable, but I tend to think these are just excuses to change over to their preferred, inferior alternative Wayland.

Stop advocating “universal packages”

Advocating alternative packaging solutions for distributions such as snap and flatpak is a huge mistake and creates many more problems than they would solve.  The packaging method is slow, fragmented from the base system so that access to the base system to become usable makes their supposed sandboxed “security” worthless, and does not take into account the many actual differences in the implementation and expectations of different distributions.  The best way to package a program for GNU is to package it for its own system.  While this may seem daunting for certain packages, especially binary, non-free packages (which should be avoided or at least minimized, anyway), it has been done quite successfully and easily for a long time, without the need for a Windows-like “universal package” installation method that wastes space and resources by installing everything redundantly for every single package.

Basically, maintainers matter.  Trying to fit Steam and other non-free software into some alternative packaging solution is just silly and won’t fix anything, and, in fact, will add to the complexity and create more problems than it will fix.  Given that Steam already creates its own micro-ecosystem of libraries (something that many people are trying to avoid by using native libraries instead, including the Arch distro which includes a “native” Steam launcher that depends on all the necessary libraries to make Steam run at a native level), sticking all that in its own little pocket just creates a mess.

Embracing systemd

The amount of sheer hatred for the systemd init system on desktops is something I will never understand.  I get that systemd is probably not the most efficient or ideal tool for servers and other light systems, but for complex, multiuse desktops that require many daemons (services) to run without stepping on each others’ toes, plus an easier, more centralized method of base system configuration for common tasks, systemd absolutely outdoes every other alternative, and does so very well.  The configuration of desktop PCs, especially for gaming, benefits immensely from systemd, with no drawbacks.

And yet there are GNU users who will tell you that systemd is the single worst thing that has ever happened to GNU; some of these users are long-time users like myself, but unlike me, cannot and will not embrace change, and some are newer users who are just hopping about the anti-systemd train because they think they should without being well-informed themselves.  Many cite the notion that systemd isn’t simple and layered, and therefore isn’t UNIXlike, and yet the name GNU itself states that GNU’s Not UNIX, and such “rules” of simplicity over complexity really only serve GNU where they are needed.

Many of these same users also will not embrace pulseaudio, despite it having proven itself as a very capable and complete audio solution for the home desktop.  When you fear what’s new, you often leave yourself in the past, clutching onto the old and broken.  And yet many of these same people will be the first to embrace actually negative, broken new solutions such as Wayland and poorly done and badly implemented “universal package” solutions such as snap and flatpak.  I don’t understand it.

GOG Retail Cards

Something that’s not exclusive to GNU, but I really want the game store site GOG to start selling their own retail level cards to allow people to buy games without having to deal with credit cards or other messy, non-private forms of payment.  GOG supposedly supports some sort of third-party retail card, but not only would I rather have something officially released and supported by them, but they also don’t have any of those cards around here anywhere.  It would create a very easy and solid method of purchasing DRM-free games for GNU via GOG by giving them an equivalent method of using Steam retail cards to buy games from them that are not necessarily DRM-free.

Also, GOG, please don’t sell yourself off to some terrible company like Humble Bundle sold itself to IGN.  I don’t want to have to boycott you, too.

Removal of “universal controller configuration”

Over the last year or so, I’ve noticed a disturbing trend; games which support game controllers have been standardizing themselves to one single controller configuration, namely, the layout of the XBox 360 controller.  How we, as GNU users, have allowed our controller configurations to be standardized to a controller for a locked-down, Microsoft-owned, non-free piece of hardware, I will never know.  And worse, it seems that instead of allowing games to detect any controller and configure them from their raw input values, mapping each movement to whatever game function is necessary for that particular controller (because there are tons of controllers, many of which aren’t even close to the standard layout of the 360 controller), they now try to detect the controller and map them — many times very arbitrarily — to the 360 controller’s layout, and if it doesn’t detect the controller at all, many times you’re left with no controller support at all.

Given that even a few years back when we could map our controller as we wanted to in every single game that supported controllers, this is a huge step backward.  It’s bad when I play a native game that supposedly supports a controller, but just because I’m not the “proud” owner of a 360 controller, I either am forced to play via keyboard (many times, very awkwardly in the case of certain games better geared towards playing on a controller) or manually mapping said keyboard inputs to a gamepad action via a nice program called antimicro.  Either way is an unnecessary substitute for what should be a built-in option to use any controller one possesses and map them to whatever one wishes in that game.  It’s a horrible trend, and it needs to die.

I’m sure I have more things I can complain about that I can’t really think of right now, but this is a good start.  We have really begun wanting to support many things that are detrimental to the overall gaming experience in GNU (and not supporting things that vastly improve it!), and I really want to emphasize these things to people that maybe we could change things for the better.  I want GNU to be insanely successful, and I would hope everyone else who uses it would, as well — but sometimes, I really wonder.




Half-Life Episode Meh

The interwebs this morning are abuzz over a blog post from an ex-Valve writer that is essentially a name and gender swapped summary of what seems to be the outline of a story for the essentially canceled at this point Half-Life 2: Episode 3.  Since the writer is no longer with Valve and essentially admitted over Twitter that the post was essentially fanfiction.

While many discussions are being made over this, essentially the lamenting of what could have been and what basically never will be, I have a different perspective.  If this outline essentially tells the entirety of what Half-Life 2: Episode 3 would have been, why even make the game?  Essentially, at this point, the game would just be padding for what is just a very short story, well-told in print and could even be translated to animated form via Valve’s Source Filmmaker — complicated, long tales of high drama and action have been told via that tool before, and it’s not out of the realm of possibility that a highly motivated small team could make their own movie out of the short tale that was told.

Truthfully, the Half-Life games have always been just so much padding for what is essentially a self-contained short story, a series of set pieces linked together to pad the play time via linear paths, something that could be simplified and made into a cohesive, simple movie.  In fact, this is exactly what Half-Life set out to be, and created the entire modern gaming era of “games” that are essentially failed pieces of fiction for other media linked together with gameplay that is really not that essential to the telling of the story other than giving the player something to do between story points.  Actual games don’t really have this problem, as the story points are really very sparse and nearly nonexistent.  Imagine the original Doom told as a story without a ton of additions and exposition added (like the Doom novels) — “Doomguy is the last one left after an invasion from Hell through teleporter gates.  He goes to find out what happened to Deimos, teleports there, finds it’s floating above Hell itself, goes down to Hell, and kills the big bad guy.”  That’s it.  The original Doom’s story in a nutshell.  The reason it’s so sparse and doesn’t have much to it is simple — it’s not supposed to have much to it.  It’s a videogame.  The story is supposed to be told through the player’s actions.  When your actions in a game are incidental to what the story is, and you’re just being swept along a path of a story much more interesting than the one you’re actually participating in, it might be a better idea to just abandon the whole idea of it being a game, and go write a book or make a movie out of it.  Doom was so much more than Doomguy being swept up in some grand story — it was a living, breathing game concept that demanded exploration, resource management, and enjoying the game for the gameplay itself, not for some frustrated writer’s world created for the sake of its own creation, glued together by mediocre gaming sections created as padding.

Half-Life helped create the idea of the movie-game, a sort of interactive entertainment that corrupted the classic notion of games being simple, sparse stories that were only there to give you a reason to do what you are doing.  My hope is that the release of this story for Episode 3 will make people realize that story isn’t the entirety of what a game is supposed to be, and have it be the destruction of the idea of the movie-game as well.


User Interfaces

I am a frustrated developer, sitting on a mountain of barely started, half-finished, abandoned projects that I feel don’t need to be finished for one reason or the other, or would require too much effort to finish.  Dozens of source directories are lost to time and reformats, reinstalls, broken systems, and outright manual deletions.  I am, by definition, a terrible developer, one who never finishes his work and therefore cannot prove his worth via a decent library of applications.

But I finished one, and it’s one that I actually use myself on a regular basis — a graphical launcher for the game Doom‘s source ports on GNU, such as chocolate-doom, gzdoom, and zandronumOriginally known as gdoomsday and written in GTK+ specifically as a launcher for the engine doomsday that is now a self-contained Doom launcher via an in-engine configuration, my program enyo-doom¹ can play host to any number of engines, games, and add-on configurations, all of which can be saved to specifically launch such configurations as “TNT: Evolution using chocolate-doom”, gzdoom using Doom II: Hell on Earth with the Brutal Doom add-on”, and other combinations, all with a simple selector that can be configured to save specific WAD file (main game files), addon WAD and PAK file (files that change the behavior of the main game in one way or the other), specific engine, and custom commandline option combinations into a single drop-down option.

The reason I wrote this program was simple: I needed it.  Back when doomsday was the main Doom engine that I used, I was frustrated that GNU didn’t (at that time) have a launcher program for it that the Windows version had.  Eventually, doomsday did get a launcher (first Snowberry, then the options contained in the engine as noted above), but by then I had moved on to other engines such as chocolate-doom and gzdoom, and I used both for different purposes.  At first, I started repurposing the gdoomsday program in an attempt to solve these problems, eventually renaming it enyo (and later, enyo-doom to differentiate it from the JavaScript framework of the same name), but I ran into a problem — the way it was coded, and the mess of code required to use GTK+, meant that it was very difficult to add new features and change existing ones.  Eventually, I bit the bullet and recoded the entire thing from scratch — which still amazes me given that not only was I able to finish a project, but finish the same project, twice — using the much more flexible Qt framework.  There were tremendous growing pains using Qt over GTK+ at first, but as I learned more about it and moved the build system from the GNU build system (autotools) to CMake, the easier things got, and I was eventually able to put in everything I wanted, and as of now, at version 1.04, it is as feature complete as I need it to be, and I am almost happy with the results.


gdoomsday essentially started as a clone of the old Windows doomsday launcher that it had in its early days, and the current enyo-doom hasn’t changed its look very much.  And frankly, it’s showing its age.  There are much more efficient and usable user interfaces out there for launchers and other programs, and looking at enyo-doom now, I think it looks very cluttered and unorganized.  In my mind, this has led to a struggle — yes, it doesn’t look as good as it should, but it’s functional, and isn’t that all that matters, really?  Should I spend the time again to re-remake the program into something else, something less, well, ugly?  It’s amazing enough that I was able to force myself to create this program twice; could I actually do it again?

And that’s where I stand right now, wondering and thinking about a new design for enyo-doom, and maybe even a new name to give the whole thing a fresh start.  Should I do it?  Should I bother?  Or am I just fishing for something to do, thinking that if I can’t finish anything else I’ve tried, maybe I can finish something that basically just needs an interface redesign, to make myself feel content that I can at least finish something. 

Maybe I shouldn’t bother, and just try to finish something completely different for once.  That’d be a change.



Debian 9

Debian is one of the oldest and most respected distros in the history of GNU, and it recently released version 9, codenamed “Stretch”.  So since it has been a good while since I’ve taken a look at any version of Debian (I used to use the Unstable version as my main OS, but other distros became more appealing to me), so I figured I would install it in a virtual machine to give it a good look.

The Debian I am familiar with uses a text-based installer (an interactive one, not “here’s a command prompt, have fun installing” like Arch), and while Stretch gave me the option, I figured I would try its graphical installer.  I seem to remember trying Debian’s graphical installer before, but I didn’t remember much about it, so I decided to give this one a try.  As I was booting from a netinstall disk, it would have to download a ton of packages from the internet to install, but this was fine — it really didn’t take that long all things considered, and I was up and running fairly quickly.  One nice little bit on the installer was that it asked me which desktop environment I wanted to use, something that other distros should really consider doing.  I know that it might confuse some people, but at the very least, distros like Ubuntu would do a lot of good at least telling people that a default option (now Gnome) is highly recommended, but give them alternatives with some brief explanation of their benefits.  I chose LXDE, wondering why I was not given the choice of the newer and more slick LXQt (maybe they hadn’t made it available in Debian yet?), and everything installed easily and I restarted into a new desktop without any problems.

(Come to find out, Debian does have LXQt available, which made me wonder why it wasn’t offered over the older LXDE during install.  It was an odd choice given that LXQt is basically now the preferred choice over LXDE.  I ended up installing LXQt and using it instead of LXDE.)

After installation, I added the contrib and non-free repositories (what can I say, I’m a terrible person that cannot use an all-Free software distro) and set up everything needed for normal operation.  Since this was going to be a normal desktop, I opted for the use of sudo (if this was a server, I wouldn’t have), and after strugglinig with a stupid mistake in sudoers for a while that made me momentarily think that there was a problem with Debian’s sudo (I had left off the character that specified that the name was a group instead of a user), everything worked out fine in the end.

(An aside: why does Debian use the group name sudo to specify its sudo users rather than the more universally accepted group name wheel?  I mean, in the end it really doesn’t matter, I guess, but come on, Debian.)

My incompetence aside, everything in the end just worked and was remarkably stable, something Debian is long known for and the point of its long and carefully orchestrated release schedule.  This release was a long time coming, and the time between this release and the next major one will be yet another long wait, with packages mostly staying static in the name of stability (and security patches being backported instead of packages simply updated), so essentially, the stable branch of Debian is really not an ideal choice for a home desktop distribution, which mostly requires a system that keeps up with the latest package releases, but as a desktop for office desktops, rarely updated systems, and especially servers, it is an absolutely perfect fit.  Sure, you can roll the dice with the Unstable branch for home systems (there is also Testing, but its packages, when broken, generally stay broken until enough testing and updates are done in Unstable), but Debian is at its best on its Stable branch, and its latest looks like a gem.

Congratulations to the Debian team for bringing out yet another masterpiece that is the shining gold standard by which all other distributions are judged.


The Tomato Proof of Human Insanity

Now, granted, I don’t care much for tomatoes in any form, but the fact that fried green tomatoes exist leads me to believe that there isn’t much hope for humanity.

Think about it: tomatoes aren’t really ripe or taste as they should until they turn red.  But some time in the past, someone growing tomatoes was impatient enough to not wait until the tomatoes were ripe.  They wanted their tomatoes right then, and could not wait any longer.

Of course, whoever this was ate this not-yet-ripe tomato, and was disgusted with the results.  At this point, this person is already not very bright, but if he had stopped right then, fine, lesson learned, patience is a virtue.


“Hey, maw!  Whut can we do to this ‘mater (the redneck pronunciation of “tomato”) to make it good?”

“Hell, paw, do whut’cha do with everythin’ else, fry that sucker up!”

I am convinced that putting a ridiculous amount of flour and wash on any food and submerging it in hot oil (likely animal fat, such as lard, which makes my arteries clog up just thinking about it) basically destroys whatever flavor a food ever had.  Hell, these people could probably fry up some dog poop and think it’s good.  The very idea to not only fry a tomato, but an unripe, underdeveloped tomato, is just beyond insanity.  And the fact that people have bought into this insane idea and actually pay money to have people create this insane “food” for them has convinced me that the human race isn’t going to last much longer.


New York Minute

I’m sitting here listening to all my music, shuffled, and Don Henley’s “New York Minute” comes up.

Everything can change, in a New York minute…

This is how I feel about my attitudes and opinions about things these days.  One day I could be an advocate of something, and the next day I will be removing it from my life, spouting how bad it is, and maybe soon after I’ll be back to it, saying it’s not so bad.

I don’t know why.  I’m very much in a chaotic state of mind about things, I suppose.  There is a constant war taking place in my mind; one side, the activist, the person that wants the best out of everything, the advocate of Free software and human rights and freedom, the person that wants to use things that actually work well, against the side of me that tries to be conciliatory and agreeable, to use things that are generally used and in some way useful.  These two sides of me are always at odds, and it manifests itself as a constant war against myself, and to any observer of my behavior, bizarre, erratic, and someone that cannot make up his own mind, and can, indeed, change in a New York minute.

It’s a fair assessment, really, because most level-headed people stick to one side or the other, and aren’t so indecisive and unpredictable that they change back and forth between positions constantly.  But my mind is constantly caught between that idealism and pragmatism, and am trying to find some middle ground.  It may be frustrating to people who try to understand what I am about, but it’s something I can’t really help, and it’s frustrating to me, as well.

In a moment of frustration, I removed all of the posts on this blog because many of the positions I was advocating were, in fact, in flux or not valid any more.  And even the ones I still felt strongly about I wanted to just remove out of principle, and start anew with some sort of blog about me, personally, not just GNU (Linux) and technology.

And as my playlist that is now playing an Eagles tune says, I Can’t Tell You Why.