Can you convert a GMS game into embedded software?

I would like to know if its possible to convert a GMS game into embedded software, for the motherboard of a standup arcade game system that people put quarters/game tokens into? What are the problems with this process that I have to consider? Has anyone done this, before with a GMS game?

Thanks
 

FoxyOfJungle

Kazan Games
In my opinion, this would be possible with Arduino controllers. I've seen some DLL that makes this communication. With the Leonardo version, it can serve as a gamepad for example, so you could build an Arcade. The system could basically be a normal OS like Windows, except it's set to automatically launch the game when booted. You would need to set up electronic coin insertion systems, so Arduino can interpret this information and send it to the game as keyboard input or simply some kind of buffer.

Example:




I already had experience with Arduino and I still have these boards, they work on something based on C++. Basically you have a lot of possibilities with them.

 
@FoxyOfJungle I was going to refer to Bally Midway, but I discovered their out of business. I had no idea they were gone. But electronics is not my expertise, I would to go to someone who knows how to do this. If was going to hire one of the students at my college, what would they need to know for this type of job?
 

FoxyOfJungle

Kazan Games
Basically, basic electronics like positive and negative poles, electrical energy, voltage (AC/DC), amperage (the arduino pins work with low amperage, basically 40 mAh. So you will need to use resistors and transistors if necessary). They also have PWM and Digital pins. PWM supports floats, Digital only supports 0 and 1 (bool).
  • Electronic components such as transistors, resistors, buttons and cables.
  • Basic naming like GND, VCC, Data, Clock...
  • And the main thing is to have the Arduino board and know how to write the language it uses (C/C++). You also need the USB-B cable to connect to the computer to transfer the code to the chip.
  • Also another main one, a DLL that interprets Arduino for Game Maker.
  • You may also need other things, called "modules" for Arduino if necessary.
  • You may also need 74HC595 chip to expand ports.
Start here:
 
Last edited:
In my opinion, this would be possible with Arduino controllers. I've seen some DLL that makes this communication. With the Leonardo version, it can serve as a gamepad for example, so you could build an Arcade. The system could basically be a normal OS like Windows, except it's set to automatically launch the game when booted. You would need to set up electronic coin insertion systems, so Arduino can interpret this information and send it to the game as keyboard input or simply some kind of buffer.

[...]

I already had experience with Arduino and I still have these boards, they work on something based on C++. Basically you have a lot of possibilities with them.
I wouldn't recommend an Arduino. They're just microcontrollers. You'd still need another system to hold the game and OS. Raspberry Pi's are more suited to this task, since they're an entire single-board computer with similar I/O capabilities to the Arduino. IDK how GM games would run on them, though. The Pi 4's specs seem pretty decent, so I can't see there being a problem if you're not running a massive game. GMS2 added the necessary ARM Linux export for it not long ago.
 

FoxyOfJungle

Kazan Games
I wouldn't recommend an Arduino. They're just microcontrollers. You'd still need another system to hold the game and OS. Raspberry Pi's are more suited to this task, since they're an entire single-board computer with similar I/O capabilities to the Arduino. IDK how GM games would run on them, though. The Pi 4's specs seem pretty decent, so I can't see there being a problem if you're not running a massive game. GMS2 added the necessary ARM Linux export for it not long ago.
This may be a simpler but limited option as Raspberry Pi boards are still quite weak. With Arduino you can use a good computers and put it in an Arcade, for example, in addition to using various types of emulators. Suddenly you can program an emulator manager and run it when needed, just like RetroPie. Anyway, running a game made with GMS 2 in Raspberry is still a bit complicated and not very compatible...
 
This may be a simpler but limited option as Raspberry Pi boards are still quite weak. With Arduino you can use a good computers and put it in an Arcade, for example, in addition to using various types of emulators. Suddenly you can program an emulator manager and run it when needed, just like RetroPie. Anyway, running a game made with GMS 2 in Raspberry is still a bit complicated and not very compatible...
While true, the Pi 4 is more than capable of handling the basic kinds of games you'd put on an arcade setup. Installing and running a GMS2 game on a Pi is no more difficult than installing it on any other Linux desktop.
 
S

Sam (Deleted User)

Guest
I have GameMaker games running on aarch64 FreeBSD 13.0-RELEASE running natively on the Pinebook Pro, thanks to SleepWalker on the FreeBSD.org forums who made Pinebook Pro drivers and OS images. However to run the GMS games natively on such an OS or target architecture, it requires using software that if I were to mention it here, it would be like telling people to eat at a taco bell while on a Chipotle's property. I also have games running in aarch64 Manjaro (64-bit ARM) on the Rasperry Pi which makes the default 32-bit arm GMS running and 32-bit Rasperry Pi OS look pretty bad while comparing OS performance on the exact same hardware, to no surpise. This should really encourage YoYo to support arm64/aarch64 and drop the armv7 crapola in all honesty, I don't know why they chose 32-bit when they say specifically they are trying to get us to target Ubuntu regardless of architecture, and oddly enough the version of Ubuntu supported by GMS isn't available for the Pi except as a server, not a desktop, which also defeats itself in it's own right having no proper headless support. What a shame...

You could use Ubuntu MATE, but YoYoGames say we should use GNOME instead, when Ubuntu GNOME doesn't and won't exist until they transition to the latest LTS that came out already. We live in interesting times. FreeBSD has a linux compatibility layer but it's currently missing a lot of feature since the upgrade from 12.x to 13.0 that won't be available in RELEASE again until 14.x is out. But I don't use the Linux compatbility layer anyway as the games are built for FreeBSD natively like I previously mentioned. I'm also close to supporting DragonFly BSD, which is amd64 only, therefore a bit off topic. Also OpenBSD, NetBSD, and Solaris ports I'm working on. But I won't share what the name of the software is. I can be found pretty easily if you know what you are doing, but it's nowhere good enough to replace GMS, and likely never will be. If admins think I am sharing too many hints, feel free to remove this post and I'll refrain from posting in topics like this, even though that will mean the user not getting fully correct answers. It just makes me sad because I don't like to see people not get what they ask because of post filtering.
 
Last edited by a moderator:
S

Sam (Deleted User)

Guest
@Samuel Venable Just out of curiosity, is there a reason why YoYo games made GMS only compatible for Ubuntu, and not other Linux flavors such as Debian, or Fedora ?
It's mostly an issue because they didn't feel like giving us the ability to make debian packages, which can easily be converted to other package manager formats. Too much effort I guess...

It also doesn't help the GMS is closed source, which means we cannot build games directly from C++ source code and need to use pre-built binaries, which means limited binary compatibility.
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
It's mostly an issue because they didn't feel like giving us the ability to make debian packages, which can easily be converted to other package manager formats. Too much effort I guess...
The debian packages thing has nothing to do with anything. Linux is a massively fragmented market and the work required to target all available (or popular) distros does not make any financial sense compared to how many people actually use and/or target Linux. So it was decided to target the most popular and stable (at the time) distro, which was Ubuntu. Note I talk in the past tense as I have no idea if Ubuntu is still the most popular distro or not.
 
S

Sam (Deleted User)

Guest
The debian packages thing has nothing to do with anything. Linux is a massively fragmented market and the work required to target all available (or popular) distros does not make any financial sense compared to how many people actually use and/or target Linux. So it was decided to target the most popular and stable (at the time) distro, which was Ubuntu. Note I talk in the past tense as I have no idea if Ubuntu is still the most popular distro or not.
It has abolutely everything to do with everything. Create a debian package and bam. Suddenly it "just works" across hundreds of non-ubuntu distros. If you know enough about how a debian package works you will know why this is the case, and that they can also be converted to arch packages witth deb tap further expanding the distro's the games could potentially be installed on. Sure, we could use ldd(1) on the gamemaker runner and extension binaries to see what versions are needed for dependencies and from that information build our own debian packages, but why should we when we are paying YoYoGames to do this sort of thing? I mean, they used to have a debian package export but it was highly unfinished and unusable and that lead a lot of us on.

They could certainly only accept helpdesk tickets concerning Ubuntu, in that sense I agree with you, But there's still no compelling reason to avoid building a debian package when it could expand the marketshare and reached linux users to a large extent, even if no official support is provided for those other distro's. I'm not saying I expect them to support that many linux variants when it comes to helpdesk tickets and fixing bugs, but linux for the most part will work the same across the 4 most popular desktop environmets - GNOME, KDE, XFCE, and MATE, there might be some minor differences, but nothing that would break a game from functioning properly. What distro that's being used is even less of a concern than the DE or WM, imo. Linux is still Linux. The only concern I can think of is a user who is doesn't have Xorg instead and uses pure Wayland instead, or a tiling WM, but they are just about the fewest in number among Linux users.
 
Last edited by a moderator:
@Samuel Venable Just out of curiosity , how well would a GMS game made for Windows work in Wine for Linux ?
Not him, but I've done some testing of this on Linux systems. Nowadays, Proton would be the preferred compatibility layer. It's built off a fork of WINE, but tailor-built for gaming. From my brief tests, GMS game compatibility is extremely high. Performance is within margin of error for most games I've tested. Don't take my word for it, though. Proton has an online database where users rate game performance. Looking up a bunch of popular GM games, I can't find a single one with major problems.

Surely it would be less effort to just use GM's export in the first place if you're planning on targeting a Linux embedded system?
 
S

Sam (Deleted User)

Guest
@Samuel Venable Just out of curiosity , how well would a GMS game made for Windows work in Wine for Linux ?
It's also important to note that wine will only work natively on x86 whether 32-bit or 64-bit. If you want it to work on ARM there are some tutorials online but my guess is because it will be running wine through an x86 emulator like qemu or similar it probably will suffer on performance. But if you aren't targeting arm, wine can be great for most gm games that I've tried.

Edit:

@Nocturne I hope I didn't come across rude in my response. Sorry about that. Also I'm aware that making a debian package wont magically add support for new architectures like aarch64, there would have to be extra work done to make the package support more architectures and make separate builds of it, which you are right makes little financial sense to do that, which is why I suggested they replaced the armv7 now that we have an actual non-server version of Ubuntu LTS out for ARM, but it's only available for 64-bit last I checked.

Edit:

I was wrong the latest ubuntu that came out is not an LTS release, sorry for the confusion.
 
Last edited by a moderator:

gnysek

Member
So it was decided to target the most popular and stable (at the time) distro, which was Ubuntu
From https://gs.statcounter.com/os-market-share/desktop/worldwide we can see, that Linux is used by 2.38% percent of people (this not includes server machines, remember). I can't find any distro stats, but seems that Ubuntu and Mint are most popular. If we count how many people around world uses other Linux distros, and how many of them want to play GameMaker games, and aren't able to play same game on another OS (cause they don't use such) - I think that for many of distros we may get 0 people (as most of them either still have OSX/Windows, or can play mobile version of game).
 
Top