Join us on the Linux Gaming community on Lemmy, the federated open source alternative to Reddit.

Utopixel blog about porting their title Outer Wonders to Linux

By - | Views: 7,600

While off-the-shelf game engines like Unity, Godot and Unreal often make it easy to bring games to Linux - what about developers who roll their own? Utopixel have blogged about bringing their new game Outer Wonders to Linux.

Outer Wonders is an in-development pixel-art adventure with plenty of puzzles to solve. You play as Bibi, a sweet little round monkey. Exploration is going to be a key part in solving puzzles, as you may need to have a good look around for how to overcome each one as they're hoping it will be "more elaborate than traditional maze games".

The developers mentioned that "supporting Linux specifically was no easy task" but why? Well, mainly it seems because "documentation about building and deploying games for Linux is scarce and often intricate" so they wanted to do their part on helping others achieve excellent Linux support and how they did it for Outer Wonders.

The developer goes through details like ensuring the widest compatibility possible by dealing with glibc, SDL 2, dependencies and more. It's actually a pretty interesting piece for developers who are not using a traditional game engine. I do love the games industry when it comes to indie developers like this. There's such a great feeling of cooperation and coming together, when you see developers publishing what they've learned for others like this to then learn from and use.

Want to give it a go? Good news, there's a demo available right now on itch.io featuring 7 puzzles, requiring 15-30 minutes overall.

Check out their blog post and try Outer Wonders from itch.io.

Article taken from GamingOnLinux.com.
22 Likes , Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG and Humble Store. See more here.
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
9 comments

I am really happy they went through the effort to add Linux support but at the same time I can't help but notice this:

"We don't have a Linux-powered computer available for testing yet so Outer Wonders has been tested only in virtual Ubuntu machines so far."

I see so many developers say this. Do developers seriously not know how to dual boot an OS ? Failing that do they not have a spare HDD they can toss Linux onto and boot onto that ?
mirv 27 May
View PC info
  • Supporter Plus
While I enjoy reading such blog posts from developers as a general rule of thumb, in this case there are a couple of "gotchas" that I feel compelled to mention (given here just as only my own opinions, of course, which I'm well aware actually count for very little).

Too much overuse of bold and italics. It can be used to great effect as a summary of something, but sprinkled too liberally and it just gets in the way.

QuoteUsing a custom game engine requires more manual work, especially when it comes to building for Linux.

I...disagree here. I would say it take more manual work, especially for GNU/Linux if you're only used to a Windows environment. If you're used to doing things one way, you'll find any other way naturally more difficult at first. I know this sounds nit-picky, but it's right at the start and actually kinda put me off reading through the rest (I did anyway) because it's not my experience at all, and most criticisms apply equally to Windows...or any development environment.
And yeah, even I recognise that as harsh, and while I could just delete the above, it's what first popped into my head. Perhaps it's useful as a point of view for consideration/discussion on how to better help development on GNU/Linux overall?

SDL2 deserves a shout-out for putting a lot of work into being recoverable from distasteful linking practices. Just wanted to mention that this alone is worth using it over other frameworks.

Editing the rpath is not what I would do. LD_LIBRARY_PATH exists for a reason, and it's to provide search paths for libraries. This is indeed something I would consider a little more effort, but it's one-off and well and truly worth it for GNU/Linux releases: a startup script. Something to set the current working directory, set LD_LIBRARY_PATH if the developer is providing custom built libs, start a game, tidy up, even redirect output to a log file.
The main benefit behind all this is that down the line it can be much easier to modify the execution environment to keep a game running, and more experienced GNU/Linux users will certainly appreciate it.

glibc compatibility though, yeah that can be a pain. "Don't include what you don't need" is a good rule of thumb, but with middleware, 3rd party libs, all that jazz, it's not always so easy.
Liam Dawe 27 May
Quoting: PublicNuisanceI see so many developers say this. Do developers seriously not know how to dual boot an OS ? Failing that do they not have a spare HDD they can toss Linux onto and boot onto that ?
A big part of it is a lot of developers only have their one machine. Even if they have more than one drive, screwing up your only machine is a pretty big risk. Installing Linux might be easy nowadays but that doesn't mean if fits in with the hardware developers currently have. It's why I honestly think WSL2 with the proper GUI support coming up could really help developers with the testing part.
mirv 27 May
View PC info
  • Supporter Plus
Might be worth mentioning in case the developer reads this, or any developer reads this: if stuck and wanting to know how to do something, ask! GNU/Linux users are generally a very helpful lot, and funnily enough there's this interesting website dedicated to Gaming, specifically on GNU/Linux, where many experienced people can be found.

Some issues are well known and have tried & true solutions, even if people newer to the realm are unaware of them. Other issues are challenges that are just plain fun for people to investigate. So it really never hurts to ask.
ObsidianBlk 27 May
Quoting: Liam Dawe
Quoting: PublicNuisanceI see so many developers say this. Do developers seriously not know how to dual boot an OS ? Failing that do they not have a spare HDD they can toss Linux onto and boot onto that ?
A big part of it is a lot of developers only have their one machine. Even if they have more than one drive, screwing up your only machine is a pretty big risk. Installing Linux might be easy nowadays but that doesn't mean if fits in with the hardware developers currently have. It's why I honestly think WSL2 with the proper GUI support coming up could really help developers with the testing part.

I get what you're saying and agree with you for the most part. That said, though... A hard drive swap or even a USB bootable drive is pretty damn trivial and should be as close to zero risk as you get when it comes to hardware (and the USB option *is* zero risk, for all intents and purposes). If they can spin up a VM, they should have all the know how to roll a spare drive with a linux install.
F.Ultra 27 May
Quoting: mirvglibc compatibility though, yeah that can be a pain

I would say that the main problem that devs do here is that they link with a too new version of glibc, the thing with glibc is that it's extremely forwards compatible but not backwards compatible (aka build on an old version of glibc and you program works on a new glibc but not the other way around).

edit: However that is not really needed either if you are willing to put in a real effort. E.g in this case according to the blog they had to install Ubuntu 20.04 because they didn't know that you can still access the full 14.04LTS universe by changing the URI from where APT fetches updates so they ended up with a "too new glibc" but you can still downgrade the version since glibc contains every single old version back to 2.1

As an example when I compile a program here on my Ubuntu 20.04 I get a link to the 2.14 version of memcpy() due to glibc implementing an optimized version of memcpy in 2.14:
 
0000000000000000      DF *UND* 0000000000000000  GLIBC_2.14  memcpy


I can however in my source code force glibc to use the old version of memcpy:

 
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");

int main (int argc, char **argv)


And after compile I now link with the old version of memcpy():

 
0000000000000000      DF *UND* 0000000000000000  GLIBC_2.2.5 memcpy



Last edited by F.Ultra on 27 May 2021 at 6:08 pm UTC
CatKiller 27 May
Quoting: PublicNuisanceI am really happy they went through the effort to add Linux support but at the same time I can't help but notice this:

"We don't have a Linux-powered computer available for testing yet so Outer Wonders has been tested only in virtual Ubuntu machines so far."

I see so many developers say this. Do developers seriously not know how to dual boot an OS ? Failing that do they not have a spare HDD they can toss Linux onto and boot onto that ?

It does seem extremely unprofessional. If you were making a Windows game, you wouldn't release it without testing it on a Windows machine; if you were making a Mac game, you wouldn't release it without testing it on a Mac; the same with PlayStation, Xbox, or Switch. And Linux is free: you don't need a whole new machine, you just boot your test machine into a different environment.

"Here's a thing. We didn't check to see if it works. Give us some money." isn't really adequate. You get better service than that at the flea market.


Last edited by CatKiller on 28 May 2021 at 1:33 am UTC
F.Ultra 28 May
Quoting: CatKiller
Quoting: PublicNuisanceI am really happy they went through the effort to add Linux support but at the same time I can't help but notice this:

"We don't have a Linux-powered computer available for testing yet so Outer Wonders has been tested only in virtual Ubuntu machines so far."

I see so many developers say this. Do developers seriously not know how to dual boot an OS ? Failing that do they not have a spare HDD they can toss Linux onto and boot onto that ?

It does seem extremely unprofessional. If you were making a Windows game, you wouldn't release it without testing it on a Windows machine; if you were making a Mac game, you wouldn't release it without testing it on a Mac; the same with PlayStation, Xbox, or Switch. And Linux is free: you don't need a whole new machine, you just boot your test machine into a different environment.

"Here's a thing. We didn't check to see if it works. Give us some money." isn't really adequate. You get better service than that at the flea market.

While I agree with you, they did perform tests just on a virtual machine, yes you won't catch amd/nvidia/intel specific GPU driver oddities (but then they don't seem to use advanced 3d capabilities anyway), but everything else should be similar to testing on real hw.
CatKiller 29 May
Quoting: F.UltraWhile I agree with you, they did perform tests just on a virtual machine, yes you won't catch amd/nvidia/intel specific GPU driver oddities (but then they don't seem to use advanced 3d capabilities anyway), but everything else should be similar to testing on real hw.
Yeah, I wasn't trying to single these guys out. Releasing for Linux and trying to help others release for Linux are both good things. Just that attitude expressed (obliquely) by some devs that it doesn't matter how shabbily they treat their Linux customers because it's only 1% of the market, right?

Game devs should use their whole arse.


Last edited by CatKiller on 29 May 2021 at 9:48 am UTC
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

This ensures all of our main content remains totally free for everyone with no article paywalls. We also don't have tons of adverts, there's also no tracking and we respect your privacy. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.

Livestreams & Videos
Community Livestreams
Latest Forum Posts