Friday Facts #279 - Train GUI & Modern Spitter

Regular reports on Factorio development.
Post Reply
Infidellic
Manual Inserter
Manual Inserter
Posts: 2
Joined: Tue Jan 30, 2018 8:01 pm
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by Infidellic » Tue Jan 29, 2019 5:16 pm

I have to agree with everyone above being confused by the logic parsing.

Although I am all for the indentation proposal I do wonder if there is reinventing the wheel a bit here, after all there is already a logic/combinatorial system in Factorio:

Circuit Network

But actually using this in a train (as to how I have no idea, maybe like Factorissimo you could have a defined space "inside" the locomotive to lay out the circuits) rather than just at the signalling level would mean:

1) Circuits would naturally be introduced to the player starting with simple logic (i.e. when iron ore > 3k)
2) Perhaps speakers could be triggered from within a moving train (i.e. I ran out of fuel in the middle of nowhere. COME FIND ME)
3) There would be no ambiguity over precedence (other than whatever confusion Circuit Networks cause)
4) Other artifical signals could be introduced over time (or by mods) like train speed, fuel status, other station occupancy, etc
5) EDIT: It'd also introduce a cost for complex orders (which becomes trivial when you get endgame) - more comparators, wires, etc

I'm not actually a mad fan of the Circuit Network in Factorio (Despite an Electrical Engineering degree!) partially due to the way signals combine however it seems daft to have two separate logic systems, one of which is never really introduced to the player

Just my £0.02

Scherazade
Manual Inserter
Manual Inserter
Posts: 3
Joined: Fri Jun 08, 2018 10:06 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by Scherazade » Tue Jan 29, 2019 7:54 pm

It is great that this awesome game is still being developed and not only with a few changes that can be implemented easily but groundbreaking improvements and well-wrought balancing. BUT while I read so many posts about new stuff I ask myself the question WHEN will it be implemented? I am not playing right now and definitely will not start a new base before 0.17 changes everything (especially science).

porcupine
Long Handed Inserter
Long Handed Inserter
Posts: 61
Joined: Sat Oct 15, 2016 4:58 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by porcupine » Tue Jan 29, 2019 11:09 pm

Scherazade wrote:
Tue Jan 29, 2019 7:54 pm
It is great that this awesome game is still being developed and not only with a few changes that can be implemented easily but groundbreaking improvements and well-wrought balancing. BUT while I read so many posts about new stuff I ask myself the question WHEN will it be implemented? I am not playing right now and definitely will not start a new base before 0.17 changes everything (especially science).
We'll likely be playing new content within a month based on what we've seen thus far. This is just a guestimate, but given a previous rough timeline by the developer, and how far they're liable to stray from that, it's a reasonable guess.

I feel you, no intention of starting a new game till 0.17. Even then, it's always tempting to wait for bobs mods :D

vanatteveldt
Filter Inserter
Filter Inserter
Posts: 899
Joined: Wed Nov 25, 2015 11:44 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by vanatteveldt » Tue Jan 29, 2019 11:10 pm

Hannu wrote:
Tue Jan 29, 2019 2:14 pm
Bauer wrote:
Tue Jan 29, 2019 10:15 am
I never ever had a case in my entire Factorio life in which something like this was even remotely needed:
(A & (B | C) & D) | (E & F) | G
I have needed (A | B) & (C | D). I can use distributive law and get A&C | A&D | B&C | B&D, but it is annoying to feed with current UI.
Also, at least I think that complex schedules are too annoying to use and do not even think how I could use them. It is easier to put more trains, rails and stations even nice logic would certainly be more elegant solution.
I am a programmer and have a decent background in logic and math. The current interface to me is so ambiguous that I just don't both using different operators. In programming, I never rely on precedence and use brackets whenever I mix operators*, if nothing else to make intent clear to readers and 'future me' - and this is what I advise my students. So, in factorio I do only all ANDs or all ORs. I'm sure I could try it out and learn how the system works, but I haven't and I won't.

So, I really really think they should allow some form of bracketing, be it using indentation, actual brackets, some sort of text-based advanced mode (json exportable train routes, anyone?), or whatever. But for me the current system is, as the meme goes, literally unplayable.

[Or at least metaphorically unplayable ;-)]

*) I'm talking about mathematical / boolean operators here, I don't write x = (2 + 2) because I'm afraid it might be parsed as (x = 2) + 2...

AndrewIRL
Fast Inserter
Fast Inserter
Posts: 209
Joined: Fri Mar 24, 2017 2:17 pm
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by AndrewIRL » Wed Jan 30, 2019 2:54 am

Infidellic wrote:
Tue Jan 29, 2019 5:16 pm
I have to agree with everyone above being confused by the logic parsing.
McDuff wrote:
Tue Jan 29, 2019 11:36 am
I think I (and lots of other people) would love a system where stations know what they have and what they need, and you can dispatch trains accordingly
vanatteveldt wrote:
Tue Jan 29, 2019 11:10 pm
But for me the current system is, as the meme goes, literally unplayable.

You guys are aware of LTN - Logistic Train Network right? It turns trains stops into requestor/provider chests and trains into logistics bots. My last map was a 1RPM base running about 32 trains carrying ~20 types of goods including fluids to/from around 96 stops. I looked at train schedules maybe 10-15 times in the entire playthrough - once per each train -> "Send to Depot" and a couple of times to see what was going on.

Remember when you first got Requestor/Provider chests and logistics robots? Did you look back and remember wistfully the simpler times before logistics robots? Requestor/Provider train stops and logistics bot trains are the same feeling - you will never look back.

That earlier claim about ~20 types of goods was a lie - that's only bulk goods, I actually had a kitchen sink stop which would send pretty much any finished good out on a train so another ~50 different things in that one stop. Building a new outpost? Slap down a requestor train stop and have rail, belt, ammo, turrets, walls, turrets, flamethrowers, barrelled light oil, various inserters, miners, chests, concrete and whatever roll up in a train.

I required barely any rail - I sometimes envy those with dual and quad rail per direction as well as huge train stackers - they look so cool. Because LTN only dispatches trains as needed my 1RPM base has only basic 1 line per direction rail and it runs smoothly. Optera claims a 70% reduction in rolling stock - that's also a reduction in the rail and the stackers needed to carry those trains. You do need big train depots - but that turns out to be a convenient refuelling stop.

LTN has its own sub-forum and Optera is active and helpful:
Board < index < Contributions < Mods < Logistic Train Network
check it out. There are also YouTube tutorials on how to use it. Yes it is difficult to get started and yes you will need circuit driven smart stations (Optera has samples) but the investment pays off. Get over the (a bit steep) learning curve and never set a train schedule again.

Edit: Originally wrote 10 trains and 30 stops. Went back and actually looked at the map. It's actually 32 trains and 96 stops. Oops.
Last edited by AndrewIRL on Mon Feb 04, 2019 2:56 pm, edited 4 times in total.

User avatar
SuperSandro2000
Filter Inserter
Filter Inserter
Posts: 671
Joined: Sun Jan 12, 2014 3:54 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by SuperSandro2000 » Wed Jan 30, 2019 9:07 am

<NO_NAME> wrote:
Sat Jan 26, 2019 9:30 am
SuperSandro2000 wrote:
Sat Jan 26, 2019 8:38 am
I like the new biters.
Still cliffs are useless piece of shit that only annoy you.
Cliffs are great! They are basically walls that cannot be destroyed by enemy. I love incorporating them into my factory's defense.
I don't know how big is your base but I assume tinier than my starter base.
Cliffs are basically a useless entity in that game whose sole purpose it is to annoy me until I get blue science and can blow them all up. They don't provide any useful defense cause biters will just walk around them or shoot over.
Then my base is not a giant clusterfuck like I imagine yours.

Ackos
Long Handed Inserter
Long Handed Inserter
Posts: 87
Joined: Wed May 21, 2014 1:14 pm
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by Ackos » Wed Jan 30, 2019 9:19 am

Ewwww, that train GUI is awful. NO Thanks!

McDuff
Fast Inserter
Fast Inserter
Posts: 185
Joined: Sun Jan 11, 2015 11:09 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by McDuff » Wed Jan 30, 2019 9:34 am

AndrewIRL wrote:
Wed Jan 30, 2019 2:54 am
Infidellic wrote:
Tue Jan 29, 2019 5:16 pm
I have to agree with everyone above being confused by the logic parsing.
McDuff wrote:
Tue Jan 29, 2019 11:36 am
I think I (and lots of other people) would love a system where stations know what they have and what they need, and you can dispatch trains accordingly
vanatteveldt wrote:
Tue Jan 29, 2019 11:10 pm
But for me the current system is, as the meme goes, literally unplayable.

You guys are aware of LTN - Logistic Train Network right? It turns trains stops into requestor/provider chests and trains into logistics bots. My last map was a 1RPM base running about 10 trains carrying ~20 types of goods including fluids to/from around 30 stops. I looked at train schedules maybe 10-15 times in the entire playthrough - once per each train -> "Send to Depot" and a couple of times to see what was going on.
Yeah I am, I used it quite a lot in the last build I did, I just think it would be nice to have something like that in vanilla so that it could be a bit easier to set up and a bit more tightly integrated with the scheduling system. Optera has done a really nice job of the mod but it's still got a "bolted on" feeling.

chris13524
Fast Inserter
Fast Inserter
Posts: 189
Joined: Thu Jun 04, 2015 12:20 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by chris13524 » Wed Jan 30, 2019 6:14 pm

kovarex wrote:
Sat Jan 26, 2019 9:56 am
Reika wrote:
Fri Jan 25, 2019 8:32 pm
This FFF hints at, but does not really explicitly confirm or deny, a thing I have wanted for a long time:

Condition combination control; that is, currently with AND and OR, your ability to control is somewhat limited if you want them combined in complex ways. For example, there is no way to achieve condition (A & (B | C) & D) | (E & F) | G.

Will that ever be a feature, with 0.17 or ever?
It is, your condition can be decomposed to:

A & B & D | A & C & D | E & F | G.

No need for brackets. (I know it is not perfect, but considering how much of an edge case this is, it is good enough.
For those of us that have computer science degrees, we can do the math and reduce anything to the sums of products form. But for those of use that don't (and don't want to do math during a game), it would be great to have brackets in-game.

User avatar
ThaPear
Fast Inserter
Fast Inserter
Posts: 221
Joined: Fri May 30, 2014 8:05 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by ThaPear » Wed Jan 30, 2019 8:12 pm

Since everything can already be done with the current and/or system, I feel dev time is much better spent on other things. Brackets would only needlessly complicate the system.

mrvn
Smart Inserter
Smart Inserter
Posts: 3104
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by mrvn » Wed Jan 30, 2019 9:33 pm

Bauer wrote:
Tue Jan 29, 2019 10:15 am
I'm with Factorio for a while now.
I used trains and circuits heavily.
I used train delivered blueprints for recursive blueprints (delivering one piece of another good to identify the blueprint at the station).
I made a rail network with all stations having the same name and all trains having the same schedule (no turnouts, though).

I never ever had a case in my entire Factorio life in which something like this was even remotely needed:
(A & (B | C) & D) | (E & F) | G

Please, impress me. What the hell would you need this for?
I just made something up. But lets see:

A train that goes to the weapons factory and gets some mix of turrets that can be used to put up a defense:

(flame-turret >= 10 & (heavy-oil-barrel >= 10 | light-oil-barrel >= 10) & assembler >= 10) | (turret >= 10 & ammo-clip >= 40) | laser-turrets >= 10

mrvn
Smart Inserter
Smart Inserter
Posts: 3104
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by mrvn » Wed Jan 30, 2019 9:34 pm

ThaPear wrote:
Wed Jan 30, 2019 8:12 pm
Since everything can already be done with the current and/or system, I feel dev time is much better spent on other things. Brackets would only needlessly complicate the system.
At a minimum the current AND/OR elements in the GUI should have different indentation to show the current precedence.

Bauer
Fast Inserter
Fast Inserter
Posts: 242
Joined: Fri May 05, 2017 12:48 pm
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by Bauer » Thu Jan 31, 2019 10:07 am

mrvn wrote:
Wed Jan 30, 2019 9:33 pm
Bauer wrote:
Tue Jan 29, 2019 10:15 am
I'm with Factorio for a while now.
I used trains and circuits heavily.
I used train delivered blueprints for recursive blueprints (delivering one piece of another good to identify the blueprint at the station).
I made a rail network with all stations having the same name and all trains having the same schedule (no turnouts, though).

I never ever had a case in my entire Factorio life in which something like this was even remotely needed:
(A & (B | C) & D) | (E & F) | G

Please, impress me. What the hell would you need this for?
I just made something up. But lets see:

A train that goes to the weapons factory and gets some mix of turrets that can be used to put up a defense:

(flame-turret >= 10 & (heavy-oil-barrel >= 10 | light-oil-barrel >= 10) & assembler >= 10) | (turret >= 10 & ammo-clip >= 40) | laser-turrets >= 10
Save game or it didn't happen ;-)

mrvn
Smart Inserter
Smart Inserter
Posts: 3104
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by mrvn » Thu Jan 31, 2019 10:37 am

Bauer wrote:
Thu Jan 31, 2019 10:07 am
mrvn wrote:
Wed Jan 30, 2019 9:33 pm
Bauer wrote:
Tue Jan 29, 2019 10:15 am
I'm with Factorio for a while now.
I used trains and circuits heavily.
I used train delivered blueprints for recursive blueprints (delivering one piece of another good to identify the blueprint at the station).
I made a rail network with all stations having the same name and all trains having the same schedule (no turnouts, though).

I never ever had a case in my entire Factorio life in which something like this was even remotely needed:
(A & (B | C) & D) | (E & F) | G

Please, impress me. What the hell would you need this for?
I just made something up. But lets see:

A train that goes to the weapons factory and gets some mix of turrets that can be used to put up a defense:

(flame-turret >= 10 & (heavy-oil-barrel >= 10 | light-oil-barrel >= 10) & assembler >= 10) | (turret >= 10 & ammo-clip >= 40) | laser-turrets >= 10
Save game or it didn't happen ;-)
I'm not going to normalize that and enter it in the train GUI. Do you know how long that term becomes?

User avatar
Nova
Filter Inserter
Filter Inserter
Posts: 918
Joined: Mon Mar 04, 2013 12:13 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by Nova » Thu Jan 31, 2019 10:45 am

Not much longer, you just have to repeat the flame-turrent and the assembler condition:
flame-turret >= 10 & heavy-oil-barrel >= 10 & assembler >= 10 | flame-turret >= 10 & light-oil-barrel >= 10 & assembler >= 10 | turret >= 10 & ammo-clip >= 40 | laser-turrets >= 10
Greetings, Nova.
Factorio is one of the greatest games I ever played, with one of the best developers I ever heard of. Image

JCU
Burner Inserter
Burner Inserter
Posts: 5
Joined: Wed Dec 07, 2016 2:08 pm
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by JCU » Thu Jan 31, 2019 11:19 am

Here are my suggestions about new GUI. It looks nice, but text looks too small compared to the size of buttons. Especially a vertical size. Yes, if you increase font size, some long strings will not fit to their controls. Maybe some dynamic font size switching? Or mayme a vertical size of buttons should be simply decreased? Also, the current station indicator is almost invisible. As for me, it definitly should be much brighter. Also, it should be usefull to manually switch off stations from a train schedule. Without deleting them completely and without any logical circuits. Also, as some people already mentioned, it should be some visual grouping in a complex train conditions to indicate operator precedence.

Bauer
Fast Inserter
Fast Inserter
Posts: 242
Joined: Fri May 05, 2017 12:48 pm
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by Bauer » Thu Jan 31, 2019 12:18 pm

mrvn wrote:
Thu Jan 31, 2019 10:37 am
Bauer wrote:
Thu Jan 31, 2019 10:07 am
mrvn wrote:
Wed Jan 30, 2019 9:33 pm
Bauer wrote:
Tue Jan 29, 2019 10:15 am
I'm with Factorio for a while now.
I used trains and circuits heavily.
I used train delivered blueprints for recursive blueprints (delivering one piece of another good to identify the blueprint at the station).
I made a rail network with all stations having the same name and all trains having the same schedule (no turnouts, though).

I never ever had a case in my entire Factorio life in which something like this was even remotely needed:
(A & (B | C) & D) | (E & F) | G

Please, impress me. What the hell would you need this for?
I just made something up. But lets see:

A train that goes to the weapons factory and gets some mix of turrets that can be used to put up a defense:

(flame-turret >= 10 & (heavy-oil-barrel >= 10 | light-oil-barrel >= 10) & assembler >= 10) | (turret >= 10 & ammo-clip >= 40) | laser-turrets >= 10
Save game or it didn't happen ;-)
I'm not going to normalize that and enter it in the train GUI. Do you know how long that term becomes?
No, very easy: "Anything > 10" will do. ;-)
BTW, thanks for proving that "(A & (B | C) & D) | (E & F) | G" has absolutely no use-case.

mrvn
Smart Inserter
Smart Inserter
Posts: 3104
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by mrvn » Thu Jan 31, 2019 1:23 pm

Bauer wrote:
Thu Jan 31, 2019 12:18 pm
mrvn wrote:
Thu Jan 31, 2019 10:37 am
Bauer wrote:
Thu Jan 31, 2019 10:07 am
mrvn wrote:
Wed Jan 30, 2019 9:33 pm
Bauer wrote:
Tue Jan 29, 2019 10:15 am
I'm with Factorio for a while now.
I used trains and circuits heavily.
I used train delivered blueprints for recursive blueprints (delivering one piece of another good to identify the blueprint at the station).
I made a rail network with all stations having the same name and all trains having the same schedule (no turnouts, though).

I never ever had a case in my entire Factorio life in which something like this was even remotely needed:
(A & (B | C) & D) | (E & F) | G

Please, impress me. What the hell would you need this for?
I just made something up. But lets see:

A train that goes to the weapons factory and gets some mix of turrets that can be used to put up a defense:

(flame-turret >= 10 & (heavy-oil-barrel >= 10 | light-oil-barrel >= 10) & assembler >= 10) | (turret >= 10 & ammo-clip >= 40) | laser-turrets >= 10
Save game or it didn't happen ;-)
I'm not going to normalize that and enter it in the train GUI. Do you know how long that term becomes?
No, very easy: "Anything > 10" will do. ;-)
BTW, thanks for proving that "(A & (B | C) & D) | (E & F) | G" has absolutely no use-case.
The train already holds 100 transport belts, 50 underground belts, 200 iron plates, ... It will never stay at the weapons station with "Anything > 10".

McDuff
Fast Inserter
Fast Inserter
Posts: 185
Joined: Sun Jan 11, 2015 11:09 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by McDuff » Thu Jan 31, 2019 1:50 pm

Are brackets/indents actually hard? Like, is it more than a couple of hours work to do? If it's easy, then I'd like to see it. If it's a pain in the ass, I can live without it.

drakonite
Manual Inserter
Manual Inserter
Posts: 1
Joined: Fri Feb 01, 2019 1:02 am
Contact:

Re: Friday Facts #279 - Train GUI & Modern Spitter

Post by drakonite » Fri Feb 01, 2019 1:04 am

With the rework of the train UI, there is a major addition I'd love to see: "skip conditions". The exact same setup as the wait conditions, but determines whether the station should be visited or the train should skip it and go to the next station in the schedule instead.

As a simple theoretical example, let's pretend we also have the train's remaining fuel exposed as a condition option and make a train with the following schedule:

1) Outpost: Wait until full
2) Base: Wait until empty
3) Refuel: Skip if FUEL > 10. Wait until FUEL>90

The train would load up at the outpost, drop off at the base, and then if it is low on fuel will go to the refueling station, otherwise if it has enough fuel it will completely skip going to the refuel station and only go between the outpost and the base.

Bam. Fairly small change (most of the work already done for wait conditions) that suddenly enables a lot of smart behavior, including the oft wanted smart refueling.

Post Reply

Return to “News”

Who is online

Users browsing this forum: nastyslave