Linux 🐧 Running GMS2 Beta on Arch linux (and possibly other distros too)

GMWolf

aka fel666
⚠This makes use of an early beta meant to run on ubuntu. Needless to say this is not supported by YYG and results may vary ⚠

Installing and running the new GMS2 beta on Arch linux

I will cover:
  • How to install the beta on arch linux
  • How to run games from the IDE on arch linux
Prerequisites:
  • Some linux experience.
  • Some make experience.
  • yay (but of course you can just use pacman if you like)
  • an x server or wayland.
  • clang (although you can probably modify the make files to use gcc instead, i didn't try)
Installing the beta
  1. Download the beta from http://gms.yoyogames.com/GameMakerStudio2-Beta-23.1.1.329.deb
  2. Install debtap
    1. yay -S debtap
  3. Create the arch package
    1. cd <where you downloaded game maker>
    2. sudo debtap -u
    3. debtap GameMakerStudio2-Beta-23.1.1.329.deb
  4. Install the arch package
    1. sudo pacman -U gamemakerstudio2-beta-23.1.1.329-1-any.pkg.tar.zst
  5. Done! Game maker should show up along with all your other applications.The IDE should pretty much just work out of the box.
Running your game
  1. Switch to YYC
  2. Navigate to your games build directory tmp/yyc/<project name>
  3. Create a new file called GNUmakefile. add the following:
  4. Code:
    b: a
    mv <PROJECT_NAME> _app
    cp run_app <PROJECT_NAME>
    a:
        make -f makefile COMPILEOPTS=-no-pie LINUX_LIBDIR_USR=/usr/lib

  5. Replace <PROJECT_NAME> with your project name
  6. create a new file called run_app with the following:
    Code:
    #!/bin/bash
    export DISPLAY=:0
    ./_app
  7. make the file runnable:
    chmod u+x run_app
  8. Good to go! launching the game from the IDE should work.

How it works:
First of all we want to override some of the options found in the default makefile. To do this we create the GNUmakefile which has higher priority over the default makefile.​
We run make on the original makefile with a couple variables overridden to ensure we dont use PIE and use the correct library directory.​
Game maker will try to run our compiled application but doesnt export the right enviroment variables. So we will instead inject our own script to call it correctly.​
We do this by replacing renaming our compiled application, and then substituting it with our own launch script.​
The launch script exports the right display and just runs the app.​


Hope you find this useful, let me know if you have any questions or issues!
 
Last edited:

Samuel Venable

Time Killer
Probably worth noting wayland is not required but an x compositor actually is as the games are written in x11 and the ide as well if I had to guess.
 

Samuel Venable

Time Killer
Also thought I'd mention, installing on non-Ubuntu-20.04-LTS derived distro's will very likely break native library extensions. If you intend to use extensions of any kind on unofficially supported Linux distro's, then ask the developer of said extension for access to the source code and steps to build the library from scratch, as that will in most cases be needed to get it working depending on the binary compatibility and dependency versions used. My extensions are open source, if anyone needs help with this from me in specific feel free to shoot me a message.
 

gnysek

Member
If we were at Hogwart, you would just get 100 points for Gryffindor. I'm not using Arch linux, but that part with GNUmakefile is clever, and solves a problem which could look not solvable without YYG.
 
Last edited:
Was wondering if anyone has a solution. I keep getting the error that there is no runtime install when I launch the IDE. I tried installing dependencies from the page for Ubuntu, but no dice. Any thoughts? Currently running EndeavorOS
 

Hugar

Member
⚠This makes use of an early beta meant to run on ubuntu. Needless to say this is not supported by YYG and results may vary ⚠

Installing and running the new GMS2 beta on Arch linux

I will cover:
  • How to install the beta on arch linux
  • How to run games from the IDE on arch linux
Prerequisites:
  • Some linux experience.
  • Some make experience.
  • yay (but of course you can just use pacman if you like)
  • an x server or wayland.
  • clang (although you can probably modify the make files to use gcc instead, i didn't try)
Installing the beta
  1. Download the beta from http://gms.yoyogames.com/GameMakerStudio2-Beta-23.1.1.329.deb
  2. Install debtap
    1. yay -S debtap
  3. Create the arch package
    1. cd <where you downloaded game maker>
    2. sudo debtap -u
    3. debtap GameMakerStudio2-Beta-23.1.1.329.deb
  4. Install the arch package
    1. sudo pacman -U gamemakerstudio2-beta-23.1.1.329-1-any.pkg.tar.zst
  5. Done! Game maker should show up along with all your other applications.The IDE should pretty much just work out of the box.
Running your game
  1. Switch to YYC
  2. Navigate to your games build directory tmp/yyc/<project name>
  3. Create a new file called GNUmakefile. add the following:
  4. Code:
    b: a
    mv <PROJECT_NAME> _app
    cp run_app <PROJECT_NAME>
    a:
        make -f makefile COMPILEOPTS=-no-pie LINUX_LIBDIR_USR=/usr/lib

  5. Replace <PROJECT_NAME> with your project name
  6. create a new file called run_app with the following:
    Code:
    #!/bin/bash
    export DISPLAY=:0
    ./_app
  7. make the file runnable:
    chmod u+x run_app
  8. Good to go! launching the game from the IDE should work.

How it works:
First of all we want to override some of the options found in the default makefile. To do this we create the GNUmakefile which has higher priority over the default makefile.​
We run make on the original makefile with a couple variables overridden to ensure we dont use PIE and use the correct library directory.​
Game maker will try to run our compiled application but doesnt export the right enviroment variables. So we will instead inject our own script to call it correctly.​
We do this by replacing renaming our compiled application, and then substituting it with our own launch script.​
The launch script exports the right display and just runs the app.​


Hope you find this useful, let me know if you have any questions or issues!
first let me say i love your work! i used to be Gamemaker fan until YoYo took over for a lot of reasons but that is another subject for another time. I was able to start up using your instructions but
1.. screen resolution is too high where text is also illegible. How can i lower the res.
2. I get this error "Unable to access the Runtime feed and no local Runtime installed. Please check your internet connection and start Gamemaker 2 again.'Screenshot_2021-10-06_19-08-56.png
n.b this the actual size of the screenshot.
Oh and I am using EndeavourOS with a dual display
16gb of Ram
Nvidia Geforce 1650 video card
500gb NVE Drive
AMD Ryzen I3 3100 Cpu
 
Last edited:

Samuel Venable

Time Killer
first let me say i love your work! i used to be Gamemaker fan until YoYo took over for a lot of reasons but that is another subject for another time. I was able to start up using your instructions but
1.. screen resolution is too high where text is also illegible. How can i lower the res.
2. I get this error "Unable to access the Runtime feed and no local Runtime installed. Please check your internet connection and start Gamemaker 2 again.'View attachment 43454
n.b this the actual size of the screenshot.
Oh and I am using EndeavourOS with a dual display
16gb of Ram
Nvidia Geforce 1650 video card
500gb NVE Drive
AMD Ryzen I3 3100 Cpu
I had the same issue on Raspberry Pi OS. Russell said in another topic this is a problem with the transition from OpenTK to SDL2 for font rendering, and there is no easy solution. I hate to say it, but the best we can do at this point while waiting for this to be fixed is distro hop until we find one that works.
 

Samuel Venable

Time Killer
I haven't seen this myself but others have reported it. I'm sorry I don't know how you could fix that.
Did you try this on vanilla arch or manjaro? Or something else? That would help give them an idea of what distro they could switch to and see if that solves anything
 

Hugar

Member
I haven't seen this myself but others have reported it. I'm sorry I don't know how you could fix that.
there was a post on reddit where it was advised to not use the wine-gecko version on Mono but rather the one from Mono-project.com what do u think?
 

Aldran

Member
I created an account just for this. I ran into the issue while running on Manjaro. The error I got seems to be revolved around SSL certification failing to authenticate and download the runtimes.
I followed this guide: https://github.com/KSP-CKAN/CKAN/wiki/SSL-certificate-errors#arch. Just follow the "Importing System Certificate", "Importing Mozilla's certificates", and "Removing expired Let's Encrypt certificates" headings.

Imho I think the last two are the ones that fixed it.

I am however failing at finding the YYC fix to be able to run the program. I cannot find tmp/yyc/<project name>. Or I should say I am finding many yyc locations but none seem to work.
 
Last edited:
Top