ARM Build
Moderator: ickputzdirwech
Re: armhf Server Build
The game isn't really client-server based - the "server" still runs the entire game simulation exactly like all the clients do. The only difference is the server doesn't start up a user interface or create a player.
Re: armhf Server Build
A much simpler solution may be x86 emulation on ARM. Just did a quick google search and came up with this.
https://eltechs.com/product/exagear-des ... nd-prices/
Don't know if it will work but they offer a free trial, it's worth a try.
https://eltechs.com/product/exagear-des ... nd-prices/
Don't know if it will work but they offer a free trial, it's worth a try.
Re: armhf Server Build
viewtopic.php?f=5&t=18128&start=30#p119301
Good luck with an emulator
Good luck with an emulator
prg wrote:Factorio on a software renderer running in an emulator on a 700MHz ARM CPU? No, no it's not playable.sillyfly wrote:Is it actually playable before setting game speed to 1000?
Just starting the game took over 4h.Code: Select all
15119.321 Factorio initialised
Koub - Please consider English is not my native language.
Re: armhf Server Build
Regardless it can be written in a more portable language. You can make some insanely fast servers in Python or C#.torne wrote:The game isn't really client-server based - the "server" still runs the entire game simulation exactly like all the clients do. The only difference is the server doesn't start up a user interface or create a player.
Re: armhf Server Build
You're missing my point entirely: what I meant is that you can't just write a server that is a small part of what the game does, because you need to run the entire game simulation on the server. To "port" the server to another language you would need to reimplement literally the entire game with the exception of the graphics engine. This wouldn't just require that the protocol was documented, it would require basically open-sourcing the entire game, because your "new" server would need to know the exact logic of how every single thing in the game interacts.John_Dong wrote:Regardless it can be written in a more portable language. You can make some insanely fast servers in Python or C#.torne wrote:The game isn't really client-server based - the "server" still runs the entire game simulation exactly like all the clients do. The only difference is the server doesn't start up a user interface or create a player.
People already regularly complain that the game as-is can't run the simulation at 60 UPS on a fairly-large base on a slightly-older-than-average x86 desktop PC - there is no way that someone can write a new version of that exact same simulation code in Python or C# and have it run with even comparable speed on an embedded ARM device with significantly less raw computing power.
The only realistic way the game is going to run on ARM is if the developers choose to do the porting work to make sure their existing C++ codebase builds cleanly for ARM and functions correctly (including calculating the exact same results for every situation, otherwise you get multiplayer desyncs) - how much work this would be to do the porting I don't know because I've not seen their code. It might be relatively low, it might be a lot, depending how it's coded. But... even if they've written wonderful portable code and it's virtually no work to get it to build and run on ARM, testing it and making sure it's good enough to release, and that multiplayer really works without desyncing, is still going to be a big time investment, and the result is *still* going to run significantly slower than it does on a desktop PC because the hardware you're talking about simply is less powerful (especially for single-threaded performance and memory bandwidth, which is primarily what Factorio needs). The developers have decided that this isn't currently worth the time investment and that they'd rather continue working on the game for the type of computer that virtually all their players actually run it on, and I think that's a reasonable decision - you absolutely can disagree with that decision, but just believing that it's easy or that the community could somehow make it work for them is untrue.
Re: armhf Server Build
I was thinking if you are running a server especially on weak hardware you would be running a headless server, and wouldn't have to worry about rendering any graphics at all.Koub wrote: Good luck with an emulator
Although it's interesting you brought up the challenge of graphical rendering and gaming on a PI so I did a little more digging to fuel my argument because I enjoy being correct.
The emulator I linked is bold claiming they are running Counter-Strike and Diablo II at playable framerates on a PI, which is quite impressive. They claim they are getting hardware 3d acceleration and support multiple cores.
Other PI Entusiests are even running windows games using wine and x86 to ARM emulation. I'm not sure if I should be impressed or scared...
https://www.raspberrypi.org/forums/view ... 8&t=137336
One user on that thread does have a valid point: "Yes BUT for that price could buy an old x86 PC Tower "
Just because you can, doesn't mean you should.
EDIT:
Hmm Ok so the headless server is x64 only so turns out I was wrong. Whoops.
Rest assured all dreams for ARM are crushed, as if not even 32 bit is going to be supported due to determinism and desyncing errors, hell will freeze over before they decide to port a project under development to a whole different CPU architecture. No emulator, No native server. Many tears.
-
- Burner Inserter
- Posts: 14
- Joined: Sun Nov 06, 2016 1:00 pm
- Contact:
ARM CPU Suport
Hi.
I've seen posts asking about hosting headless on computers like Raspberry Pis, being told that no arm version exists.
I'd just like to know, is arm suport a planned thing?
or is it deemed irrelevant, due to them being less powerful, less common ect?
I know c/c++ can compile to arm, but there may be sruff about the Dev environment that makes it difficult /impossible.
I also understand, this not being a priority, as it would cause alot of extra debugging, and I personally would prefer the focus to be on this amazing game itself.
Question is basicly, is it somethign in mind for the future?
I've seen posts asking about hosting headless on computers like Raspberry Pis, being told that no arm version exists.
I'd just like to know, is arm suport a planned thing?
or is it deemed irrelevant, due to them being less powerful, less common ect?
I know c/c++ can compile to arm, but there may be sruff about the Dev environment that makes it difficult /impossible.
I also understand, this not being a priority, as it would cause alot of extra debugging, and I personally would prefer the focus to be on this amazing game itself.
Question is basicly, is it somethign in mind for the future?
Re: ARM CPU Suport
We do not plan to make builds that would run on Raspberry Pi (or other similar computers), nor consider making plans to ever do it. And if anyone does build Factorio for RPi, we won't support cross-platform multiplayer between PCs and ARMs (as in - we won't fix issues the cross platform multiplayer would have).PeaceDealer wrote:Question is basicly, is it somethign in mind for the future?
I am sorry
Re: ARM architecture
Hello Devs,
years passed and I would ask again, whether any ARM version is planned or not. Since v0.16 received portion of optimizations and in v0.17 more may come, the situation could have changed.
Thanks
years passed and I would ask again, whether any ARM version is planned or not. Since v0.16 received portion of optimizations and in v0.17 more may come, the situation could have changed.
Thanks
Re: ARM architecture
If i read some posts about factorio performance correct, it isnt so hard the CPU, mostly RAM Bandwidth.. i dont know how good that is on rasp, but i guess, its crap.
Re: ARM architecture
No plans to support ARM version.
Re: ARM architecture
I'd say probably not. It's not something they've ever announced, there isn't much demand (they're not supporting mobile and PCs generally aren't ARM). CPUs in Raspberry Pis are meh at best (they'd never run a megabase above 1 UPS), they only have 1GB RAM (so it's questionable whether you could run the game in the first place), and, as nuhll pointed out, RAM latency/bandwidth is... bad. Really bad. With a lot of overclocking, you can get it to reach 600 MHz, which is (iirc) somewhere around the performance of DDR2.Arakasi wrote:Hello Devs,
years passed and I would ask again, whether any ARM version is planned or not. Since v0.16 received portion of optimizations and in v0.17 more may come, the situation could have changed.
Thanks
Also, Posila confirmed that in the time I took writing this (and reading Wikipedia).
There are 10 types of people: those who get this joke and those who don't.
Re: Factorio (Server) ARM Build
raspberry pi 3 have 1Gb of memory.
I think it's ok for a server, non-gui are optimized, and most game have few players.
It's a very good solution : efficient, cost saving, fanless, and it's ok for testing.
I think it's ok for a server, non-gui are optimized, and most game have few players.
It's a very good solution : efficient, cost saving, fanless, and it's ok for testing.
Re: Factorio (Server) ARM Build
We don't consider it worth our time to invest in making an ARM build. The deterministic nature of Factorio means we need to care about even basic math operations being the same across platforms and ARM being a completely different architecture is almost certain to have deterministic issues with x86 CPUs.
If you want to get ahold of me I'm almost always on Discord.
Re: Factorio (Server) ARM Build
Even if you could get it to fit in the pis limited memory(Would seriously limit the map size) and solve the determinism issues(which would most likely impact performance a lot since you would have to do anything other than basic integer math with a software solution) I don't think even the newest and fastest raspberry pi would be fast enough to get anywhere near 60ups. I would be very surprised if you got even half of that. x86/x64 does a lot more per clock sycle than the armv8-A that the pi uses. Also the pi3 has a 900mhz lpddr2 with very high latency compared to ddr3/4. For the purpose of running a factorio server the raspberry pi 3 would be comparable to a slow pentium 3 with low end ddr2 memory. Also note that because of the sequential nature of factorios simulation the pi having 4 cpu cores would not help much. I have multiple raspberry pis(including the 3+) and have done a lot of things with them and I'm quite confident that even if there was a arm build of the factorio server you would not like the experience at all.
If you want a low power&quiet server for factorio(or almost any other game that has a GUIless server) I would recommend getting a machine with an intel G5600. Its relatively cheap and has very low power consumption when compared to other processors with similar preformance for running game servers. And if you slap a big heatsink on it with a fan that only turns on when the cpu goes over 60c the fan would most of the time be off. Also it is an x64 processor so you would not need to worry about wheter there is an arm build or not for the game you are planning to host on it. It would be 2x or 3x as expensive as an rpi but you would get 20x to 50x the performance.
If you want a low power&quiet server for factorio(or almost any other game that has a GUIless server) I would recommend getting a machine with an intel G5600. Its relatively cheap and has very low power consumption when compared to other processors with similar preformance for running game servers. And if you slap a big heatsink on it with a fan that only turns on when the cpu goes over 60c the fan would most of the time be off. Also it is an x64 processor so you would not need to worry about wheter there is an arm build or not for the game you are planning to host on it. It would be 2x or 3x as expensive as an rpi but you would get 20x to 50x the performance.
- bobingabout
- Smart Inserter
- Posts: 7352
- Joined: Fri May 09, 2014 1:01 pm
- Contact:
Re: Factorio (Server) ARM Build
You don't use x86, you couldn't sync it's determinism with x64, so you dropped it.
Re: Factorio (Server) ARM Build
x86 is the CPU architecture. "32 bit" is the 32 bit build and we didn't drop it just because of determinism. We dropped it because it was annoying to maintain, < 1% of the player base used 32 bit, and the base game needed > 2 GB to run comfortably.bobingabout wrote: ↑Fri Nov 09, 2018 9:01 amYou don't use x86, you couldn't sync it's determinism with x64, so you dropped it.
If you want to get ahold of me I'm almost always on Discord.
Re: Factorio (Server) ARM Build
All processors that implement the x86 instruction set and are part of the x86 architecture family. The x86 instruction set was named based on the first processor that used it the intel 8086 which was a 16 bit version of the intel 8080 that was for some reason exluded from the family. The x86 family has 8 generations so far with several architectures in each generation. The first two generations were 16 bit and only the last one is 64bit. Each newer generation was supposed to be backwards compatible with all the previous ones but the cpu manufactorers sometimes removed features making them only partly backwards compatible. Tough sometimes x86 is referred to as an architecture it is infact an architecture family. If you want to name an architecture that would be amd ryzen or intel kaby lake etc. x64 is a 64bit subset of the x86 and sometimes x86 is a 32bit subset of x86 that does not include the intel 8086 after which the whole thing was named after. And sometimes I wonder if the people making computer stuff are naming things the most confusing way possible on purpose. It also doesn't help that people are using the terms whicheverway and they have all become a jumbled mess and its sometimes impossible to know what exactly someone means when they use them making both of you wrong and right at the same time and then there's two gpu designers who released two different products with the exact same name multiple times and this stuff is just plain ridiculous.Rseding91 wrote: ↑Fri Nov 09, 2018 10:15 amx86 is the CPU architecture. "32 bit" is the 32 bit build and we didn't drop it just because of determinism. We dropped it because it was annoying to maintain, < 1% of the player base used 32 bit, and the base game needed > 2 GB to run comfortably.bobingabout wrote: ↑Fri Nov 09, 2018 9:01 amYou don't use x86, you couldn't sync it's determinism with x64, so you dropped it.
Re: Factorio (Server) ARM Build
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.
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.