Friday Facts #299 - Everything is more complex than expected

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

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

Post by eradicator » Fri Jun 14, 2019 5:36 pm

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: Hand Crank Generator, Screenshot Hotkey 2.0
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: 273
Joined: Thu Sep 01, 2016 11:21 pm
Contact:

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

Post by Philip017 » 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 :)

User avatar
eradicator
Smart Inserter
Smart Inserter
Posts: 3070
Joined: Tue Jul 12, 2016 9:03 am
Contact:

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

Post by eradicator » Fri Jun 14, 2019 6:43 pm

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: Hand Crank Generator, Screenshot Hotkey 2.0
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: 80
Joined: Sat Jul 08, 2017 6:26 pm
Contact:

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

Post by Skeletpiece » Fri Jun 14, 2019 8:14 pm

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 » 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...

GuiltyBystander
Burner Inserter
Burner Inserter
Posts: 19
Joined: Sat Oct 01, 2016 12:53 am
Contact:

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

Post by GuiltyBystander » Fri Jun 14, 2019 8:20 pm

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
Burner Inserter
Burner Inserter
Posts: 18
Joined: Tue May 01, 2018 7:24 pm
Contact:

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

Post by Quarnozian » Fri Jun 14, 2019 9:12 pm

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
makeitgraphic18
Inserter
Inserter
Posts: 40
Joined: Sat Jan 06, 2018 7:53 am
Contact:

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

Post by makeitgraphic18 » Fri Jun 14, 2019 10:53 pm

Only 111 bugs left :)

aljo
Manual Inserter
Manual Inserter
Posts: 4
Joined: Sat Nov 10, 2018 7:54 am
Contact:

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

Post by aljo » Sat Jun 15, 2019 6:40 am

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 » Sat Jun 15, 2019 6:46 am

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
Manual Inserter
Manual Inserter
Posts: 4
Joined: Sun Mar 12, 2017 10:21 am
Contact:

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

Post by FerMod » Sat Jun 15, 2019 9:00 am

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: 22
Joined: Sun Mar 27, 2016 12:11 pm
Contact:

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

Post by axelsword » Sat Jun 15, 2019 2:38 pm

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: 492
Joined: Wed Jul 12, 2017 5:45 pm
Contact:

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

Post by Oktokolo » Sun Jun 16, 2019 9:12 am

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
Long Handed Inserter
Long Handed Inserter
Posts: 77
Joined: Wed Sep 20, 2017 5:45 pm
Contact:

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

Post by theolderbeholder » Sun Jun 16, 2019 9:20 am

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 » 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.

Amarula
Fast Inserter
Fast Inserter
Posts: 154
Joined: Fri Apr 27, 2018 1:29 pm
Contact:

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

Post by Amarula » Sun Jun 16, 2019 3:56 pm

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.

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 » Sun Jun 16, 2019 10:09 pm

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: 497
Joined: Sun Apr 10, 2016 8:31 pm
Contact:

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

Post by Gergely » Mon Jun 17, 2019 5:17 am

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
Fast Inserter
Fast Inserter
Posts: 191
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

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

Post by boskid » Mon Jun 17, 2019 5:38 am

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: 1576
Joined: Wed Jun 10, 2015 10:37 pm
Contact:

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

Post by bobucles » Mon Jun 17, 2019 11:28 am

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”

Who is online

Users browsing this forum: No registered users