ENIGMA Forums

General fluff => General ENIGMA => Topic started by: Wendigo on October 30, 2018, 09:14:42 am

Title: Enigma on ARM Linux
Post by: Wendigo on October 30, 2018, 09:14:42 am
I recently installed Ubuntu Touch (https://ubports.com) on my Smartphone. Looking through the OpenStore I only found 133 games in total and thought about developing a game myself. Unfortunately there aren't any game engines out there that can export to ARM Linux (except HTML5 games which run pretty slow). Since I have full access to the underlying Linux I wonder if it would be possible to run Enigma on the phone and use the CLI to compile a game that I develop on the desktop.
I have no knowledge about building C++ applications or mobile GPUs so please bear with me if this is completely illusional.  :ohdear:
(Did a quick test with the install.py script but it had issues with the java part)
Title: Re: Enigma on ARM Linux
Post by: Goombert on October 30, 2018, 10:15:12 am
Hey Wendigo, I will try to offer some advice though my experience here is limited too. First, it doesn't surprise me Java would be an issue. But that's ok, if you want to use the command line you don't need Java now, that's just if you want to edit and run the game with LGM. Because I have been busy trying to focus on RGM, we haven't quite documented how to use the new command line as much, but it's pretty simple.

The process is well documented for Windows:
https://enigma-dev.org/forums/index.php?topic=2939.msg27287#new

You just need a few additional packages such as protobuf, pugixml, yaml-cpp, and rapidjson. The best place to find the packages that you need for your Linux distribution is probably the Travis CI yaml file in our repo since the CI we run on every pull request builds the command line.
https://github.com/enigma-dev/enigma-dev/blob/128d62949f988ef747f6926111fb11ae841558ad/.travis.yml#L17

You'll probably want to do a clean build, so I'd run [snip]make clean[/snip] first. Then you'll just want to run [snip]make emake[/snip] to build the C++ CLI. Once you've successfully built emake, instructions for running it can be found on the wiki.
https://enigma-dev.org/docs/Wiki/Command_line_interface

In the future we can look at building a new debian package for emake. Right now my priority is getting an RGM beta out to start replacing LGM with it. RGM is not just a different IDE but builds your game using the same underlying tools as emake. In this way, an IDE like LGM or RGM is considered supplementary or optional.
Title: Re: Enigma on ARM Linux
Post by: Wendigo on October 31, 2018, 03:07:20 am
Thanks for the quick reply. I'll check it out on the weekend.

EDIT:
No real progress yet. I had to solve a problem with the Libertine container that had a corrupt config after upgrading from Vivid to Xenial. Now that this is running I need to find a way to either enlarge the terminal App or SSH into the container to do the installation of the Enigma packages.
Unfortunately I hadn't enough time at the weekend but I'll keep you updated on further progress.
Title: Re: Enigma on ARM Linux
Post by: Wendigo on December 05, 2018, 04:43:33 am
So it turned out that developing (GPU accelerated) games for Ubuntu Touch is a real nightmare. The combination of ARM architecture and MIR display server makes it nearly impossible to develop a game that runs at decent speed since XMIR doesn't support GPU acceleration.
The only engine that supports both MIR and ARM is SDL2 in version <= 2.0.8 (they removed MIR support in 2.0.9 lately)
I wonder if it will be possible to use the SDL backand of Enigma to create games in RGM when it is out in the wild.
A small peek at the Github repo showed that libsdl2-dev gets installed. Maybe it works when I specify a specific version in this line (https://github.com/enigma-dev/enigma-dev/commit/4f492de6f2be9b4d58e5e9ca171c9f41e806e137#diff-354f30a63fb0907d4ad57269548329e3R152)