Page 1 of 4

Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:00 pm
by FactorioBot

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:00 pm
by OldFart
Hooray πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:20 pm
by GregoriusT
Love that new Wube Logo. It certainly says SOMETHING.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:28 pm
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 !

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:30 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:36 pm
by Ghoulish
Complicated and quite technical! Still a good read even though a lot of it shoots straight over my head!

Merry Christmas.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:41 pm
by Wenihal
Wube should sell science packs as Christmas decorations that you can put on your Christmas Tree :D

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:45 pm
by Shadow_Man
Hou-hou-hou!
We really need that snowy sprites and Christmas Tree in-game!

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:46 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 12:58 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:03 pm
by Tungro
Very technical! My head is spinning but a good read though!

Merry Christmas all!

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:03 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:07 pm
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?

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:09 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:09 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:10 pm
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.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:24 pm
by steinio
Where is the x-mas mod like the Satisfactory FICSMAS?

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:27 pm
by Pacheco
Can we pretty please have a High res version of the christmas tree picture?Image

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:41 pm
by Mooncat
This FFF is unreadable : (

Edit: my bad. That's the underground belt cover's shadow.

Re: Friday Facts #390 - Noise expressions 2.0

Posted: Fri Dec 22, 2023 1:46 pm
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)