Page 1 of 1

Run Factorio on Pi 3B?

Posted: Tue May 16, 2017 8:22 pm
by FiyaFly
Forgive me if I sound ignorant, I just got a Raspberry Pi 3B. For the one on my desk I am configuring a phone system, but the Pi just might drag me in enough to buy a few more for playing around with. They're no gaming PC, but I know that factorio is rather lightweight and not terribly intensive on graphics. What are the chances the Pi 3B would be able to run Factorio?

My reasoning behind this is because I have a couple friends that I'd love to both show the game and play with, but their computers are... problematic. One is a laptop that is 10 years old, so hardware is abysmal and I can bet that something in it is failing, and another friend has a laptop that intermittently locks up. I'm working with the second one, but hardware issues aren't necessarily easy to troubleshoot... </rant>

Anyways-

From the FAQ:
What are the minimal PC requirements?
1GB RAM, 512MB dedicated video memory, 1280x720 screen resolution. You also require a 64-bit operating system.

Pi 3B Specs:
A 1.2GHz 64-bit quad-core ARMv8 CPU
1GB RAM

By no means would I expect this to run it full scale without hesitation, but I can't help but wonder if I were to set software rendering and texture-size to 4096, this just might run it relatively smoothly.
What do you guys think?

Re: Run Factorio on Pi 3B?

Posted: Tue May 16, 2017 8:44 pm
by sillyfly
That would require Wube to build Factorio for the ARM architecture, which isn't very likely to happen soon...
If they ever port Factorio (or a future incarnation of it) to mobile...

Re: Run Factorio on Pi 3B?

Posted: Tue May 16, 2017 9:23 pm
by quinor
There are some problems with Factorio on ARM, devs stated that it's non-trivial to compile on ARM.

Re: Run Factorio on Pi 3B?

Posted: Wed May 17, 2017 11:26 am
by Loewchen
Factorio needs very few very fast cores, ARM provides the polar opposite AFAIK, we have current intel/amd cpus working to capacity when simulating a big map as server. I highly doubt the devs would spend time to make it run on ARM without any hardware available that could realistically run it.

Re: Run Factorio on Pi 3B?

Posted: Wed May 17, 2017 11:38 am
by ChoMar
Factorio is lightweight only on gpu. But pretty heavy on CPU. The multithread thingy is announced but got delayed for further versions, but even then a PI wpuld be far from being able to run this game. My old i5 2500 reches its limits in my current game and even at its age its far more potent than a rpi. Memory size, speed and bandwith also matter, and the PI doesnt have anything that compares with a moder desktop cpu. Factorio may look like itll run on old systems. But it wont.

Re: Run Factorio on Pi 3B?

Posted: Wed May 17, 2017 6:43 pm
by FiyaFly
I'm a project kind of person, so I'm overly curious on this. Understood that it won't run on ARM. I'd almost like to talk to the devs to figure out what it'd take to get it to run on ARM. Maybe not Pi, but ARM, so that there is at least the possibility to do so in the future. I have a decent background in development and was almost hoping to help out, if I can. I can't move to Prague, or else I would actually apply to work with them.

Re: Run Factorio on Pi 3B?

Posted: Sat May 20, 2017 10:51 pm
by ledow
Recompiling anything that compiles under a major compiler to run on ARM is generally trivial in the modern age, so long as it is generally portable.

The fact that Factorio is on Mac, Linux and Windows suggests that most of the obvious stuff is taken care of.

The next problem that hits is having the underlying libraries available for the platform.

In factorio's case:

Agui
Allegro
libcurl
FreeType
Lua
MiniZip
Ogg
open-vcdiff
StackWalker
trio
UnitTest++
Vorbis
zlib
Serpent
Parts of BSD Standard C Library
libjpeg-turbo
ImGui

None of that is particularly detrimental - it is all either portable, unnecessary, or has portable equivalents.

Assuming an ARM base with OpenGL drivers and a standard Linux distribution, that all the portability hacks are minor (e.g. bitfield order, etc.), the only real barrier is setting up the development tools to churn out a file. That's generally boring but not normally that difficult if you know what you're doing.

As pointed out, though, the problem isn't whether you can get an ARM binary. You could probably get an ARM Linux EABI binary out in a few days of effort and testing. The problem really would be that it would run like a stunned sloth on any ARM hardware out there. The RPi3 may "sound" fast but it overheats and throttles if you push it, the the GPU is really just a toy. And Factorio can make my 12-core 2.5GHz laptop with nVidia card spin up the fans even on the smallest of maps. An RPi3 will likely fall over before you managed to get a mini-base enough to research the rocket, and it would be all but unplayable.

You'd need a high-end Chromebook or equivalent to make even casual use of the game, and it probably wouldn't matter what you did in terms of resolution, scaling sprites, optimisations, etc.

As someone who has done x86->ARM ports, GTK->SDL conversions, desktop->low power handheld ARM console conversions, RPi testing and development (was a preorderer of the very first run), I think it's not that it's particularly hard to do. It would need work, obviously, but it's not onerous. The problem really is that it would be incredibly disappointing and limiting. You can't go loading 2Gb of textures into the RPi, and you can't go expecting to get even basic desktop-levels of performance (e.g. equivalent to cheapest mobile dual-core x86, with an Intel HD) out of it.