Friday Facts #184 - Five years of Factorio

Regular reports on Factorio development.
Junion
Long Handed Inserter
Long Handed Inserter
Posts: 71
Joined: Thu Sep 11, 2014 3:30 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Junion »

Railway building optimizations (Rseding)
Well..this'll make MojoD, Xterm, and Will happy once it comes out..as they love trains...and are working on a mod that simulates .15....and have gone crazy with the trains O.O
Colossus
Long Handed Inserter
Long Handed Inserter
Posts: 56
Joined: Mon Mar 10, 2014 8:31 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Colossus »

rolfl wrote:I realize that it is nit-picky and pedantic, but Factorio has 8 teeth on the cog, but your cake has only 7 :( Now it looks like a Kubernetes wheel, which is cool, and perhaps a good idea ;-)
As with any growing child, you can expect some lost teeth :)
Loewchen
Global Moderator
Global Moderator
Posts: 9307
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Loewchen »

While the experience with train logic is still fresh it would be an excellent time to have another go at this report here: viewtopic.php?f=173&t=14748 :P
Thank you.
ChoMar
Long Handed Inserter
Long Handed Inserter
Posts: 96
Joined: Sun Aug 07, 2016 2:00 am
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by ChoMar »

Still loving everything about it. More and more with each FFF. Theres one thing: Will .15 be compiled for maximum Ryzen performance? I know the Memory bandwith is a problem, but still...
And on that matter i noticed something: Factorio could be used as an Real World CPU Benchmark. Could draw attention.
Mytronix Entertainment
IronCartographer
Filter Inserter
Filter Inserter
Posts: 464
Joined: Tue Jun 28, 2016 2:07 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by IronCartographer »

Loewchen wrote:While the experience with train logic is still fresh it would be an excellent time to have another go at this report here: viewtopic.php?f=173&t=14748 :P
Thank you.
Rseding91 wrote:Correction: will be addressed at some point when someone feels like gutting how trains work and re-doing it completely. So, we don't really have an estimate as to when it will happen or if it will happen.
Doesn't sound like it's quite that time yet. :P
Avezo
Filter Inserter
Filter Inserter
Posts: 454
Joined: Fri Apr 01, 2016 3:53 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Avezo »

But did you have any celebration in main office or something? I'd expect some photos or something to be honest ;p
bman212121
Fast Inserter
Fast Inserter
Posts: 145
Joined: Mon Apr 18, 2016 8:08 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by bman212121 »

Floaf wrote:Have you guys given any thought about how the autosave works? In later gameplay it can take 15-20 seconds to save and if you autosave like every 2 minutes (since you are hunting biters) it get a little bit tedious.

Shouldn't it be possible to just make a copy of the game state and saving that state on a separate thread in the background? Of course it still may take some time to copy the state, but it should be much faster.

Just a thought :-)
I've definitely been in the same boat before. If you leave a MP server up for an extended period of time and really start to explore, the map size will start to balloon. It's certainly not uncommon for me to see 20+ second map save times using bob's and a few other assorted mods. If you see the map size start to balloon, shutting down the server and starting it back up I've noticed causes some type of map compression code to fire off. Maps that were 120MB and take 20 seconds to save on an i7 with an SSD might compress back down to like 80MB or less and only take 10 seconds or so to do a save. It's certainly worth giving the server a restart after it's been on for a while and it might really help your performance.
Mendel
Filter Inserter
Filter Inserter
Posts: 267
Joined: Mon Aug 17, 2015 1:51 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Mendel »

So... the first version already had a four mission campaign. looking at campaign today... comparing what other improvements have been made to the game...

Don´t you feel like the campaign part of the game has received too little attention?

I believe you should hire someone who would focus on developing the campaign. This is something people expect based on the demo (IMO)... a campaign of more lenghty and deep proportions.

Could be a 1.0 thing. could be a dlc thing... but I´d love a good campaign with tighter and more focused missions than the main game.
Rseding91
Factorio Staff
Factorio Staff
Posts: 14363
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Rseding91 »

Floaf wrote:Hmmm, strange. Well, it isn't the newest of computers but it's not that old :-)
Anyway, it was just a thought. Keep up the good work!
Additionally: saving already works as you described.
If you want to get ahold of me I'm almost always on Discord.
User avatar
Gergely
Filter Inserter
Filter Inserter
Posts: 616
Joined: Sun Apr 10, 2016 8:31 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Gergely »

Why wasn't Java a good idea?
User avatar
y.petremann
Filter Inserter
Filter Inserter
Posts: 421
Joined: Mon Mar 17, 2014 4:24 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by y.petremann »

Three thingsnthat would be interesting :
- Throught lua api or prototype, adding custom permission that can be checked from lua api
- Being able to set permission about group effect : is the player able to interact with his constructions (rude), same force, allied forces, neutral forces and enemy force
- Being able to add an alert admin thing on checked interaction, so that admin can have a trace of what untrusted players does. It couldneither be a log file or a special chat command.
User avatar
DeathMers
Inserter
Inserter
Posts: 39
Joined: Sun Sep 18, 2016 1:30 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by DeathMers »

rolfl wrote:I realize that it is nit-picky and pedantic, but Factorio has 8 teeth on the cog, but your cake has only 7 :( Now it looks like a Kubernetes wheel, which is cool, and perhaps a good idea ;-)

Image
"the cake is a lie!!! "
Permittivity
Inserter
Inserter
Posts: 33
Joined: Sun Mar 26, 2017 10:24 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Permittivity »

Gergely wrote:Why wasn't Java a good idea?
There are multiple reasons that Java is not a great idea. The biggest is performance. If you've ever played Java Minecraft you may have noticed that the game only actually simulates chunks in a small radius around players. If you go very far, crops stop growing and Redstone machines stop running. It cannot handle simulating all the generated chunks. This wouldn't work at all in a game like Factorio. Imagine what would happen if your smelters only smelted when they were on screen. Mobile versions and the Windows 10 store version that are not Java perform much better which is why they can run on far less powerful devices.

Another reason is security. When you ship native Windows/Mac/Linux binaries, they depend on system libraries. That means that the system itself has a mechanism to apply security patches to those libraries. When you run Java, you are installing a Java Virtual Machine to interpret the code. That isn't serviced by the system, and the user isn't really aware that it is there since they just installed your game. That leaves you in a bad place because you really don't want to have to service Java with patches, but you also don't want to leave your customers with an insecure version either.

Modding is also a problem as Java mods are executable code. This requires modders to be highly trusted as they can run just about anything on your computer. I'm sure you can find a Java binding for LUA, but it's mostly designed for use with C/C++ code, and that makes implementing a limited modding surface much simpler if you are writing in C or C++.

Security issues also flow the other way as the shipped program for an interpreted language like Java is very close to the source code. It's very difficult to prevent reverse engineering of Java code.

What you get from using Java is portability across a wide range of platforms. Today, though, there are better alternatives. There are multiple commercial game engines/frameworks that allow you to ship a game on multiple platforms while still gaining the advantages of being compiled and optimized independently for each supported platform.
deepdriller
Fast Inserter
Fast Inserter
Posts: 185
Joined: Sat Apr 11, 2015 7:52 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by deepdriller »

I'm having serious graphical issues with alpha-0.1. Most icons are missing, a lot of entities have a strange red line, coal and some fish are just a blur for some reason... Here, let me show you what I mean.
EDIT: Never mind. Compatibility mode fixed it.
Attachments
It got even WORSE now that I loaded the map.
It got even WORSE now that I loaded the map.
Screenshot (43).png (2.38 MiB) Viewed 8031 times
MaexxDesign
Long Handed Inserter
Long Handed Inserter
Posts: 62
Joined: Tue Jun 21, 2016 9:59 am
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by MaexxDesign »

It's all moved in prealpha.
The mouse position is not correct.
It's not possible to play. :(

I use Win10 with 1440p.
deepdriller
Fast Inserter
Fast Inserter
Posts: 185
Joined: Sat Apr 11, 2015 7:52 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by deepdriller »

MaexxDesign wrote:It's all moved in prealpha.
The mouse position is not correct.
It's not possible to play. :(

I use Win10 with 1440p.
Had that same problem. Maximizing the window fixed it.
MaexxDesign
Long Handed Inserter
Long Handed Inserter
Posts: 62
Joined: Tue Jun 21, 2016 9:59 am
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by MaexxDesign »

deepdriller wrote:
MaexxDesign wrote:It's all moved in prealpha.
The mouse position is not correct.
It's not possible to play. :(

I use Win10 with 1440p.
Had that same problem. Maximizing the window fixed it.
Thank you !
I found another solution:

"disable display scaling on high DPI settings"
Floaf
Inserter
Inserter
Posts: 24
Joined: Mon Jun 27, 2016 6:09 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Floaf »

Rseding91 wrote:
Floaf wrote:Hmmm, strange. Well, it isn't the newest of computers but it's not that old :-)
Anyway, it was just a thought. Keep up the good work!
Additionally: saving already works as you described.
Of course it already does, we all should known by now that you guys would not miss things like that.

Well, then I have no other choice than upgrading my computer. It's a good enough excuse :-)
User avatar
ledow
Fast Inserter
Fast Inserter
Posts: 102
Joined: Sat Sep 24, 2016 3:00 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by ledow »

The anti-griefing measures definitely need the concept of ownership to operate properly. Just actions isn't enough on a huge map like that, without any kind of indication of what players are actually doing.

If someone comes in and builds loads of things, not being able to deconstruct is just as annoying as if they walked in and deleted something that was not theirs. Not to mention making it possible to block people in so they can't move, unload chests, etc.

Experience from things like OpenTTD, etc. and running many different game servers for many years tells me that the only sensible way is for players to only be able to modify that which they built themselves.

Though most online games will be small, select groups of people, public Factorio is just pointless at the moment. You have to assume that the admin doesn't want to just run around all game watching that everyone is behaving, they want to play too, and for the server to operate properly in their absence. The only sensible way to do that is not just a sliding scale of power (that just means people will play nicely until they get permission, then ruin the game for others), but a whitelist of permissions starting with things which can't affect others at all, and it's the affecting others that matters.

Even allowing construction can be a grief-spot, unless there's a concept of permissions (i.e. can walk through other players pipes, can't deconstruct or modify other player's factories) but even there - what if I go back to my old factory from the start of the game and just make it churn out some junk and contaminate the lines?

You need to provide long-term or trusted players with the ability to play normally, but you also need an audit trail and an undo. If someone deletes or changes another player's items, that should be a message to admin groups. If that's an action that SHOULDN'T be happening, there needs to be a few-click method from those messages of kicking the player and undoing the actions back to that message. It's the only sensible way to keep the factory ticking along on a public server in the face of griefers.

If it takes even a few minutes to identify the culprit, go back, kick them, and then try to find out what they did, it's too late and can destroy confidence in the game. But if messages pop up "Player X deconstructed Player Y's building... Click here to undo." you can then undo, undo and remove their permissions, or undo and kick them, probably before they cause any significant amount of damage, and even if they manage to deconstruct half the factory, the undo reduces the impact of that by enormous amounts (they might let an alien or two in, or contaminate a line briefly, but that's about it - the work to put it back is minimal, whereas silently breaking a production line and then carrying on with the game can take AGES to discover the cause).

And when an admin isn't present, votes need to be able to do the same. "Vote to kick Fred and undo his last 60 seconds of actions?".

I ran a Factorio public server, it filled quickly, we got 10+ hours into the game, and one guy walked in and ruined it by changing parts subtly for a few minutes, then killing players. By the time he was gone, the factory was at a halt, and everyone left because it was too much of a mess to try to fix. If that kind of player is possible (and it's a certainty on open publics), then you have to combat that kind of damage, because otherwise 60 seconds of griefing destroys a 10 hour game for 20+ people.
Bl00drav3n
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sat Jun 07, 2014 9:35 pm
Contact:

Re: Friday Facts #184 - Five years of Factorio

Post by Bl00drav3n »

Gergely wrote:Why wasn't Java a good idea?
If you want to write optimal code for your application, you just simply can't do it in Java. You can get close in some circumstances, but it's way easier to write your app in C/C++ because it gives you maximal control over your code (meaning the code that actually runs on the hardware). If you write some Java code, you actually don't really know how it will perform on different systems.

In my experience the big issues with Java games are their memory footprint as well as unavoidable hickups because of automatic garbage collection. The latter one is a 100% no go for high performance applicatons like games, also I believe that there is absolutely no reason to ever use garbage collection.

But I would really like to hear what kovarex' thoughts on that topic are.
Post Reply

Return to “News”