Friday Facts #196 - Back on track

Regular reports on Factorio development.

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

Re: Friday Facts #196 - Back on track

Post by chris13524 »

Why is all the code so closely coupled? Isn't it good design to loosely couple stuff? Especially between GUI and networking stuff, that sounds crazy.

Chocolatetthunder
Long Handed Inserter
Long Handed Inserter
Posts: 74
Joined: Sat Sep 03, 2016 12:00 am
Contact:

Re: Friday Facts #196 - Back on track

Post by Chocolatetthunder »

Why are you making tutorials when you have members of your community making a living of of tutorials?
3Ra Gaming Owner
join us on discord @ http://www.3RaGaming.com/discord

User avatar
MrGrim
Fast Inserter
Fast Inserter
Posts: 240
Joined: Sat Apr 09, 2016 7:58 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by MrGrim »

chris13524 wrote:Why is all the code so closely coupled? Isn't it good design to loosely couple stuff? Especially between GUI and networking stuff, that sounds crazy.
Generally, but that has a cost, usually in terms of performance. It gains you easier to maintain, read, and modify code. For many applications that's a fair trade.

Hyratel
Inserter
Inserter
Posts: 34
Joined: Sun May 15, 2016 10:35 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by Hyratel »

chris13524 wrote:Why is all the code so closely coupled? Isn't it good design to loosely couple stuff? Especially between GUI and networking stuff, that sounds crazy.
I think it probably has to do with how the entire game is deterministic in absence of external inputs, combined with heavy optimisations

ricky3350
Burner Inserter
Burner Inserter
Posts: 9
Joined: Fri Jan 16, 2015 9:54 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by ricky3350 »

I looked at the tutorials (which I'd never bothered to look at before), and this is my feedback:
  • The tutorials can be combined. For me, it makes sense to have the first two and the last two (building and signals) as one tutorial each.
  • The tutorials take too long. There are times when I feel like "I get it already," such as in the first tutorial when you have to build the loop. I also felt there were too many chain signal examples. What I could see working is for the combined tutorials to be made shorter so that they take about the same amount of time as a single tutorial, but cover the information of two (if possible).
  • The tutorials should be made available from the main menu, so that a player who wants to do one doesn't need to create/load a game just to do a tutorial.
Also, in the signal tutorials, the concept of a block isn't really explained, which could be confusing for someone who doesn't already know what a block is.

All in all, however, I like the tutorial system—it's much better than the tips and tricks, as players can see things in action immediately. That being said, I would suggest moving some of the T&T to the tutorials. Not all of them can be, but some can (e.g. items on both sides of belts, fast replacement, inventory management [which may or may not include logistic slots], building while running [could go with fast replacement], and copy and paste). It would also be nice to have tutorials for nuclear, circuit network, and fluid wagons, if no plans have been made to make these tutorials already.

Unfortunately, as a player with hundreds of hours of playtime, I may not be the best judge of the tutorials. These are just my ideas, and I'm sure there are many would disagree with me.

ftvkyo2011
Manual Inserter
Manual Inserter
Posts: 1
Joined: Fri Jun 23, 2017 7:04 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by ftvkyo2011 »

Tutorials taught me HOW to do something, but now WHY should I do it, as I think. Sorry, I can't explain better.

annih
Manual Inserter
Manual Inserter
Posts: 1
Joined: Wed Jun 07, 2017 4:51 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by annih »

I just love those in-depth dev episodes. Thanks rseding! <3

Selvek
Fast Inserter
Fast Inserter
Posts: 238
Joined: Fri May 06, 2016 4:04 am
Contact:

Re: Friday Facts #196 - Back on track

Post by Selvek »

Seems like a good time to start compiling a list of all the "sneaky" things that you need to know but are non-intuitive. Here's my start:

Belts
Two belt sides
"Magic" lane splitting behavior of undergrounds.
Inserters can't fully saturate belts unless outputting onto splitters or undergrounds.
Side merge and splitter merge can saturate belts.

Circuits
Why is there no "SUM" combinator operation? Sum happens inherently between red and green wires.
Basic counter - reset, tick rate = 60Hz
Pulse behavior for counting items
Any, each, and all (with usage examples)
Perhaps some usable examples to get the player started? Circuit networks are incredibly intimidating at the beginning!

Trains
(I think the current tutorials hit on the major issues pretty well)

Bots, logistics, and blueprints
Blueprints are a thing that exists from the start of the game
Deconstruction planners have options if you open them! (Just learned this lol)
How to manage blueprint books (recommendation: fix this system so blueprints stay in books better before building the tutorial!)
Using logistic network conditions to limit chest quantities

Controls
(I think there are plenty of these that I still don't know... I just learned how to cancel deconstruction orders last month!)
Copy settings
Place blueprint instead of item
Stack splitting/single item
Quick transfer (what's the shortcut for transferring all items of every type to a chest? I keep doing it accidentally but I still can't figure out what the key combo is!)
(etc... there are a TON of these magic hidden shortcuts!)

Rseding91
Factorio Staff
Factorio Staff
Posts: 14131
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Friday Facts #196 - Back on track

Post by Rseding91 »

Selvek wrote:Controls
(I think there are plenty of these that I still don't know... I just learned how to cancel deconstruction orders last month!)
Copy settings
Place blueprint instead of item
Stack splitting/single item
Quick transfer (what's the shortcut for transferring all items of every type to a chest? I keep doing it accidentally but I still can't figure out what the key combo is!)
(etc... there are a TON of these magic hidden shortcuts!)
Those aren't hidden at all :) those are all in the controls section of the game menu.
If you want to get ahold of me I'm almost always on Discord.

Medium_Pole
Manual Inserter
Manual Inserter
Posts: 2
Joined: Fri Jun 23, 2017 7:23 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by Medium_Pole »

ricky3350 wrote:
  • The tutorials can be combined. For me, it makes sense to have the first two and the last two (building and signals) as one tutorial each.
  • The tutorials take too long. There are times when I feel like "I get it already," such as in the first tutorial when you have to build the loop. I also felt there were too many chain signal examples. What I could see working is for the combined tutorials to be made shorter so that they take about the same amount of time as a single tutorial, but cover the information of two (if possible).
  • The tutorials should be made available from the main menu, so that a player who wants to do one doesn't need to create/load a game just to do a tutorial.
Absolutely. Tutorials should be accessable from the main menu, ideally in either of the "start campaign" or "scenarios" sub-menus.
Or combine these menus; why are campaigns, senarios, and tutorials all located in different places? (Tutorials should still be accessable in-game of course)
Selvek wrote:Seems like a good time to start compiling a list of all the "sneaky" things that you need to know but are non-intuitive. Here's my start:
Belts
...
Trains
...
Bots, logistics, and blueprints
...
Controls
...
These are good tutorial topics, but also
good assembler/chemical factory/refinery setups for example, how to make green circuits at a good ratio
Nuclear setup Too complicated for most users to figure out without looking at forums

User avatar
bobingabout
Smart Inserter
Smart Inserter
Posts: 7352
Joined: Fri May 09, 2014 1:01 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by bobingabout »

You already know how I feel about the train tutorial.
I think there's a bug
You think "not a bug".
Creator of Bob's mods. Expanding your gameplay since version 0.9.8.
I also have a Patreon.

mOoEyThEcOw
Inserter
Inserter
Posts: 22
Joined: Fri Mar 17, 2017 11:27 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by mOoEyThEcOw »

chris13524 wrote:Why is all the code so closely coupled? Isn't it good design to loosely couple stuff? Especially between GUI and networking stuff, that sounds crazy.
It's probably not closely coupled. It's just not orthogonally uncoupled. This is basically about prioritizing tradeoffs, but in a more granular way, but maybe I can explain the tradeoffs made better.

The way they likely laid out the game is by uncoupling game features, and this is often what people mean by loosely coupled: that features of the same level are uncoupled from each other. This allows them to have abstraction between features (so for example, inserters work on buildings, conveyors, trains, and the ground), and to add/remove/change features without touching every other feature (changing inserters happens in one place).

But then there are the engine features (graphics, networking, GUI, sound, animation), you can almost think of these as operating system features, it's a platform on which the game is built. Each of these features is likely loosely coupled (*with each other*) as well, so that on some platforms they can use different variations. But more importantly these features are used freely by all of the game features because they are generally guaranteed to be there as part of the platform, and in fact the point of the platform is to provide them. If you think about iOS specific apps, it's a similar problem, they use a bunch of iOS specific features so they can't just put it on Android. In this example Wireshark is like it's own platform (and plugins the apps), it's easier because both share the same OS (e.g. parent platform) and both were designed to be orthogonal with other applications (their game engine DLL didn't screw with the state of the Wireshark process).

So what isn't loosely coupled is the game features usage of the engine. Inserters make use of all the platform systems all at once likely (e.g. mixing calls to GUI with calls to networking). Hence when they wanted to separate out the networking features, they couldn't, because they weren't loosely coupled in multiple dimensions (e.g. orthogonally), they assumed a specific platform. It is this way for a number of reasons. A big one is performance, abstraction costs speed, loose coupling required abstraction and a slowdown in the first place, and doing it again would be an order of magnitude more abstraction speed decrease. Another is that few languages provide the tools required, C++ is only monopolymorphic, that is it only provides polymorphism over a single parameter (in this case, game features, the resulting function can't then also be polymorphic over engine features too with out lots of extra dev time... and performance slow downs). Some languages have multimethods, which are multipolymorphic, and would allow such a system (some of them are even fast like Julia; which to be fair didn't even exist when Factorio was first written).

So it is loosely coupled, just in one dimension. But each of their layers is loosely coupled enough it only took a day to hack two dlls together.

basementjack
Long Handed Inserter
Long Handed Inserter
Posts: 70
Joined: Sun Sep 25, 2016 11:31 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by basementjack »

I actually liked the train tutorials as is.
I agree that some more advanced topics like nuclear do require some explanation and the tutorial mechanism is great for that.

I also think you should focus on another area: the first few hours minutes of game play.

I think all the early game basics need tutorials - laying belts, generating electricity, etc..

I am not convinced however, that Wube needs to build all these tutorials. If it's not too difficult to build a 'tutorial building system' then I would focus on that, and let the current player community submit tutorials for inclusion in the finished game. In this way of doing things, Wube could gather a list of 'desired tutorial topics', put out a request for tutorials on each topic with a deadline, and then have some kind of community based voting to vote for the best tutorial for each topic. Wube would then just need to wire up the game to reveal the appropriate tutorials at the right time for the player as they progress through the game.

Selvek
Fast Inserter
Fast Inserter
Posts: 238
Joined: Fri May 06, 2016 4:04 am
Contact:

Re: Friday Facts #196 - Back on track

Post by Selvek »

Rseding91 wrote:
Selvek wrote:Controls
(I think there are plenty of these that I still don't know... I just learned how to cancel deconstruction orders last month!)
Copy settings
Place blueprint instead of item
Stack splitting/single item
Quick transfer (what's the shortcut for transferring all items of every type to a chest? I keep doing it accidentally but I still can't figure out what the key combo is!)
(etc... there are a TON of these magic hidden shortcuts!)
Those aren't hidden at all :) those are all in the controls section of the game menu.
Haha true, but who checks there? ;)

Seriously though, if they can be worked into other tutorials so you get a chance to see them in action, it's easier to build the muscle memory.

Patashu
Fast Inserter
Fast Inserter
Posts: 130
Joined: Mon May 08, 2017 11:57 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by Patashu »

I'm also fine with the train tutorials as they are.

The chain signals I didn't get how they worked at first, I felt like I was just placing them down to see what happens. But that's OK, it gave me enough examples that I eventually worked it out. And plus, you technically don't need to use them ever, so a tutorial that lets you experiment is fine here.

dactrin
Burner Inserter
Burner Inserter
Posts: 6
Joined: Mon May 22, 2017 5:40 pm
Contact:

Re: Friday Facts #196 - Back on track

Post by dactrin »

I'm sorry. I don't have any comments for the tutorials. I've never used them, when I first started playing I enjoyed just exploring the tech tree and all the items. Eventually I had big questions and would hunt around you tube for answers. Usually not how components worked, but how to solve large logistical problems. Having in game descriptions of each item to make usage easier for first time players might be a good idea. But not as a popup. Just a way for them to learn more about something when they become interested enough about it.

-------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- --------------

Also, please submit these game play suggestions to the backlog:

1. As the gameplay transitions into the "inifinte research" late game I would love to have the ability to explore for more interesting things. Much of the later game becomes improving the main base on the back of searching for the same old same old. Especially in multiplayer its fun to be able to focus on just exploring.
A) Bigger, stronger, faster, stranger aliens to battle.
B) Interesting geography/resources
C) Hidden Technologies that must be found (Cannot be researched)
D) Resource Caches
E) Something really cool!

2. A skill level called "Director" which automatically adjusts the biter evolution based on not only time elapsed but also on your current technologies. This is a concept I think every game should have, if you're doing really awesome you should have the ability to ask the game to keep up with you. Flip side, if you have a really bad attack it doesn't nessecarily mean the end of the game if you work hard.

3. Technologies that help improve your factories but also aid in reducing the computer resources used by the game. Specifically putting more things underground. Exact positions of individual items would no longer matter you just have to know at what game second the item will appear at the other end of the tunnel. Maybe this saves some processing time? Several Multiplayer maps have had to run less than normal speed to allow players to keep up with infinite maps.
A) Underground tunnels for robots
B) Underground Super Speed Transport Belts

4. Introduce tech that allows you to move around the map like an RTS. Maybe Spider-tron is the answer here.

chrisgbk
Long Handed Inserter
Long Handed Inserter
Posts: 93
Joined: Mon Jan 02, 2017 4:31 am
Contact:

Re: Friday Facts #196 - Back on track

Post by chrisgbk »

Rseding91 wrote:
Selvek wrote:Controls
(I think there are plenty of these that I still don't know... I just learned how to cancel deconstruction orders last month!)
Copy settings
Place blueprint instead of item
Stack splitting/single item
Quick transfer (what's the shortcut for transferring all items of every type to a chest? I keep doing it accidentally but I still can't figure out what the key combo is!)
(etc... there are a TON of these magic hidden shortcuts!)
Those aren't hidden at all :) those are all in the controls section of the game menu.
They aren't hidden if you are well versed in the mystical arts of "reading the manual" or "checking what the controls are instead of mashing keys until something good happens."

For everyone else who is not trained in such arcane arts, some positive reinforcement with some basic tutorials would probably be helpful. There's a reason AAA games typically start off with a movement tutorial that teaches you how to look around and walk - Halo, Overwatch, etc etc.

golfmiketango
Filter Inserter
Filter Inserter
Posts: 549
Joined: Fri Jan 29, 2016 2:48 am
Contact:

Re: Friday Facts #196 - Back on track

Post by golfmiketango »

It's really hard for an experienced player to objectively evaluate the tutorials, because, if we already know everything the tutorial has to teach, we have no "skin in the game." Furthermore, factorio expertise can make things seem obvious/intuitive that may in fact be quite confusing to someone newly learning the game.

To really "ace" the tutorials, Wube might consider implementing some sort of "poor man's usability testing." Find unwitting victims with little-to-no factorio experience and subject them to the tutorials. For example, assuming your mom, housekeeper, dog-walker, etc., have not been sucked into your factorio-verse, ask if they'd be willing to try it. Think of some swag you can offer them in exchange, i.e., a T-shirt and a free game license.

Once they agree, have them try the tutorial, and get permission to record the process on your phone or cam. Then leave them unsupervised while they try it (otherwise it will be too tempting to offer them help an end-user wouldn't get).

Once they're done, watch the videos to see what happened, but also ask for feedback: Did they understand what the tutorial was trying to teach? Was there anything they found confusing? Was there anything the tutorial tried too hard to teach but seemed obvious? You get the idea. You won't need thousands of results to glean useful insight-- 10 victims, or even just two, could really make a difference.

User avatar
Arch666Angel
Smart Inserter
Smart Inserter
Posts: 1636
Joined: Sun Oct 18, 2015 11:52 am
Contact:

Re: Friday Facts #196 - Back on track

Post by Arch666Angel »

@Klonan
For Tutorials and scenarios to the game: Make it a community event, have a tutorial making competition, set a deadline, have the best 5 chosen by the community and include in the game (plus some merch maybe). You can always go over the winner entries again and polish them to standards before including them.

Post Reply

Return to “News”