ARM Build
Moderator: ickputzdirwech
Re: Factorio (Server) ARM Build
ARM has been 64bit for a long time.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.
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.tehfreek wrote: ↑Fri Nov 30, 2018 12:12 am It might be time to reconsider.
Amazon Launches ARM-Based Custom Graviton CPU
-
- Manual Inserter
- Posts: 4
- Joined: Mon Jan 22, 2018 11:59 pm
- Contact:
ARM-Version of Factorio
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
You guys are great - Feuermagier
Re: Factorio (Server) ARM Build
[Koub] Merged into the "Factorio for ARM" topic.
Don't expect an ARM version anytime soon.
Don't expect an ARM version anytime soon.
Koub - Please consider English is not my native language.
- Stargateur
- Fast Inserter
- Posts: 158
- Joined: Sat Oct 05, 2019 6:17 am
- Contact:
Re: ARM architecture
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
(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
Re: ARM architecture
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.
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.
Re: ARM architecture
My 60 SPM factory runs at 30 UPS (headless) on a Pi 4 with qemu.
Re: Factorio (Server) ARM Build
Sad to hear that :'(
Re: Factorio (Server) ARM Build
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ł
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ł
Re: ARM architecture
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).
-
- Long Handed Inserter
- Posts: 64
- Joined: Mon Jul 16, 2018 2:59 am
- Contact:
Re: ARM architecture
The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
Re: ARM architecture
Always expect an ARM to go up. (That’s what Adjustable Rate Mortgages do, eventually.)
Re: ARM architecture
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.Gummiente27 wrote: ↑Wed Mar 02, 2022 9:34 pm The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
There are 10 types of people: those who get this joke and those who don't.
-
- Long Handed Inserter
- Posts: 64
- Joined: Mon Jul 16, 2018 2:59 am
- Contact:
Re: ARM architecture
I remember that some FFF talked about assembly being used, but that might've been replaced.Jap2.0 wrote: ↑Tue Mar 08, 2022 2:49 amTo 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.Gummiente27 wrote: ↑Wed Mar 02, 2022 9:34 pm The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
Re: ARM architecture
Per here (and others) they'll look at the assembly produced by various pieces of code occasionally, but don't write it by hand.Gummiente27 wrote: ↑Wed Mar 09, 2022 2:18 pmI remember that some FFF talked about assembly being used, but that might've been replaced.Jap2.0 wrote: ↑Tue Mar 08, 2022 2:49 amTo 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.Gummiente27 wrote: ↑Wed Mar 02, 2022 9:34 pm The problem wirth supporting ARM is that factorio source contains handwritten optimized x86-assembly.
There are 10 types of people: those who get this joke and those who don't.
[Arm64 Linux Server] Running in ARM64 using Box64
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.
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.
Re: ARM architecture
box64 seems to be the easiest way for developers to support Factorio on ARM.
Re: [Arm64 Linux Server] Running in ARM64 using Box64
Are you sure? Since you also wrote
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.
Re: ARM architecture
Here is a desync report
- Attachments
-
- desync-report-2022-05-29_15-47-04.zip
- (27.5 MiB) Downloaded 124 times
Factorio headless server builds for non-x86_64 CPU architectures, or even source code availability?
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.
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.