ARM Build

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

tehfreek
Filter Inserter
Filter Inserter
Posts: 391
Joined: Thu Mar 17, 2016 7:34 am
Contact:

Re: Factorio (Server) ARM Build

Post by tehfreek »

It might be time to reconsider.

Amazon Launches ARM-Based Custom Graviton CPU

PunPun
Long Handed Inserter
Long Handed Inserter
Posts: 69
Joined: Sun Mar 27, 2016 7:08 pm
Contact:

Re: Factorio (Server) ARM Build

Post by PunPun »

Aeternus wrote:
Fri Nov 09, 2018 3:31 pm
Then here's it simplified for those who have terminology OCD:
32 bit Windows operating systems have a 2GB addressing space for applications (by default).
Factorio needs more then 2GB to function properly. Therefor Factorio doesn't work well within a standard 32 bit environment.
Therefor Factorio is now a x64 only application.
ARM has been 64bit for a long time.
tehfreek wrote:
Fri Nov 30, 2018 12:12 am
It might be time to reconsider.

Amazon Launches ARM-Based Custom Graviton CPU
Not really. Those cpu:s are abysmally slow compared to even the cheapest x64 processor on current retail market and trying to run a factorio like game would be painful. Their only advantage is their low power costs.

Feuermagier
Manual Inserter
Manual Inserter
Posts: 4
Joined: Mon Jan 22, 2018 11:59 pm
Contact:

ARM-Version of Factorio

Post by Feuermagier »

With the (relatively) recently released RaspberryPi-4 there is now an option to host small servers on a dedicated machine. It would be great if you could compile a version of Factorio for the architecture. There's probably an alright chance that it'll work right out of the box. It would really help me a lot and maybe some other players out there as well. The processing power on the Pi-4 is generally enough to even play games on so I think it could definitely handle an early-midgame server at least. Thank you for your consideration. :)
You guys are great - Feuermagier

Koub
Global Moderator
Global Moderator
Posts: 7447
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Factorio (Server) ARM Build

Post by Koub »

[Koub] Merged into the "Factorio for ARM" topic.
Don't expect an ARM version anytime soon.
Koub - Please consider English is not my native language.

User avatar
Stargateur
Inserter
Inserter
Posts: 49
Joined: Sat Oct 05, 2019 6:17 am
Contact:

Re: ARM architecture

Post by Stargateur »

It's was my understanding that factorio change its server, now it's should be not a problem to have a server on whatever machine. I wonder what could block to just try to have a build for ARM ?

(I'm disappointed cause I buy a raspberry pi 4B, 8go of ram, and I wanted to put some server on it, well not factorio I guess :p)

<insert here a US candatate> I ask once again for your charity

nr2117
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Tue Dec 13, 2016 9:24 pm
Contact:

Re: ARM architecture

Post by nr2117 »

would be interesting to see if it can be done, like "running doom on an X".

Anyone remember the transmeta CPU's? I was told theyw eren't x86, but emulated x86 so windows and linux could be run on it. A friend had a laptop with a 1ghz chip in, he reckoned it was equivalent to a 500mhz pentium 3. This was in, 2002? I thought that was impressive for the era.

hvenev
Manual Inserter
Manual Inserter
Posts: 2
Joined: Mon Dec 09, 2019 11:33 am
Contact:

Re: ARM architecture

Post by hvenev »

My 60 SPM factory runs at 30 UPS (headless) on a Pi 4 with qemu.

Jonny
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sun Mar 06, 2016 7:30 am
Contact:

Re: Factorio (Server) ARM Build

Post by Jonny »

Sad to hear that :'(

herrkocur
Burner Inserter
Burner Inserter
Posts: 16
Joined: Mon Mar 04, 2019 4:26 pm
Contact:

Re: Factorio (Server) ARM Build

Post by herrkocur »

Just found out Oracle Cloud always free tier is up to 4 ARM cores & 24GB RAM, I wanted to shutdown the old laptop I have and transition to cloud with all the 24/7 but low performance (it's core 2 duo 3G RAM) workloads but turned Factorio is a showstopper.

Wube team: I am willing to spend some time figuring build pipeline for ARM64 headless. If it desyncs like hell afterwards I will stand corrected but until then my offer stands.

Cheers,
Michał

Breizh
Manual Inserter
Manual Inserter
Posts: 4
Joined: Sun Apr 04, 2021 4:13 pm
Contact:

Re: ARM architecture

Post by Breizh »

I’m running a server on an Intel(R) Atom(TM) CPU N2800 @ 1.86GHz without problem for ~10 players, so I think that an ARM server on an Odroid N2 for example, which is more powerful than the Intel CPU mentioned could be worth it. And modern Raspberry Pi (3 or 4, in 64-bits) could probably run the game without problem too, at least until the firsts rockets (didn’t try to make megabases on this server at this moment).

Gummiente27
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Mon Jul 16, 2018 2:59 am
Contact:

Re: ARM architecture

Post by Gummiente27 »

The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.

astroshak
Filter Inserter
Filter Inserter
Posts: 614
Joined: Thu May 10, 2018 9:59 am
Contact:

Re: ARM architecture

Post by astroshak »

Always expect an ARM to go up. (That’s what Adjustable Rate Mortgages do, eventually.)

Jap2.0
Smart Inserter
Smart Inserter
Posts: 2361
Joined: Tue Jun 20, 2017 12:02 am
Contact:

Re: ARM architecture

Post by Jap2.0 »

Gummiente27 wrote:
Wed Mar 02, 2022 9:34 pm
The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
To the best of my knowledge it does not, from what I've gathered the main reasons against supporting ARM are low market share and ensuring determinism.
There are 10 types of people: those who get this joke and those who don't.

Gummiente27
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Mon Jul 16, 2018 2:59 am
Contact:

Re: ARM architecture

Post by Gummiente27 »

Jap2.0 wrote:
Tue Mar 08, 2022 2:49 am
Gummiente27 wrote:
Wed Mar 02, 2022 9:34 pm
The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
To the best of my knowledge it does not, from what I've gathered the main reasons against supporting ARM are low market share and ensuring determinism.
I remember that some FFF talked about assembly being used, but that might've been replaced.

Jap2.0
Smart Inserter
Smart Inserter
Posts: 2361
Joined: Tue Jun 20, 2017 12:02 am
Contact:

Re: ARM architecture

Post by Jap2.0 »

Gummiente27 wrote:
Wed Mar 09, 2022 2:18 pm
Jap2.0 wrote:
Tue Mar 08, 2022 2:49 am
Gummiente27 wrote:
Wed Mar 02, 2022 9:34 pm
The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
To the best of my knowledge it does not, from what I've gathered the main reasons against supporting ARM are low market share and ensuring determinism.
I remember that some FFF talked about assembly being used, but that might've been replaced.
Per here (and others) they'll look at the assembly produced by various pieces of code occasionally, but don't write it by hand.
There are 10 types of people: those who get this joke and those who don't.

8x13b
Burner Inserter
Burner Inserter
Posts: 5
Joined: Sun May 29, 2022 10:55 pm
Contact:

[Arm64 Linux Server] Running in ARM64 using Box64

Post by 8x13b »

Hello!

I would like to share how I am running a Factorio server on ARM64 and my struggles, so maybe one of you can help me. I am using an Oracle Ampere A1 server, quad-core, 24G RAM.

Benchmarks (Geekbench 5.4.0):
Single-Core Score: 870
Multi-Core Score: 3368

For comparison, here is an i5-7500 quad-core. Decent CPU.
Single-Core Score: 972
Multi-Core Score: 3285

Not that big of a difference.

The server is more than capable of running Factorio, however, since there isn't an ARM64 native build I am stuck with a compatibility layer (kinda like wine but for CPU architectures) called box64. It came at a big cost of performance. My guess is that since the Factorio build is statically linked, box64 can't find the native libraries to use, and has to use the interpreted version included in the binary.

If the developers want to maybe try to fix this issue as easily as possible, dynamically linking the headless binary may help.

If the developers want to compile this game for ARM, Oracle Ampere A1 servers are free forever, and, maybe a Raspberry Pi can be used as a small server for a small group of friends \:P

Forgot to add, but I get a *lot* of desyncs and CatchUp errors with box64 on the server.

8x13b
Burner Inserter
Burner Inserter
Posts: 5
Joined: Sun May 29, 2022 10:55 pm
Contact:

Re: ARM architecture

Post by 8x13b »

box64 seems to be the easiest way for developers to support Factorio on ARM.

Nidan
Filter Inserter
Filter Inserter
Posts: 254
Joined: Sat Nov 21, 2015 1:40 am
Contact:

Re: [Arm64 Linux Server] Running in ARM64 using Box64

Post by Nidan »

8x13b wrote:
Mon May 30, 2022 10:46 pm
box64 seems to be the easiest way for developers to support Factorio on ARM.
Are you sure? Since you also wrote
8x13b wrote:
Sun May 29, 2022 11:19 pm
Forgot to add, but I get a *lot* of desyncs and CatchUp errors with box64 on the server.
It might be useful to provide some desync reports here so someone (not me) can analyze them to see why the game desynced. My bet is on box64 having problems with floating point rounding.


Back to the first quote: Providing an ARM build is the easy part. I recently had the task of making our product run on ARM. Most of my time was spent on OS-level stuff (which wouldn't matter for factorio). In our actual code I had to fix a grand total of one compile error, which is certainly less than I expected in a code base ranging from ancient C++-in-name-only to modern C++20.

The hard part is supporting it and making sure it doesn't desync.

8x13b
Burner Inserter
Burner Inserter
Posts: 5
Joined: Sun May 29, 2022 10:55 pm
Contact:

Re: ARM architecture

Post by 8x13b »

Here is a desync report
Attachments
desync-report-2022-05-29_15-47-04.zip
(27.5 MiB) Downloaded 120 times

chexo4
Manual Inserter
Manual Inserter
Posts: 4
Joined: Sat Aug 20, 2022 11:21 pm
Contact:

Factorio headless server builds for non-x86_64 CPU architectures, or even source code availability?

Post by chexo4 »

Just headless server builds for now, to reduce the complexity, but it'd be nice to have the full game eventually too. These would probably be just Linux, but it'd be nice to have BSD build also.

Basically, I want to be able to run a dedicated server on unusual (for the gaming space at least) hardware, such as an arm64 server, or an IBM Power server.
It could also be a good idea to make the source code for Factorio available to owners of the game, although not under a typical open source license (no redistribution, so would typically be called "source available" as opposed to open source) and not necessarily accepting outside contributors.

Allowing software to be run on more diverse hardware and operating systems can help find bugs that would be hard to notice on other platforms, but that could still cause problems eventually. And letting people tinker with the source code could help find bugs, improve the engine, and make supporting more unusual platforms such as the ones I mentioned easier by offloading some of that work to the people interested in doing that work.

Anecdotally, I've heard game developers in particular mention that adding Linux support to their games (as Factorio has had for a while, of course) helped them find such bugs and find more of them, because Linux users are generally more technical and provide better quality of bug reporting.

This is why I think builds of the game for unusual platforms, or even source availability, would be beneficial. You could start with just the headless server portion, with GUI builds not included, to focus on getting the engine itself running well, then add graphics support if and when it's desired. And those of us programmers (which I know a lot of Factorio players especially are programmers) who feel like it could also help out with that sort of porting work for other CPU architectures.

Post Reply

Return to “Ideas and Suggestions”