I'm just an ex-boogeyman
It's December! Which means everything comes to a screeching halt while I juggle the concept of taking a holiday (this time including a honeymoon, eep) while also maintaining support for 60 games during one of the busiest sales of the year. Whatever I guess!
At the moment I'm currently waiting for the Master Chief Collection to unlock so I can poke around it, but it doesn't unlock for another hour (as I'm writing this) so I thought I'd spend some time talking about the past year and my plans for the next.
First, Proton. This took up the majority of my time in 2019 and I can happily say that FNA and FAudio are now comfortably integrated into Wine now, so my job there is officially done. While I would have loved to find an excuse to continue working on preserving older games, it's probably best that I start refocusing on independent games being released today. It was a lot of fun and both FNA and FAudio got TONS of work done as part of Proton development, so I would like to thank both Valve and CodeWeavers for letting some rogue Linux porter jump into the project and mess with a bunch of games that nobody except me cares about, while also accidentally fixing some AAA titles along the way :P
Alongside Proton I did manage to get some ports done, including an XNA4 update for Flotilla, fresh ports for Unexplored and SUMICO, and a quick port of Growing Pains, the last title released by Smudged Cat. All of these games were rather old and way past their tail, so thanks to all of those developers for letting me do an FNA recompile!
That said, the Proton job seemed to come at a pretty good time... 2019 felt like such a Dark Age for Linux games, partially because developers just seemed to stop caring about multiplatform support all at once, and partially because users let their guard down a bit regarding native support. What used to be a pretty straightforward discussion now gets muddled by stuff like Proton, irrelevant container systems like Flatpak and Snap, and people suddenly deciding that distributions were incompatible with one another...? I sort of get the first two things, but that last one really blows my mind. In retrospect I'm now a bit more concerned about how users reacted to my system requirements being listed as a glibc minimum and not an arbitrary list of distros.
And yes, devs who love having great power and ignoring its great responsibility will make massive uninformed generalizations about a platform they've never booted as if that will somehow help the situation. Yawn, old news.
Luckily, devs are also huge sellouts, and the people behind Stadia have money to burn. Something I'll be tackling next year is bridging the gap between a Stadia build and a desktop Linux build, which is already shockingly small. In FNA we already have single-assembly portability prepared, and we were able to make GGP builds of ANGLE publicly available since there's no private code needed to make those builds possible! For SDL games that will be a recurring pattern, if I do everything right. All of my Stadia contracts will mandate a desktop Linux release if it doesn't already exist, so don't expect me to drop that commitment if this Stadia thing actually survives.
There are also some other ports down the line, but not very many - you can see my whole list at the bottom of the page. I do need to re-do the GameCube adapter support in SDL, since the original hidapi refactor worked on Linux but wasn't treated so well by Windows, and SDL_GetAudioDeviceSpec is getting increasingly hard to ignore. After the initial Stadia burst that will probably come up next. I will most likely have to re-evaluate my strategy for port inquiries, since developer morale for Linux absolutely cratered this year and nobody in power seems to be interested in undoing that.
Aside from that, maybe I'll look at FNA Vulkan, who knows. Depends on how my GitHub Sponsors campaign goes... see below for more on that.
But anyway, that ending was really sad, so let's change the subject. How about games discussion that is fun and not miserable! Stuff I played this year:
Anodyne 2 was my favorite game this year. I still want to do an Anodyne 1 rewrite for Sean so it doesn't require Adobe AIR anymore (seriously).
Indivisible was really good and I am very impressed with cybik's port. I think it's my wife's favorite game from this year.
Marble Skies is really close to Marble Blast but not close enough. It's still good though.
Pikuniku was good but short. Kind of wish UGC for co-op was a thing. Mrs. flibit went from "wtf is this game" to falling off the couch laughing at baskick rather quickly.
A Short Hike seems fine so far but I wish I could turn off the pixelation.
Super Mario 64 Land is a lot of fun when the platforms aren't overly narrow.
QUBE is fun when it's not a physics puzzle.
DOOM, Halo, Half-Life 2, Spyro, Crash, Deus Ex: HR, and Splinter Cell: Chaos Theory are all still good.
GitHub Sponsors!
I'm happy to announce that I am now in the GitHub Sponsors program! This means that anyone with a GitHub account can now subscribe to a monthly payment system that will allow me to continue my work maintaining the numerous FOSS game development projects that I maintain, including FNA and FAudio.
You can find my sponsorship profile here.
If you're on the fence about this, I'll give you quite the incentive: Microsoft has offered to match my first year's funding! They have offered up to $5000USD for the first year, and are also skipping all payment processing fees, so in addition to taking extra money out of Microsoft's pocket (which I think my audience will take some joy in...), everything you pledge will go directly to me. A slight change of pace from Patreon's usual scams, hm?
I've been very vocal about the poor state of the crowdfunding ecosystem, and I think the GitHub Sponsors program is very much what we've all been looking for. I think you'll agree, and I hope you'll pledge what you can!
flibit's Official Catalina Plan
This post has been archived.
SPIR-V Emitter for MojoShader (BETA)
This post has been archived.
Want a Linux game?
I'm now working my way back to just making native Linux games, slowly but surely. I have my own hit list as always, but I'm always looking for more projects! Now's a really good time to hit me up while it's on my mind. Don't forget, whether you're an indie developer or an independent developer, there's a good chance I can accommodate your needs!
Love, flibit
flibitijibibo.com
Bill's Hat
Turn a minimal Fedora installation into a SteamOS box!
1. Write Fedora Workstation NetInstall ISO to a USB drive
2. Boot USB image, install Minimal configuration with standard partition layout matching SteamOS'
3. Set root password, create a user called 'steam', set a password for it
4. Reboot, log in as root
5. A whole bunch of commands:
dnf group install hardware-support
dnf install Xorg xorg-x11-drv-evdev libglvnd-egl vulkan-loader.x86_64 vulkan-loader.i686 lightdm flatpak NetworkManager-wifi kernel-modules-extra bluez
dnf config-manager --add-repo=https://negativo17.org/repos/fedora-steam.repo
dnf install steam steamos-compositor steamos-modeswitch-inhibitor.x86_64 steamos-modeswitch-inhibitor.i686
setsebool -P allow_execheap 1
systemctl enable sshd.service
systemctl enable lightdm.service
systemctl set-default graphical.target
6. Edit /etc/lightdm/lightdm.conf:
pam-service=lightdm-autologin
pam-autologin-service=lightdm-autologin
user-session=steamos
autologin-user=steam
autologin-session=steamos
7. Create /var/lib/AccountsService/users/steam:
[User]
Session=steamos
XSession=steamos
Icon=/home/steam/.face
SystemAccount=false
8. Reboot, should work now!
9. Additional steps for NVIDIA users:
dnf config-manager --add-repo=https://negativo17.org/repos/fedora-nvidia.repo
dnf install kernel-devel dkms-nvidia nvidia-driver-libs.x86_64 nvidia-driver-libs.i686
reboot # Should be using the NVIDIA driver now!
Bill's Hat TODO
- Automate all this crap
- Steam in-home streaming firewall settings?
Wait, a "plan"?
Well, this is a .plan file, so here's my TODO. Expect nothing from it, ever.
In Progress
Honeymoon!
Christmas!
Waiting Room
DK BONGO QUEST
- Reinvestigate multi-joystick device support
SDL_GetAudioDeviceSpec
- Oh god I don't even know dude
Codename BlackHole, StonedTachyon, AcidBath
- Starts in January
Codename FullCircle
- Need some backend access first...
Codename Swine
- Waiting for content completion
Codename CityVessel
- Not even finished yet, whatever
Codename SpinnyTokelau
- Assessment coming up in... uhh...
ScoreRush PC
- Graphics, AppAdmin, strings for PC settings, blah blah blah
Zeboyd Catalog
- Possibly no source, really just need AppAdmin access tbh
FAudio GStreamer
- Decoders are terrible, need to send test data when requested
64-bit Panic
- Waveform repo :/
- They Bleed Pixels middleware :/
- Gotta rebuild all MojoSetup packages (F you Canonical)