Friday Facts #390 - Noise expressions 2.0

Regular reports on Factorio development.
User avatar
FactorioBot
Factorio Staff
Factorio Staff
Posts: 423
Joined: Tue May 12, 2015 1:48 pm

Friday Facts #390 - Noise expressions 2.0

Post by FactorioBot »

OldFart
Burner Inserter
Burner Inserter
Posts: 12
Joined: Mon Feb 01, 2021 7:51 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by OldFart »

Hooray πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰
User avatar
GregoriusT
Filter Inserter
Filter Inserter
Posts: 337
Joined: Wed Apr 10, 2019 6:42 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by GregoriusT »

Love that new Wube Logo. It certainly says SOMETHING.
Don't underestimate Landmines!
Biters bite, Spitters spit, Spawners spawn and Worms... worm? - No, they throw their vomit! They even wind up to directly hurl it at you! friggin Hurlers...
jamezhall
Inserter
Inserter
Posts: 28
Joined: Fri Jul 21, 2017 11:27 am
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by jamezhall »

Huh? Lol I’m excited - this week I don’t understand why - but I’m excited ha - hope the math people enjoy this week !
Metin200
Manual Inserter
Manual Inserter
Posts: 4
Joined: Sat Nov 01, 2014 11:13 am
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Metin200 »

Could i get that "Something" as a wallpaper in 2560Γ—1440 ?
And maybe a version with "Nothing", too? ;) ( Nevermind about the Nothing version, since its your company logo, it should mean something. )


I know Factorio isn't about exploration, but those "crop circle pattern" could be an interesting random find.
User avatar
Ghoulish
Filter Inserter
Filter Inserter
Posts: 468
Joined: Fri Oct 16, 2015 8:40 am

Re: Friday Facts #390 - Noise expressions 2.0

Post by Ghoulish »

Complicated and quite technical! Still a good read even though a lot of it shoots straight over my head!

Merry Christmas.
See the dailyβ„’ struggles with my Factory! :D https://www.twitch.tv/repetitivebeats
Wenihal
Inserter
Inserter
Posts: 28
Joined: Thu Jan 22, 2015 11:56 am
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Wenihal »

Wube should sell science packs as Christmas decorations that you can put on your Christmas Tree :D
Shadow_Man
Fast Inserter
Fast Inserter
Posts: 126
Joined: Fri Mar 02, 2018 2:55 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Shadow_Man »

Hou-hou-hou!
We really need that snowy sprites and Christmas Tree in-game!
User avatar
picklock
Fast Inserter
Fast Inserter
Posts: 214
Joined: Sat Nov 09, 2019 6:49 am
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by picklock »

Verry technical this time but still interesting.

Am I right in thinking that these changes mean that modders will have to rewrite the setting of their own resources, for example?

Merry Christmas.
My Mods: Picklocks Fusion Power | Picklocks Inserter | Picklocks Lithium Polymer Accumulator | Picklocks rocket silo stats | Picklocks Set Inventory Filters | Picklocks QuickBar Import/Export | Picklocks Nauvis Cliff-Explosives
Tooster
Long Handed Inserter
Long Handed Inserter
Posts: 80
Joined: Wed Mar 24, 2021 6:42 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Tooster »

As for tools for visualizing: are you aware of the existence of the Dear ImGui? If you are using it, that's great! If you are not β€” both you and all the modders could be interested!

As for noise expression - I am not quite sure I understand the need for the "noise expression engine" altogether, the post is a bit hard to understand and it's not very clear what it can do that simply writing functions itself wouldn't. For example description of implementing things like "constant folding" raise some red flags for me β€” this sounds too familiar to what compilers already do to optimize, so why does it have to be reinvented :?:

And as for the AST and parser part β€” you might be also interested in Roslyn (C#) compiler and how they managed to make some good optimizations and design their compiler and syntax APIs β€” for example looking at the previous lua table syntax and "line_number=..." reminded me of some of the techniques they used to make their syntax trees more robust β€” using red-green trees for immutable trees (one, internal, constructed bottom-up, one, a facade, lazy evaluated with parent references and file offsets), using node-widths to compute file-offsets etc. They came up with some cool ideas, techniques and optimizations that you may find interesting.

As for the grammar part β€” recently a very nice tool came to my attention, that handles grammars, generating parsers etc, and people are generally very pleased with it: Tree-Sitter. It's grammars are supposedly very powerful and said to be working great, to the point that there is an open discussion whether VSCode should use tree-sitter grammars instead of what they use now. Although hand-written parser/lexers/tokenizers can be faster, they also may be a lot harder to maintain, test and fix.
Look mom, I made a mod ^^ Barrel Stages
Tungro
Manual Inserter
Manual Inserter
Posts: 4
Joined: Fri Dec 22, 2023 12:58 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Tungro »

Very technical! My head is spinning but a good read though!

Merry Christmas all!
Svip
Fast Inserter
Fast Inserter
Posts: 102
Joined: Sun Apr 29, 2018 6:19 am
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Svip »

Tooster wrote: ↑Fri Dec 22, 2023 12:58 pm For example description of implementing things like "constant folding" raise some red flags for me β€” this sounds too familiar to what compilers already do to optimize, so why does it have to be reinvented :?:
This appears to be part of the simplification step (step 5 in 1.1), which has now been entirely removed. My understanding is there is no longer any constant folding.
User avatar
Hares
Filter Inserter
Filter Inserter
Posts: 339
Joined: Sat Oct 22, 2022 8:05 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Hares »

So now all noise expressions are parsed from string, and the legacy format which uses Lua tables is removed for 2.0. Regarding the original issue this was all done for, noise expressions take 50% less time during prototype initialization and the prototypes now load 20% faster as a result.
Does this mean that mods will lose compatibility in 2.0? Again?
ixu
Fast Inserter
Fast Inserter
Posts: 107
Joined: Sun May 29, 2016 6:18 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by ixu »

I'm already sad not to be part of the Factorio team, but the 2.0 FFFs make it worse. This blog post (#390) almost tears my heart out. In particular, I'm very jealous of Earendel and Genhis for getting to develop this parser.
Mods: ingteb, ixuClock, ixuAutoSave, NoCheating, hardCrafting (Maintainer) and more
User avatar
Hares
Filter Inserter
Filter Inserter
Posts: 339
Joined: Sat Oct 22, 2022 8:05 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Hares »

Shadow_Man wrote: ↑Fri Dec 22, 2023 12:45 pm Hou-hou-hou!
We really need that snowy sprites and Christmas Tree in-game!
I assume that these snowy sprites are a sneak preview of the next planet and its particle effect covering all sprites with snow.
aka13
Filter Inserter
Filter Inserter
Posts: 795
Joined: Sun Sep 29, 2013 1:18 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by aka13 »

Hares wrote: ↑Fri Dec 22, 2023 1:09 pm
Shadow_Man wrote: ↑Fri Dec 22, 2023 12:45 pm Hou-hou-hou!
We really need that snowy sprites and Christmas Tree in-game!
I assume that these snowy sprites are a sneak preview of the next planet and its particle effect covering all sprites with snow.
That is also what I think, really curious if that is the case. Weather effects and weather in general would be really cool.
Pony/Furfag avatar? Opinion discarded.
User avatar
steinio
Smart Inserter
Smart Inserter
Posts: 2638
Joined: Sat Mar 12, 2016 4:19 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by steinio »

Where is the x-mas mod like the Satisfactory FICSMAS?
Image

Transport Belt Repair Man

View unread Posts
Pacheco
Burner Inserter
Burner Inserter
Posts: 8
Joined: Thu Oct 25, 2018 11:46 am
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Pacheco »

Can we pretty please have a High res version of the christmas tree picture?Image
User avatar
Mooncat
Smart Inserter
Smart Inserter
Posts: 1196
Joined: Wed May 18, 2016 4:55 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Mooncat »

This FFF is unreadable : (

Edit: my bad. That's the underground belt cover's shadow.
Attachments
fff-390-frozen-xmas.png
fff-390-frozen-xmas.png (2.2 MiB) Viewed 8659 times
Last edited by Mooncat on Fri Dec 22, 2023 2:34 pm, edited 1 time in total.
User avatar
Hares
Filter Inserter
Filter Inserter
Posts: 339
Joined: Sat Oct 22, 2022 8:05 pm
Contact:

Re: Friday Facts #390 - Noise expressions 2.0

Post by Hares »

I have a VERY bold suggestion.
Can we use an AST parser for Arithmetic Combinators?

It would be super-nice to write the whole expressions like this:

Code: Select all

signal_EACH*2 - 3*signal_L
(where signal_EACH & signal_L use respective icons)
Post Reply

Return to β€œNews”