Friday Facts #390 - Noise expressions 2.0
-
- Fast Inserter
- Posts: 182
- Joined: Mon Jan 20, 2020 4:41 am
- Contact:
Re: Friday Facts #390 - Noise expressions 2.0
Great post ,
I don't intend to create a Factorio game myself , so polite pass.
I don't intend to create a Factorio game myself , so polite pass.
Re: Friday Facts #390 - Noise expressions 2.0
That looks incredible!
Creating a snow covered version for that many entities is quite a lot of work for a Christmas card.
So I guess this screenshot wasn't taken on Nauvis
Re: Friday Facts #390 - Noise expressions 2.0
Oh so that's the cover's shadow
Dammit, haven't played Factorio for too long
Re: Friday Facts #390 - Noise expressions 2.0
Verry technical this time but I love it! There is no such thing as a blog post that is too long.I like to understand the internal thinking of programmers, which then allows me to better understand the direction in which the game is going.
Are you planning to do a podcast about the game someday? In Czech or English? It can be cool
Merry Christmas! evry1
Are you planning to do a podcast about the game someday? In Czech or English? It can be cool
Merry Christmas! evry1
Re: Friday Facts #390 - Noise expressions 2.0
The snow !!! waow !!! Must have taken quite some time to decorate or the shots were taken on a cold and wet planet !
Imagine an endless planet with the crop circle geometry and the height map colors, would you even want to build on it ? That's what i started wondering around half way throught the shunting yard algorithm page, when i was trying to remember why it was necessary in the game, thank you for the pictures, it is worth a thousand words, but also better understanding would require a thousand pictures
I'm not sure i got that correct but it seem to be , allowing custom functions written in lua to modders to the map generation written in C++ , and in the process it ends up making the game faster to launch ? That was necessary for the new planets ? you guys are aware some games are sold not even finished and never fixed ? Is that how you communicate on the quality of your game ? Just it being fun isn't enough ? Hum Are those real questions ?
Please give some more of those FFF !
Imagine an endless planet with the crop circle geometry and the height map colors, would you even want to build on it ? That's what i started wondering around half way throught the shunting yard algorithm page, when i was trying to remember why it was necessary in the game, thank you for the pictures, it is worth a thousand words, but also better understanding would require a thousand pictures
I'm not sure i got that correct but it seem to be , allowing custom functions written in lua to modders to the map generation written in C++ , and in the process it ends up making the game faster to launch ? That was necessary for the new planets ? you guys are aware some games are sold not even finished and never fixed ? Is that how you communicate on the quality of your game ? Just it being fun isn't enough ? Hum Are those real questions ?
Please give some more of those FFF !
Re: Friday Facts #390 - Noise expressions 2.0
Yeah, noise expressions isn't an easy topic, sorry! They were released in 0.16 (6 years ago), so this post just explains how we improved the existing system. Lua functions are slow and can't take advantage of SIMD execution (we are processing 1024 tiles at once per thread). That is, "x + y * 4" will first evaluate "y * 4" for 1024 tiles which the C++ compiler can optimize to vector instructions and process 4 multiplications per instruction. (We rely on SSE2 if anyone is wondering.)Tooster wrote: βFri Dec 22, 2023 12:58 pm 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
So we came up with a system which allows defining noise expressions through Lua and compiles them to a fast noise program. I wasn't around when it was implemented so I can't tell you why it was done this way, but now that we are familiar with the system, we wanted to continue using it and not invent a different way of defining map generation. Noise expressions are closer to math than to Lua, and the string parser was meant to speed up loading and improve clarity. In 1.1 the slow and verbose format is hidden away behind the noise library and metatables.
This is why constant folding was "reimplemented" and expanded for 2.0 - because it's a different system.
If anyone wants to have a sneak peek at the new format, I shared this on Discord: https://gist.github.com/Genhis/b4c88f47 ... c177e13d4a
Re: Friday Facts #390 - Noise expressions 2.0
Christmas planet confirmed then.
Will flamethrower work to repeal attacks from reindeers or are we limited to laser turrets?
Will flamethrower work to repeal attacks from reindeers or are we limited to laser turrets?
Re: Friday Facts #390 - Noise expressions 2.0
I think you will have snowball builders. Because elevation gets lower the farther away from the starting point of (0, 0) in map generation where your base likely is, it means the snowball will get larger and larger as it rolls down and crushes all enemies charging at your base!
-
- Smart Inserter
- Posts: 2768
- Joined: Tue Apr 25, 2017 2:01 pm
- Contact:
Re: Friday Facts #390 - Noise expressions 2.0
This is very lovely and great! Glad to hear that you all are still finding ways to improve the efficiency of the game.
----------------------------------------------------------
----------------------------------------------------------
But that shot with the Christmas tree makes me want to request something else: holiday themed sprites. Either as separate mods, or as things built into the game that automatically enable on and for the duration of the holiday, then turn back off after. And some random joke stuff on April 1st.
----------------------------------------------------------
Agreed! The occasional easter egg would be grand.
----------------------------------------------------------
Yeah, same thoughts here as well. And yeah, I'd love to be able to see some weather affects coming into the game. Rain storms, snow storms, wind storms (dust effects in desert like areas?), etc. Changing seasons...?aka13 wrote: βFri Dec 22, 2023 1:10 pmThat is also what I think, really curious if that is the case. Weather effects and weather in general would be really cool.Hares wrote: βFri Dec 22, 2023 1:09 pmI assume that these snowy sprites are a sneak preview of the next planet and its particle effect covering all sprites with snow.Shadow_Man wrote: βFri Dec 22, 2023 12:45 pm Hou-hou-hou!
We really need that snowy sprites and Christmas Tree in-game!
But that shot with the Christmas tree makes me want to request something else: holiday themed sprites. Either as separate mods, or as things built into the game that automatically enable on and for the duration of the holiday, then turn back off after. And some random joke stuff on April 1st.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles | New Gear Girl & HR Graphics
Re: Friday Facts #390 - Noise expressions 2.0
happy holidays Wube
Re: Friday Facts #390 - Noise expressions 2.0
There're actually two mods which change science packs and artillery shells into Christmas gifts.FuryoftheStars wrote: βFri Dec 22, 2023 4:54 pm But that shot with the Christmas tree makes me want to request something else: holiday themed sprites. Either as separate mods, or as things built into the game that automatically enable on and for the duration of the holiday, then turn back off after. And some random joke stuff on April 1st.
- TatsuZZMage
- Inserter
- Posts: 38
- Joined: Thu Dec 29, 2016 1:26 am
- Contact:
Re: Friday Facts #390 - Noise expressions 2.0
Well that was pretty technical ^_^ i understood less then half but i have messed around with the variables in several of the map gen lua in core so i understood it a little better hahah. very fun. Factorio is one game were causeing it to crash outside of boot up from bad variables is damn near impossible. tho going gomez on some trains did do it. two one thousand kmh plus fifty engine trains head on into each other did it once years ago now.
-
- Burner Inserter
- Posts: 12
- Joined: Mon Sep 11, 2023 2:17 pm
- Contact:
Re: Friday Facts #390 - Noise expressions 2.0
Very nice. Makes me curious about other optimizations for 2.0
Merry Christmas
Merry Christmas
Re: Friday Facts #390 - Noise expressions 2.0
I normally hate noise-based generation, and wish Factorio was tile-based like roguelikes, and this convinced me noise-based at least makes pleasing terrain if artists try hard enough.
It will last until I see another map where 2 copper patches in a row are eaten by water, and one of them left a tiny fragment on an island taunting me with how unsatisfying it is. :/ I think I like it for everything but ore & cliffs. A forest (etc.) can't really be unsatisfying; it just looks one way instead of another way, and noise seems to work well for "natural" things. But ores & cliffs can easily be unsatisfying. Though I don't expect the game to ever change this. I will try to focus more on the positive!
It will last until I see another map where 2 copper patches in a row are eaten by water, and one of them left a tiny fragment on an island taunting me with how unsatisfying it is. :/ I think I like it for everything but ore & cliffs. A forest (etc.) can't really be unsatisfying; it just looks one way instead of another way, and noise seems to work well for "natural" things. But ores & cliffs can easily be unsatisfying. Though I don't expect the game to ever change this. I will try to focus more on the positive!
-
- Smart Inserter
- Posts: 2768
- Joined: Tue Apr 25, 2017 2:01 pm
- Contact:
Re: Friday Facts #390 - Noise expressions 2.0
Yeah, I'm aware of those, but it'd be nice to have a lot of the entities and machines decorated with their holiday appropriate decorations and lights, too.Hares wrote: βFri Dec 22, 2023 6:15 pmThere're actually two mods which change science packs and artillery shells into Christmas gifts.FuryoftheStars wrote: βFri Dec 22, 2023 4:54 pm But that shot with the Christmas tree makes me want to request something else: holiday themed sprites. Either as separate mods, or as things built into the game that automatically enable on and for the duration of the holiday, then turn back off after. And some random joke stuff on April 1st.
My Mods: Classic Factorio Basic Oil Processing | Sulfur Production from Oils | Wood to Oil Processing | Infinite Resources - Normal Yield | Tree Saplings (Redux) | Alien Biomes Tweaked | Restrictions on Artificial Tiles | New Gear Girl & HR Graphics
Re: Friday Facts #390 - Noise expressions 2.0
βTwas the night before Christmas, and all through Nauvis
Not a biter was stirring, nor even a fish;
The steam plants were placed by the boilers with care,
In hopes that the Engineer soon would be there;
The spitters were nestled all snug in their nests;
While visions of smelter stacks danced in their heads;
β¦
Not a biter was stirring, nor even a fish;
The steam plants were placed by the boilers with care,
In hopes that the Engineer soon would be there;
The spitters were nestled all snug in their nests;
While visions of smelter stacks danced in their heads;
β¦
Re: Friday Facts #390 - Noise expressions 2.0
Merry Cogmas!
85% is huge! I've enjoyed playing with the map generator. I only wish you could manually enter the map gen numbers in the GUI instead of the % sliders. I've wound up having to use the command line and map-gen-settings.josn to get desired results.
Thanks for the detailed information!
85% is huge! I've enjoyed playing with the map generator. I only wish you could manually enter the map gen numbers in the GUI instead of the % sliders. I've wound up having to use the command line and map-gen-settings.josn to get desired results.
Thanks for the detailed information!
Re: Friday Facts #390 - Noise expressions 2.0
Was thinking, among the planet types you evaluated, have you ever considered a tidal locked one? Like a planet where you have to connect the sunny desert side with the night frozen one through the lush monster filled stripe in between? It could become a the "train planet".
- planetfall
- Burner Inserter
- Posts: 15
- Joined: Fri May 04, 2018 7:49 pm
- Contact:
Re: Friday Facts #390 - Noise expressions 2.0
the way i see it, there are three possibilities for generating things that can appear on multiple planets:
- things that autoplace can have multiple sets of placement rules, varying per surface
- things that can be autoplaced on multiple surfaces have an obscenely complicated autoplace system that takes into account every planet's environment, it's just that all the "what vulcanus biome is this" values are 0 when looking at nauvis and so on.
- nauvis coal deposits and vulcanus coal deposits are secretly different entities that look and behave identically once spawned but have different autoplace rules
any hint as to which it is, or is this a secret?
- things that autoplace can have multiple sets of placement rules, varying per surface
- things that can be autoplaced on multiple surfaces have an obscenely complicated autoplace system that takes into account every planet's environment, it's just that all the "what vulcanus biome is this" values are 0 when looking at nauvis and so on.
- nauvis coal deposits and vulcanus coal deposits are secretly different entities that look and behave identically once spawned but have different autoplace rules
any hint as to which it is, or is this a secret?
gradus delenda est