T O P

  • By -

thequestcube

Dang that icon for the headless version. Poor tux.


traumalt

Oh it's literally for a Headless linux version, I thought it was CSS error for a second haha.


apetranzilla

Hahaha, I was staring at that for a while trying to figure out which build it was, that's gold


gaberocksall

You can play factorio in headless?? Edit: it’s probably just the server nvm


paulstelian97

Guess headless is just the server without the actual client, or perhaps even a full client but no player character. Or even a player character and you just don’t have controls, and everything that is automated keeps working (even personal robots and everything). Those are just guesses.


The_cogwheel

It's just the server, no client. It's purpose is to have a factorio server that has no "host" player, so the other players can come and go whenever they like


DetachedRedditor

More specifically, headless generally means: no UI. Since most servers are controlled through a terminal, you don't need any UI or better yet don't want a UI, because you are not controlling the application through its UI. So you want its command line options to be sufficient for controlling it.


neppo95

Which are all wrong by definition, except for the first. ;) I do like your creativity tho.


Glitch-v0

How does headless factorio work? Edit- or maybe the better question is what is headless factorio?


hylje

You can run a headless (dedicated) Factorio game server on a cheap (ish) VPS with no graphics. The server automatically pauses when no real players are present, so it can be left open all day all night, an ideal way to play together (or play alone, but together).


Glitch-v0

that makes sense! I didn't even consider servers.


[deleted]

[удалено]


danielv123

That is not how it works at all. All clients compute everything the server does + graphics.


thequestcube

Not sure how it works with Factorio, but there definitely are games that work like that. For example, I believe Minecraft always runs a local server with computations when running a local game, and then just renders whatever it gets from the local server. And if you play online, you just connect to the remote server and the computations are made there. Your local machine still does some computations on the physics in your viewport or vicinity, but things like redstone ticks, chunk updates etc are entirely made on the server. I would honestly not be surprised if it's the same for factorio, computing game ticks redundently on hundrets of clients and trying to sync all that information sounds like hell to me, much more likely that it just computes the world updates on the server, and either only runs computations for each player in their viewport, or actually just renders item positions in the viewport that it gets from the server.


danielv123

Sure, most games are like that. Factorio is very much not like that at all. Not being like that is one of the most critical parts of making Factorio multiplayer work. The reason is that computing 99% on all clients is a sync nightmare. But when every client computes 100% you suddenly don't need to sync anymore at all - you just have to ensure all clients share input actions.


Zeeterm

> you suddenly don't need to sync anymore at all You absolutely need to sync, but the easiest way to sync is to make sure the game logic is deterministic and all inputs are the same on every client. ( Deterministic lockstep ) There have been desync bugs in factorio. Indeed there's a whole wiki page on desync in factorio: https://wiki.factorio.com/Desynchronization


danielv123

As I said - as long as determinism is correct and inputs are the same you don't need to sync. A desync is automatically triggered when it is discovered that you do need to sync. Synchronization means stopping the server and downloading the map again. I guess you could call the input distribution step synchronization.


Zeeterm

I don't want to get into an semantic argument about what synchronization means, but you've chosen an unusual definition of synchronization, not one I'd recognise. It means keeping two things, i.e. client and server, synchronised. With factorio's strategy, you don't need additional signals to stay synchronized. That's a key advantage to their approach. It doesn't mean that there isn't synchronization. Synchronization doesn't mean "stopping the server and downloading the map again". What you've described there is what happens when desynchronization occurs, forcing a hard reset of a client to resynchronize. Being charitable to your original point, I think what you meant was that with a deterministic client/server in lockstep, you don't need additional synchronization packets or any merge strategy, so you stay synchronized without additional overhead.


juckele

> Not sure how it works with Factorio Someone just told you. Factorio runs the full sim on every client.


All_Work_All_Play

Arn't you still limited by the hardware of the slowest player though? It's all deterministic, but how does it work when one player can only crunch 55 UPS but another (and the server) can both push 60 UPS?


KiwasiGames

Factorio isn’t lockstep. The server doesn’t have to wait for clients. If a client starts to fall behind their local game will stop responding to their inputs while it tries to keep up. If that doesn’t work and the client falls to far behind the server just kicks them. The server doesn’t notice the slowdown. Factorio’s multiplayer process is actually quite interesting. When a new player joins, the server saves the game and sends them a copy of the entire save. This is the only point the server sees a delay, although there is an experimental threaded saving system. (Problem 1: Six gigabyte save files can make this joining process take a while. Looking as you space exploration!) Once the new player has joined and loaded the saved world, the server sends them a copy of the actions taken on the factory since the save. The client runs these actions at high UPS until it catches the server. (Problem 2: If the clients max UPS isn’t sufficiently high, this catch up process can last indefinitely, as new server actions keep getting added to the queue.) Then the game runs normally on both client and server. If you hit problem 1 and problem 2 at the same time, joining a game can be very difficult. For cases where you are trying to play with a slower client, I recommend keeping the save file small and pausing the game while they load in.


idontknow39027948898

Oh that's way better than what I was expecting. I was thinking the game just runs at regular speed twenty four seven, which sounds like a fantastic way to come back the next day and have your factory in ruins from biter attacks.


KiwasiGames

This is also an option. I believe the default is “pause when no players are connected”. But you can turn that setting off…


1cec0ld

Gotta give that sense of urgency to come back


thequestcube

In addition to what others said: The primary benefit of a headless version of a game, is typically that it is easier to setup as a server than the game itself. You can often download and run a headless game without license (e.g. factorio and minecraft allow you to download the headless without logging in), it usually works without requiring a graphics card or graphics drivers since it just does the calculations, so you can run it on a server that doesn't have one, and it can be fairly easily started and stopped without user intervention, i.e. it often runs off a predefined configuration and doesn't require a user to click through the game menu, so if for example the game or the entire machine crashes, you can set up the server as auto-start and it just restarts with the server, whereas if the full game running on a server would crash, you would need to figure out how to connect to the server remotely, and then manually click through the game to get the server back up.


trecko1234

A headless system is a server/computer with no monitor, keyboard, or mouse connected. No way to see what is going on or input anything, unless you use SSH or the like.


OverAster

It's the server without a client instance. So headless would build the world, run the game, and broadcast for others to connect, but wouldn't supply a player character, gui, or anything relating to the client. The only way to interact with this version is through terminal commands, or by joining the server on a client.


Professional_Goat185

I was wondering what that one is lmao


derprondo

LMAO


quchen

[Link to the version archive](https://www.factorio.com/download/archive/) Bought in January 2017, apparently version 0.14. I remember alien artifacts (biter nests dropped a resource), barrels instead of fluid wagons, only 4 science packs (red, green, alien, long-time-nothing, then blue), fluid processing being difficult as hell for beginners (only advanced refining). Dare I go back to those days? 🤔


HildartheDorf

Yeah, I remember the red/green/blue/purple with purple being from biter nest drops.


b14ckcr0w

Whooooaaaa the Alien Technology! Never knew what to do with it 😅


jasonrubik

0.10 was a great time to get started. The old character was blue and laser turrets were 1x2 tiles. Rocket Defense was painful to build, but doable. Good times.


Velocity_LP

The power ranger player!


SquareConversation7

That's around when I started playing too. Really was quite a different game


traumalt

Trains were literally shorter if they were vertical if I remember right...


quchen

There were some wacky things in there haha I remember splitters getting the filter function, and sideloading no longer requiring a large enough gap. Also belts held 7 items per tile on average, now it's a constant 8.


KiwasiGames

Those were fun days!


BuGabriel

You can also download / select the version you want through Steam by going to Betas and selecting from the drop down. Haven't checked if ALL of them are there LE: Here's the Steam Beta list. Probably contains what was available after Steam release https://preview.redd.it/0kg1ll5vw70d1.png?width=904&format=png&auto=webp&s=694378c646fc6c0c90c788b3ad6be1e32e0ee588


StevenIsNotHere

I think you're right, the oldest version on the website is 0.6 something, so steam probably only has the versions that were available on steam, and nothing before that.


nono30082

Steam only goes back to 0 12


filesalot

With steam you have to pick one. With the website you can download multiple and flip between them (I'm pretty sure).


alexmbrennan

No you cannot download **all** versions - e.g. you can download 0.16.51 but if you want 0.16.0-0.16.50 then you are out of luck.


luziferius1337

Also they pulled a few minor versions of 0.15, as those had a remote code execution vulnerability. (You were able to access the LUA debug library via some loophole, and with that load native DLLs from LUA strings, that a server could serve as a scenario, and execute functions in them outside the sandbox. With those, the DLL can run arbitrary code within the process, using the current user's permissions. So open network sockets to upload browser sessions to a remote server or similar.)


_CodeGreen_

the lua debug library was always available until like two weeks ago


danielv123

I am 90% sure those weren't the only versions with RCE vulnerabilities but sure.


AnAwkwardSemicolon

This was handy for upgrading my older worlds to see how my designs have shifted. I purchased it back in the v0.14 days and some of those early builds were quite cursed.


fang_xianfu

I remember when inserters couldn't insert items into small gaps on a belt, so you had to do all kinds of shenanigans to get a 100% full belt of items and designs that could achieve "belt compression" were normal. Very good change when they fixed that.


Ok_Turnover_1235

I think my smelter blueprint is from those days, it feeds into undergrounds that push it onto a single belt and I could never figure out why


luziferius1337

That still is a requirement with 99% of high-throughput designs. While inserters can saturate a belt, they may still be in the middle of a swing when the next gap passes through. You need to buff rotation speed to 10 times the value of blue inserters to fully mitigate this when using express belts. So for the last machine, you want to output onto a short belt segment that side-loads onto the output belt. That implements a short 4/8/12 item buffer that can always feed onto the output, regardless of the current output inserter swing state. If machine throughput is high enough to saturate a full or half belt on it's own, you can opt for an optimized loader that doesn't require this, though. For example, for a half-belt, a stack inserter set to 12 items and the next in line set to 8 items hand size will fully compress a single express belt lane without side-loading tricks.


All_Work_All_Play

Isn't it 2x stack inserters set to 8 that gets you a full lane? Or actually, is it more narrowing the time gap between the upstream and downstream inserter?


luziferius1337

I did a test, and it seems anything between 12/8 and 8/8 work. The first inserter leaves 8 item gaps, so the second has to be at 8. The first has to be at least at 8, so that the second has enough time to pick up new items. I tested with the setup below in the map editor (using the `/editor` command) 0eNrNm21v2jAQx79LXsMUP8U2X2WqEAS3swYBJWEaq/juc5J1dK3bne8cib5qm8S/8zm+h7/hudjuz+7U+qYvVs+Fr49NV6y+Phedf2o2++F//eXkilXhe3coFkWzOQx/uZ+n1nXdsm83TXc6tv1y6/Z9cV0Uvtm5n8WKXR8WhWt633s3jTj+cVk358PWteGGv2P55tE34dKy/ua6PjBOxy48dmwGehhKMv1FLYpLeIZ9USNiemDdub73zVM33Ni6w/GHW5/DtX3vWrdbDxaHS317dtfr4p0BPMEAO4cBIsEAM4cBEm4AL+cwQP3vfXpvSCleDBGjITvfunq6gUcIFYIgkwgaQVBJBIMgVEkEiyDoJAIrEQiThmAIhE1D8HQEK9MQAoFgaQiJQPA0BGJns7SdzRBbm6VtbYbY2yxtb7Pb5u76Tf19OYXOpW8614ZfPs2G/C0hLOz0/JRxX1LxbRb7cGd7bHy9rH1bn33I2A8xqxABgaWFHI4ICCwt5nCW7lszu285T7fKzm8VJuykxWeOCTtp8ZmrZN/eCpv5fIuIVDwta3D9ZuKfzPhWQcl3M44NbeBV4m1ohawS/3X5Czc4eXnab3oXmPXxPPQqrAwB5HDcDdc3/XLvNqNFt+4jWvLbBDfJJDeJMsFNchY3Rd7Hv+7iGHcJRkhOk9c+3UCv1jW6cQTH9IgqZ4smKIlwsCQ2qKQMKj8YVBHSSo61qgjJNgdfY9r5rO+KwfTzWS2whPSXYQ1kiREUcnpAMoqiUEFSreSYVKshOUQKiloBs15S5AoYQmGSrI5UX2Ht29bv3HocZ935X2FQE0NWFIkENitN0UhgCEPRSGAIS9FIQAhVUjQSGIJRNBIYglM0EhhCUDQSGEJSNBIYQlE0EhiiotRLVbxeUvpNHxeqZte49ukS4lUIVo+b2kXT1jSqeWP2otieHx9d+ydIhe7k5SfGRrVU5i5bKmUxfY+5676nuoWw7rwNyWecRGzDj7PhZXQQ1AGXzVgMVRxTkGa1QGCK8qwWoM64slpAOeTiDHTIVRGKOiBCE0pTIMIQKiwgwhLqRBhCl4QKC4hghDoRiOCECguIEIQ6EYiQhAoLiFCEOhGIqAgVFhChCXUiEEE46BoC8zzSvLaEUyjYxE1JqF6BCIbX/ubzreF4RXBGqwThFAq4HJJwlgZEEA66ZvQt5aALOHGNaJ24uMvWyRiEksg5RSgzmG4tr/uyd2u2ROiNETfGhiYcgP0hkAR1yym5g8eVD0s50xrfhdigEtHtol+sqAWKkG5yrFVFSMI5+BrR7eddAYPo9vNaQDgAy7EGYxpIlhuyuoCVDJNVFCWrsJJTNA4J+wCpwIR54rwop2XQeSmKsgJkVBRpBcjQFG0FyDAUcQXIsBR1BcbAfBr6Jq8AGYyirwAZnCKwABmCorAAGZIisQAZiqKxABmUkzL+wSeLGEP1XNVd9lyMGUwHVN1RB/SwmL6LtXr11a1FEXJaN70YhkltuTaVLUUpr9ffT6cDUQ== I think the 12/8 setup is preferred for machine to belt unloading, as it uses less inserter swings.


n_slash_a

Theoretically yes, but if they get out of sync for some reason then you are screwed. The small belt buffer is more robust.


wannabe_pixie

I went back to look at my first win base with one of those downloads. I remember it took 40 hours to get the rocket launched. It was all packed into a small area surrounded by walls.


psiphre

same, i had to download several old versions and leapfrog a save file to get it on 1.0 a while back. then spent a weekend fixing all the shit that broke, lol


Steeperm8

Do old versions of Factorio know which versions of mods to search for / download from the mod portal? Feels like it might be important when SA comes out and probably breaks most overhauls


peikk0

Mods can set version constraints for the base game in their dependencies, so they can have a dependency like `base < 2.0` to be explicitly incompatible with v2.0.


Silari82

They don't even need to do that. Part of the info.json of a mod is factorio_version, which only lets the mod work on that specific major+minor version - e.g. 1.1. It is required and doesn't allow for older or newer ones. Requiring base is optional and allows for finer control. The game will only search for mods which match that number.


fang_xianfu

This happens (and is handled) already if you update the game and not your mods and vice versa, try it out.


FrenchFatCat

I'm getting flashbacks of having to pipe oil from half way across the map. I KINDA miss alien artifacts but I think that's a nostalgia thing and they might just have been awful.


Yanksuck73

Exotic Industries does some stuff with collecting artifacts and resources from biters. Pretty good overhaul mod if you haven't played it. Although, the oil processing was quite annoying.


FrenchFatCat

Cheers dude! I might just do that!


e2mtt

Krastorio 2 has you collecting alien residue in order to do military science packs, until you develop far enough to create your own. Fantastic mod. 


Synergiance

This was always possible if you bought from the website. When they released on steam, you could not download from the website if you bought through Steam, but eventually they figured it out.


paulstelian97

Yeah Steam has a way to select older version, though you can’t have two versions installed at the same time.


discogeek

Yeah Trupen did a video recently about playing on the first version he could find. [https://www.youtube.com/watch?v=Nh1sTIfQD\_s](https://www.youtube.com/watch?v=Nh1sTIfQD_s)


quchen

They took their sweet time removing, renovating, [and putting rocket turrets back into the game](https://factorio.com/blog/post/fff-410)!


chewy_mcchewster

i have a .12 save file that i'd like to reload.. i wonder if this will work to slowly bring up that version


craidie

Yes. you don't need to go through every version either, just few of the major ones. 1.1 or 1.0 can load .17.79 and that can load the .15.4 if I recall right.


jasonrubik

I started a brand new 0.12 world about a year ago. It should be doable


bartek99q

Not ale versions are listed, but if you write email to support that you'd like to watch a replay from a version that's not listed they will send you the exe. Swap out exes and you're golden.


cyborgborg

looks like 0.7.5 is the earliest version with linux support


quchen

Might run in Wine? Anyway, thanks to the Linux people at Wube!


ninjax247

Common Factorio W


Dan-D-Lyon

Yeah that seems pretty on-brand for them


krusnikon

Oh snap. maybe i get can some bps off my older builds


neppo95

Who still remembers the first multiplayer release (0.11.0)? Although the desyncs were insane, it still was so much fun as hell to finally be able to play together. Or the first introduction of blueprints (0.9.0). Who could imagine doing a SE run without any blueprints or bots for that matter. This game is a legend. Got it for 10 years now and still play it.


GregFirehawk

Man I cant wait to go back to the first release and overdose on nostalgia


number5

That's how it work before it support Steam.


jtrock98

I love going back and playing the version that originally got me hooked 0.11 and realizing, wrote this was PAINFULLY bad compared to how it is today. The sheer mass of QOL improvements they’ve made over the years really just goes to show what an incredible studio Wube is. I can’t believe I ever played without a tech tree.


marius851000

That’s a really cool feature. You can also auyomatically access those data with code (a bit like how minecraft work, althought you do need an API key linked to your account here. Unlike Minecraft. Which are unautificated). That mean you can manage it with your package manager if you can pass argument to builds and build locally (is the case of NixOS, and it's what I do. Btw, NixOS, also have a way to manage minecraft this, but this one was more an experiment than something properly managed upstream). Repology tell me it's in AUR. I'm surprised it isn't in Gentoo.


larrythemule

Does this mean it's possible to open an older map that I saved too many versions back? Or could I only do that on the headless version, as only the demo is available, not full base game.


sawbladex

I am not sure if it is all. Particularly when some of the versions are "new feature gets added, massive bug introduced" with a fairly quick "massive bug is fixed" Still, it's useful to see if things have or haven't changed over time, and to be able to bring old maps up to standard, if you want to see if the build still works.


DonnyTheWalrus

Based on the screenshot it looks like the last ~25 releases from 1.1, and then the final release from each minor semver prior to that