Friday Facts #24

Regular reports on Factorio development.
slpwnd
Factorio Staff
Factorio Staff
Posts: 1838
Joined: Sun Feb 03, 2013 2:51 pm

Friday Facts #24

Post by slpwnd » Fri Mar 07, 2014 9:23 pm

Flexible Foreigners Find Factorio Facts Fundamentally Funny: http://www.factorio.com/blog/post/fff-24

xng
Fast Inserter
Fast Inserter
Posts: 120
Joined: Fri Feb 14, 2014 1:04 pm

Re: Friday Facts #24

Post by xng » Fri Mar 07, 2014 9:26 pm

*drumroll*

neocccro
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Mar 07, 2014 9:28 pm

Re: Friday Facts #24

Post by neocccro » Fri Mar 07, 2014 9:30 pm

waiting so much.
can't handle.
presure.
2 minutes feels more like 15 minutes

neocccro
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Mar 07, 2014 9:28 pm

Re: Friday Facts #24

Post by neocccro » Fri Mar 07, 2014 9:33 pm

wow nice work on the textures.
best game ever

ficolas
Smart Inserter
Smart Inserter
Posts: 1068
Joined: Sun Feb 24, 2013 10:24 am

Re: Friday Facts #24

Post by ficolas » Fri Mar 07, 2014 9:47 pm

I think we really need factory floors for this update now that everything will look fancier :D
Also I think I and most of us will need to get used to the new graphics, specially the new orange inserter (that I guess is the yellow old one)
Aaand will the assembling machine 3 have more futuristic things like lasers and stuff? I readed that somewhere just cant remember where.

Balinor
Fast Inserter
Fast Inserter
Posts: 147
Joined: Tue Feb 19, 2013 12:35 pm

Re: Friday Facts #24

Post by Balinor » Fri Mar 07, 2014 10:01 pm

Indie vs AAA.

I'd rather play Factorio than Starcraft any day of the week. In fact I get more enjoyment out of Factorio than any Blizzard release since Diablo 2. Good work guys.

Caseycc
Burner Inserter
Burner Inserter
Posts: 12
Joined: Fri Feb 28, 2014 1:50 am

Re: Friday Facts #24

Post by Caseycc » Fri Mar 07, 2014 10:20 pm

I too find that I spend much more time playing a single Indie game than any mainstream game. For every hour logged to a main stream game, I seem to have 20 logged to an indie game. StarCraft 2? 100 hours, Factorio? 500+. Ai wars 580h, starbound 360h, etc down to 250h for civ5 and 153h for bl2 for comparison. Logged hours courtesy of steam. [Insert comment about not afking games for time bloat] I could name more, but I think I laid out my personal play times fairly clear already :D

SilverWarior
Filter Inserter
Filter Inserter
Posts: 559
Joined: Mon Mar 04, 2013 9:23 am

Re: Friday Facts #24

Post by SilverWarior » Fri Mar 07, 2014 11:10 pm

slpwnd wrote:So in the end the Indie vs. AAA struggle doesn't look that futile :)
WHAT! When did posibility that "Indie vs. AAA strugle is futile" idea came to your head :x
Just take a look at gaming history and you will find out that all great ideas actually come from Indie developers. These ideas then get bought by big AAA game studios and redone to many times. And what is worse is that everytime a big AAA company makes remake of some uniqe game idea it screws everything up. How? They always add some of the popular features wheter they fit with the core idea or not.
Balinor wrote:In fact I get more enjoyment out of Factorio than any Blizzard release since Diablo 2.
Unfortunately todays Blizzard is not what Blizzard was in the past. In the past Blizzard was making games on great and usually uniqe ideas (much like Indies) but today they only make games on streamlined ideas like any other AAA development studio.
Also it is realy sad that there are lots of game studios that gone bad just as Blizzard went.

FrozenOne
Fast Inserter
Fast Inserter
Posts: 177
Joined: Mon Mar 04, 2013 8:10 pm

Re: Friday Facts #24

Post by FrozenOne » Sat Mar 08, 2014 12:50 am

I very like the split branch for multiplayer, i hoped you'll do exactly this to not let the game die before you finish multiplayer.

User avatar
Chrotesque
Burner Inserter
Burner Inserter
Posts: 11
Joined: Fri Feb 07, 2014 5:44 pm

Re: Friday Facts #24

Post by Chrotesque » Sat Mar 08, 2014 4:40 am

SilverWarior wrote:
Balinor wrote:In fact I get more enjoyment out of Factorio than any Blizzard release since Diablo 2.
Unfortunately todays Blizzard is not what Blizzard was in the past. In the past Blizzard was making games on great and usually uniqe ideas (much like Indies) but today they only make games on streamlined ideas like any other AAA development studio.
Also it is realy sad that there are lots of game studios that gone bad just as Blizzard went.
I find this comparison to be very quite lacking, Starcraft, Diablo, etc. are all very different to what Factorio is and will be when its finished I reckon, meaning I feel this is like comparing apples to pears. If I want my Diablo urge satisfied, I won't find that in Factorio and vice versa.
But consider this, if you're having thousands of employees and greedy shareholders wanting to squeeze every little tiny bit of profit out of you, I suppose risks are usually something to avoid - apart from that, look at this Titan project that has been scrapped or look at StarCraft Ghost, scrapped projects instead of just releasing them anyway regardless of internal quality standards. In my honest opinion Blizzard still cares about their vision of quality to a degree that makes everybody involved happy as much as possible. A necessary balance that used to be less important.

BTT though, awesome work on those inserters and I hate waiting for more updates. :(

User avatar
MaxStrategy
Inserter
Inserter
Posts: 49
Joined: Wed Feb 19, 2014 11:20 am

Re: Friday Facts #24

Post by MaxStrategy » Sat Mar 08, 2014 4:44 am

Yay alliteration and multiplayer, english teachers and friends alike will be happy! Now Factorio can become a serious esport and takeover the world, or something! :o

I bet you sell 50k copies from Steam Early Access alone :D

shipmaster4000
Manual Inserter
Manual Inserter
Posts: 2
Joined: Sat Mar 08, 2014 7:14 am

Re: Friday Facts #24

Post by shipmaster4000 » Sat Mar 08, 2014 7:16 am

Man multiplier, finally i can watch my friend be eaten alive by giant blue bugs that hate pollution... Really good job on the game however, i wrote a small game by myself once, I can see how hard it is to get things done when only a few people work on it.

UnrealDiego
Inserter
Inserter
Posts: 27
Joined: Fri Feb 08, 2013 7:44 pm

Re: Friday Facts #24

Post by UnrealDiego » Sat Mar 08, 2014 9:32 am

Don't forget to change the graphics for the cables/wires before you release the trailer. Imho you should make them more stand out.

User avatar
Chrotesque
Burner Inserter
Burner Inserter
Posts: 11
Joined: Fri Feb 07, 2014 5:44 pm

Re: Friday Facts #24

Post by Chrotesque » Sat Mar 08, 2014 2:43 pm

Yeah Steam Early Access, I don't know what a game dev has to do to get into the program but from what I've seen released on there, Factorio can be considered done in comparison. The devs surely have thought about it and mentioned it somewhere in this forum, Steam Early Access should be the next stop after the graphical update and the rework of the tutorial.

bird2750
Burner Inserter
Burner Inserter
Posts: 17
Joined: Fri Mar 07, 2014 5:15 pm

Re: Friday Facts #24

Post by bird2750 » Sun Mar 09, 2014 7:32 pm

Yay, Multiplayer! But the next version is 0.10? Does that mean you've added time machines? ;)

Balinor
Fast Inserter
Fast Inserter
Posts: 147
Joined: Tue Feb 19, 2013 12:35 pm

Re: Friday Facts #24

Post by Balinor » Sun Mar 09, 2014 9:04 pm

bird2750 wrote:Yay, Multiplayer! But the next version is 0.10? Does that mean you've added time machines? ;)
0.10 is incremental to the build number 0.9, as in ten from nine.

If that was cheeky sarcasm that I misread then my bad ;)

Gryzorz
Burner Inserter
Burner Inserter
Posts: 9
Joined: Wed Nov 27, 2013 1:33 pm

Re: Friday Facts #24

Post by Gryzorz » Mon Mar 10, 2014 10:52 am

Well... wrapping up multiplayer will make this game legendary. Factorio is a well wrapped-up small masterpiece. Multiplayer will unleash it's power ^10 !

There are times I wish I was free so I could help (being a developer).

How are you guys envisioning multiplayering Factorio ?
Which approach do you envision ?
Which challenges do you face ?

Random thoughts out of the box :
1) There can be only 1 "source of truth" : 1 server to compute all.
2) It's better to offer the same level of immediacy/responsiveness for clients. -> actions have to be immediate visually, but can be rolled back if server refuses them -> hard !
3) most actions are not concurrent
A few years ago, I did read a lot of papers about multiplayer protocols, game engines and replayability, ending up with the paradigm that "if you can record & replay a game based on timed events, then you can plug in multiplayer easily".

After thinking about it for like half an hour, I just realized how complex it would be to have "temporary states" of the game wile it "looks normal" but it actually waiting for a server commit for a chain of events... Damn my current job ! It gives me not enough time !

I was about to remove all this chunk of text, but I realized that, given the number of elements actually DOING stuff, you might not be able to just "simply send changes" through network.
That's why of the 2 approaches :
a) send the consequences of actions of every actor (basically every object)
b) send only the _events_ (inserter_built, inserter_orientation_changed, etc...) and having an engine that can compute a game state given an initial state and a sequence of timestamped events
I think the 2nd is the only viable one.

Unlike games like minecraft where not so much is happening, in Factorio, belts are actually moving a hell lot of stuff, that's why I think approach a) is not possible technically.
I'm trying to think of a tradeoff or simplification, but I can't since every small mistake inside the simulation of a "client" can lead to huge consequences (hence nothing can be avoided/deported). Worse, if you are pursuing simulation while waiting for a server ACK, how deep do you have to rollback if you simulated wrongly an extra item that got transformed, that prevented a 100 of other items to move on the belt ? Impossible.

According to me, clients WILL require to have something like a real 200ms+ deplay but it's not super awesome for fighting purpose...but on the other side, the fighting part can be done with approach a) (classic FPS approach) I think, at least the movement part (interactions/actions, I think, should remain event-based).

Well, sorry for all this messed-up random thoughts... And really, good luck with that part !

edit : sorry for just "thinking a few minutes without any knowledge". I'm passionate about those topic and your game, and I know that you guys must have already thought of a hell lot of problems, but as a developer, I know that, sometimes, just having a different perspective can help, and even though most of my post is probably very useless, I still felt the need to share, just in case. <3

kovarex
Factorio Staff
Factorio Staff
Posts: 6663
Joined: Wed Feb 06, 2013 12:00 am

Re: Friday Facts #24

Post by kovarex » Mon Mar 10, 2014 11:27 am

You are quite accurate.
The only way we considered doable in Factorio is to have fully deterministic model simulated on all clients, where clients have the same starting conditions and just player actions are sent to all peers of the game, so the traffic is pretty low.

All the game actions are already sent (internally) through InputActions layer, fully serialisable specification of player input, this is the reason why we can have replays as well.
The only problem is, that the determinism needs to be 100% accurate as any small mistake will destroy the whole game (remember Starcraft desynchronisation errors?)
This means, that big portion of the multiplayer work will consist of making replays reliable, we already *almost* had it some time ago, but lot of stuff changed since then.

The lag prevention is chapter for itself, and we have some plans to solve it, but it is phase 2 :)

SilverWarior
Filter Inserter
Filter Inserter
Posts: 559
Joined: Mon Mar 04, 2013 9:23 am

Re: Friday Facts #24

Post by SilverWarior » Mon Mar 10, 2014 12:49 pm

kovarex wrote:The only way we considered doable in Factorio is to have fully deterministic model simulated on all clients, where clients have the same starting conditions and just player actions are sent to all peers of the game, so the traffic is pretty low.
I can already see some potential problems. Cheating.
If you go this way then you need to make sure that all of the clients have exactly same game files (no changes in entity definitions, no memory hacking, etc.). And this can be realy hard to achieve.

Gryzorz
Burner Inserter
Burner Inserter
Posts: 9
Joined: Wed Nov 27, 2013 1:33 pm

Re: Friday Facts #24

Post by Gryzorz » Mon Mar 10, 2014 1:18 pm

This can always be added after.
You can imagine whatever mechanism you like, for example computing a hash for all objects in game and comparing it to the server's.

Keep in mind that the goal is not to cheat on your client, it's to lure the server that you're actually doing more that what your client is doing. Namely sending more commands or illegal commands, like "I've built a laser tower", but you actually haven't spend the time nor the resources to do it. The problem is not the deterministic aspect of the engine that is in cause with such hacks.

From here, some checks can be done, but nothing to start thinking about, since everything we hack newbies can come up with, there will be circumvented by dedicated people.

The solution is simple : play with friends :)

Post Reply

Return to “News”