Friday Facts #299 - Everything is more complex than expected

Regular reports on Factorio development.
User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5207
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by eradicator »

Philip017 wrote: ↑Fri Jun 14, 2019 4:52 pm but would still love to see a message 10 seconds before the inevitable forced stand still.
As saving is bound to map tick it might be possible to mod that. No idea how it behaves if you change the autosave-interval in the middle of the game though.

MasterBuilder wrote: ↑Fri Jun 14, 2019 4:24 pm
XBBX wrote: ↑Fri Jun 14, 2019 4:14 pm in case you guys missed train related bug from reddit
https://www.reddit.com/r/factorio/comme ... on_design/
They've already fixed it for .50
viewtopic.php?f=30&t=71990
Bethesda would've ignored the report. Then half a year later called it a hidden feature. :twisted:
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: ζ—₯本θͺž, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
User avatar
Philip017
Filter Inserter
Filter Inserter
Posts: 360
Joined: Thu Sep 01, 2016 11:21 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Philip017 »

eradicator wrote: ↑Fri Jun 14, 2019 5:36 pm
but would still love to see a message 10 seconds before the inevitable forced stand still.
As saving is bound to map tick it might be possible to mod that. No idea how it behaves if you change the autosave-interval in the middle of the game though.
if you are an experienced modder, perhaps you could create something like this, i have yet to see one and have been asking since v13, you can put in a warning that it may not work correctly if you change the auto-save timer during the middle of the game, and should be done before loading the save. thanks :)
User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 5207
Joined: Tue Jul 12, 2016 9:03 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by eradicator »

Philip017 wrote: ↑Fri Jun 14, 2019 6:03 pm if you are an experienced modder, perhaps you could create something like this, i have yet to see one and have been asking since v13, you can put in a warning that it may not work correctly if you change the auto-save timer during the middle of the game, and should be done before loading the save. thanks :)
I'm sorry if i got your hopes up that i would make that mod. I meant to merly comment on if it's possible or not. Some testing in SP suggestes that the automatic auto-save is indeed perfectly in sync with the game tick even if you change the interval. For SP you could use below command, but in MP commands desync, and the command has to hardcode the interval, etcpp. As i just noticed the modding api seems to have actual support for mod-based auto-saving now, which would lead to a much better result than "guessing" when the save will happen.
command
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: ζ—₯本θͺž, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Skeletpiece
Long Handed Inserter
Long Handed Inserter
Posts: 82
Joined: Sat Jul 08, 2017 6:26 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Skeletpiece »

About the counter example, chain signals are made for that case, right?
TheH1313
Manual Inserter
Manual Inserter
Posts: 1
Joined: Fri Jun 14, 2019 8:09 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by TheH1313 »

My first thought is who the heck didn't install a chain signal in the proper place/s to allow such confusion and delay on such a fine network which is not allowing useful engines to carry their fine cargo to their destination/s...
GuiltyBystander
Inserter
Inserter
Posts: 23
Joined: Sat Oct 01, 2016 12:53 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by GuiltyBystander »

The bug report graph per day is a little deceptive since people obviously play more on the weekend. Also, Kathrine of Sky was hosting an MMO event which means any crash there gets amplified in it's reporting. If possible, it'd be nice to see hours played / crash.
Quarnozian
Inserter
Inserter
Posts: 32
Joined: Tue May 01, 2018 7:24 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Quarnozian »

Failsafe, and bug-finding condition...

When a train comes to a complete stop (anywhere for a manual train, only at a train stop for automatic trains), all blocks reserved by that train are un-reserved except for the blocks the train currently occupies. If the number of released blocks is greater than Zero, then auto-generate a bug report.

In the bug report, you could even send a blueprint string that only has the train-related entities in the base. (Rail, train stops, signals, chain signals, The actual trains and their schedules.) But, if it's a ridiculously large base... maybe give the player a popup asking permission to bog down their game for a second to generate the massive train network blueprint. (For example, Xterminator's Sending Supporters to Space series... that rail network is massive.)
User avatar
MakeItGraphic
Fast Inserter
Fast Inserter
Posts: 237
Joined: Sat Jan 06, 2018 7:53 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by MakeItGraphic »

Only 111 bugs left :)
aljo
Burner Inserter
Burner Inserter
Posts: 18
Joined: Sat Nov 10, 2018 7:54 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by aljo »

Philip017 wrote: ↑Fri Jun 14, 2019 6:03 pm
eradicator wrote: ↑Fri Jun 14, 2019 5:36 pm
but would still love to see a message 10 seconds before the inevitable forced stand still.
As saving is bound to map tick it might be possible to mod that. No idea how it behaves if you change the autosave-interval in the middle of the game though.
if you are an experienced modder, perhaps you could create something like this, i have yet to see one and have been asking since v13, you can put in a warning that it may not work correctly if you change the auto-save timer during the middle of the game, and should be done before loading the save. thanks :)
I don't actually understand what the OP is talking about. What message? What forced stand still? And how do messages have anything to do with saving? FWIW, I don't play multiplayer, so that may be why I don't know what you're referring to.

Edit: Never mind, I didn't actually read the full OP comment until just now. It makes a lot more sense in context. :P
Successful_Yogurt
Manual Inserter
Manual Inserter
Posts: 1
Joined: Sat Jun 15, 2019 6:43 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Successful_Yogurt »

XBBX wrote: ↑Fri Jun 14, 2019 4:14 pm in case you guys missed train related bug from reddit
https://www.reddit.com/r/factorio/comme ... dium=web2x

This would require a herculean task i suppose...seems more complicated than solving complex differential equation.
User avatar
FerMod
Burner Inserter
Burner Inserter
Posts: 9
Joined: Sun Mar 12, 2017 10:21 am
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by FerMod »

TheH1313 wrote: ↑Fri Jun 14, 2019 8:17 pm My first thought is who the heck didn't install a chain signal in the proper place/s to allow such confusion and delay on such a fine network which is not allowing useful engines to carry their fine cargo to their destination/s...
You have to understand that are people new to this game or people that could make mistakes. I was once confused about the rail signals.
axelsword
Inserter
Inserter
Posts: 23
Joined: Sun Mar 27, 2016 12:11 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by axelsword »

Train should generate a stopping shadow in front of it based on braking force. Overlaps could be recorded in arrays to decide "give way" order.
User avatar
Oktokolo
Filter Inserter
Filter Inserter
Posts: 884
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Oktokolo »

I also am of the opinion that the portrayed signalling edge case is just plain wrong signalling and should at least lead to trapped trains (not crash the game though). The signalling is easy to fix even for a beginner since introduction of the colorful on-demand signal block overlay.
So if you can squeeze any performance out of the rail system by making trains get stuck on poorly signalled loops and intersections - i would certainly be fine with that.
Coming from OpenTTD i might be marginally biased - but requiring some focus and dedication for the player to get an actually working rail network should be okay in Factorio.

The NPE should go a bit further to teach proper signalling and how to design robust networks though. It should teach the most important building blocks and principles of working rail networks like stackers and the when to use roro or terminal stations.
theolderbeholder
Fast Inserter
Fast Inserter
Posts: 137
Joined: Wed Sep 20, 2017 5:45 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by theolderbeholder »

Maybe the shown example could make it into the tutorial as one of the signaling exercises one has to fix.
wolletd
Burner Inserter
Burner Inserter
Posts: 14
Joined: Wed Mar 15, 2017 8:04 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by wolletd »

Gergely wrote: ↑Fri Jun 14, 2019 3:59 pm Edit: Oh and from a programmer's perspective, I am currently unable to see how this would affect memory usage or performance. ...unless the new reserved counter spams more than one byte.
Also from a programmer's perspective, it's just awful dirty code to be able to make multiple reservations and not keeping track how many of them were cleared.

Imagine ordering three cheeseburgers and only getting one, because all your orders were cleared with the first finished burger. It's just wrong.
Amarula
Filter Inserter
Filter Inserter
Posts: 543
Joined: Fri Apr 27, 2018 1:29 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Amarula »

To kovarex and all the developers, thank you again for sharing what is happening behind the scenes, for giving us a glimpse of your struggles. Thank you for all your hard work that provides us with the most marvelous game that just keeps getting better and better.

I am so sorry that anyone disagreed so violently with that design decision from five years ago that their feedback comes across as an attack.

The difference between criticism and an attack: criticism points out a weakness or failure so it can be corrected; constructive criticism provides advice on how to correct the problem; the best feedback includes encouragement that inspires you to improve. An attack doesn't help identify a problem, or help correct a problem, or inspire improvement.

So for anyone looking to provide criticism, whether here or in some other forum, please make your feedback as constructive and helpful as you can. Bonus points if you can make us laugh at the same time. Note that this isn't easy or quick: I can bang off a nasty-gram in a couple of minutes; I have been working on this post for over an hour - I keep writing sentences, and deleting them because they aren't helpful. I am persevering because if it inspires even one person to provide better feedback, that will make the internet a better place for all of us.
My own personal Factorio super-power - running out of power.
plumbide
Manual Inserter
Manual Inserter
Posts: 1
Joined: Sun Jun 16, 2019 10:06 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by plumbide »

Hey guys, FYI, the main page of the site (https://wiki.factorio.com/Main_Page) hasn't been updated to include this FFF. I thought you'd missed a week!
User avatar
Gergely
Filter Inserter
Filter Inserter
Posts: 616
Joined: Sun Apr 10, 2016 8:31 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by Gergely »

wolletd wrote: ↑Sun Jun 16, 2019 1:57 pm
Gergely wrote: ↑Fri Jun 14, 2019 3:59 pm Edit: Oh and from a programmer's perspective, I am currently unable to see how this would affect memory usage or performance. ...unless the new reserved counter spams more than one byte.
Also from a programmer's perspective, it's just awful dirty code to be able to make multiple reservations and not keeping track how many of them were cleared.

Imagine ordering three cheeseburgers and only getting one, because all your orders were cleared with the first finished burger. It's just wrong.
It actually makes a lot of sense if you ignore cases of this "bad signaling design". Let's say you expect the train to only ever enter any block in it's path once. Why would you put in a reservation counter if you assume a block can only have one reservation at a time?

It's doable with just a flag. It has two states: Reserved and not reserved. When the train reserves it, it sets the flag and when it enters the block it clears the flag. Simple. That's why multiple reservations wouldn't be counted. Subsequent reservations after the first one would set the flag ignoring the fact that it's already set.
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 3009
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by boskid »

Gergely wrote: ↑Mon Jun 17, 2019 5:17 am It's doable with just a flag. It has two states: Reserved and not reserved. When the train reserves it, it sets the flag and when it enters the block it clears the flag. Simple. That's why multiple reservations wouldn't be counted. Subsequent reservations after the first one would set the flag ignoring the fact that it's already set.
This is programming and every detail matters. If train goes through one segment from two not intersecting relations, train will reserve this section for first pass and then for second pass "it will ignore setting flag because it is already set", but now goes second part: when train finishes its first pass, it will clear this flag so there is no guarante that on second pass there will be no colliding other trains - they could reserve this section as it is no longer reserved and enter it - train collision. How would you prevent this? simple: wait until all passes through section are done. In this case it will be after 2 passes. But why 2? why not 3? not 4? Simple - lets count how many times this section was reserved for distinct passes. This way not every "release signal" will mark segment to be free - only if all "release segment" were done to their complementary "reserve segment"

Below there are two passes through segment 2: 1->3 [right intersection] (of course going from right because of signals only on one side) and 3->4 [left intersection]
Image
bobucles
Smart Inserter
Smart Inserter
Posts: 1708
Joined: Wed Jun 10, 2015 10:37 pm
Contact:

Re: Friday Facts #299 - Everything is more complex than expected

Post by bobucles »

Kudos to the devs for trying to fix some oddball cases, but sometimes the problem is between the chair and keyboard. :roll:
That junction breaks the golden rule of signaling; every rail crossing needs a signal. The north/south crossing doesn't have signals when it should.
Post Reply

Return to β€œNews”