Preppin for Ubuntu Exports in GMS2

Since I intend to add support for both OSX and Ubuntu exports for LuaRousr, I’ve recently had the pleasure of trying to get an Ubuntu pipeline working. (Note: I have yet to start on OS X, and without a Mac I expect some fun there in a later article). The YYG Article was a great help, but I had a few additional notes to add, figured I’d walk you through the whole thing.

If you’re a more advanced user, I’ve already done this for outsideTheBox, you can check out the CMakeLists.txt file in the the DLL extension’s source for one way to build extensions for Ubuntu use.

The Docs Say Ubuntu 14.04 LTS

Ubuntu 14.04 LTS) is no longer supported on the Ubuntu end, in fact, it’s quite a bit outdated at this point. For me, my target machine - a Lenovo Yoga 710 11” - doesn’t have driver support for it’s touchpad or wifi in that distro of Ubuntu, so it was pretty much a non-starter to begin with. The docs mention that Virtual Machining it up isn’t necessarily recommended and definitely is unsupported (by YYG); I decided to still give a nice dedicated bootable distro a shot.

My first issue was repeatedly getting crtdebug.o errors when trying to build YYC using 16.04 LTS versions of Ubuntu, as well as the Ubuntu 14.04 that I trudged through getting up and running “just in case” the version really was my build issue… eventually, I just tried Xubuntu 17.04 - going for broke with a wholly unsupported version number but hey, at least it’s higher. Lo and behold it worked.

So keeping in mind, the offical word is support for Ubuntu 14.04 LTS, I wasn’t able to get both VM and YYC to run until I used Xubuntu 17.04, so that’s what I’m recommending. Don’t blame me if there’s issues down the line though.. ;) ;)

The Docs say don’t use a virtual machine…

An aside: I’m running Xubuntu off an external USB 3.0 drive, dual booting against Windows 10 (let me know if you want a run down on getting this going, it’s pretty simple), but for convenience sake, I did give it a try using VMware Workstation Player 12.5 and was able to compile and even run my test project.

Get your environment ready!

Once you’ve gotten your defiant Xubuntu 17.04 installation up and running, there’s just a few more steps before you’re building and having fun with Ubuntu builds of your obviously awesome GMS2 project.

First thing first, make sure your distro and all that jazz is up to date:

sudo apt-get update && sudo apt-get upgrade

Just say “suureeee, suuuuureeeeee” to any prompts, by hitting your Y key.

Now that that’s out of the way - we’ve got some installing to do:

sudo apt-get install openssh-client openssh-server libopenal1 libopenal1:i386 lib32z1
lib32ncurses5 lib32bz2-1.0 libstdc++6:i386 libxxf86vm1 libssl1.0.0:i386 libglu1:i386
libxrandr-dev libxrandr2:i386 clang libc6-dev-i386 libcurl3:i386 libssl-dev:i386
Note: if you get an error on lib32bz2-1.0 use (if this package is unavailable use: libbz2-1.0:i386 instead

It’s gonna tell you how much of your hard drive space that’ll take up, which we’re all ok with here, and then install all the libs.

If you don’t plan on using YYC for Ubuntu, you can leave off the clang libc6-dev-i386 libcurl3:i386 libssl-dev:i386 at the end, but you really should be using YYC… it’s free performance gains man.

Now, if you’re using Xubuntu like I am, you’ll also want to add in gnome-terminal for GMS2 to be able to run your game. If you’re thinking you’re gonna do more with your Linux installation (c’mon, it’s fun to dabble), then I recommend also installing g++-multilib. You’re going to be switching between 32 and 64-bit development, and this library helps with that… so let’s get those installed. At this time, I usually install git too, but you don’t need to do it if you’re source control averse.

sudo apt-get install gnome-terminal g++-multilib git

Let the Games be built!

At this point - you’re ready to test your Ubuntu exports. Setup a New Device for your Linux machine under the build options, and then just click your Play button like normal… GMS2 should build and transfer your game to your Linux machine, and you’ll see it running shortly! If you’re having issues here, check out the YYG Article on setting up for Linux… it has a great walk through for setting up your device and preferences.

That’s all!

Thanks for reading - if you’re interested in learning more on actually installing Linux to get this working, let me know - I’ll write a little post for it if there’s demand! Otherwise, be on the look out for a short tutorial series in the very near future!