Isn't it better to make it 10 times faster on one core, than having to use more cores for it?cpy wrote:Meh, just thread world generator more and we'll have faster stuff.cube wrote:Guys, do you know that the whole noise thing is supposed to be only performance improvement? At this stage, at least.
Like why all passes have to run in 1 core? Can't they just make 1 core prepare 1 part then 2nd core process it while 1st core is preparing new and with all 4 world generation passes it could be sequenced a bit faster? If you also throw in that new faster algorithm, it should be insanely fast?
Friday Facts #112 - Better noise
Re: Friday Facts #112 - Better noise
Re: Friday Facts #112 - Better noise
Easier, but not necessary better.
Since the new intel leak for the k-Series with 10 cores and 20 threads, I think multicore has a brighter future.
Since the new intel leak for the k-Series with 10 cores and 20 threads, I think multicore has a brighter future.
Pony/Furfag avatar? Opinion discarded.
Re: Friday Facts #112 - Better noise
I really like the longer post- I would love to see more FFF like it.
~1200+ hours clocked in factorio. Avid KSP and Factorio player
Re: Friday Facts #112 - Better noise
No, it is really better to make the algorithm faster on one core, when it is possible, other cores can always be used for other things, the power consumption is lower and it always can be multithreaded but only as a last resort, and would be more effective anyway.aka13 wrote:Easier, but not necessary better.
Since the new intel leak for the k-Series with 10 cores and 20 threads, I think multicore has a brighter future.
Re: Friday Facts #112 - Better noise
From my humble experience, projects which were not built ground-up with multithreaded support from the beginning tend to never end up having proper multithreading, simply because of the expenses and complexity of the said task after most of the project is complete. But I have no large field experience with that, so not arguing with you.
Pony/Furfag avatar? Opinion discarded.
Re: Friday Facts #112 - Better noise
Considering popularity of RSO people would like if you try to improve more than "only performance" . . .cube wrote:Guys, do you know that the whole noise thing is supposed to be only performance improvement? At this stage, at least.
Re: Friday Facts #112 - Better noise
Well, the map generation was done in the same thread before and now it runs parallel with game, so we have done step like this already. Going from "running in one separate thread" to "running in x separate threads" would be much easier.aka13 wrote:From my humble experience, projects which were not built ground-up with multithreaded support from the beginning tend to never end up having proper multithreading, simply because of the expenses and complexity of the said task after most of the project is complete. But I have no large field experience with that, so not arguing with you.
The problem with using lot of cores is, that we can't do it. The game needs to generate the map slow enough, to make it still smooth on the worst computer we want to support. We can't generate faster on faster computers, as the game needs to be deterministic.
Considering this argument, optimising it on single core is even better.
- Phillip_Lynx
- Filter Inserter
- Posts: 541
- Joined: Mon Jul 21, 2014 6:00 pm
- Contact:
Re: Friday Facts #112 - Better noise
Thx for this. I am on a 2 core / 4 threads computer and have not the money to get a better rig. The house is eating up all my money .kovarex wrote:... Considering this argument, optimising it on single core is even better.
-
- Filter Inserter
- Posts: 436
- Joined: Wed Jan 15, 2014 9:41 am
- Contact:
Re: Friday Facts #112 - Better noise
Yes for Multiplayer game but you have to tink some of the one player game. can you add this like this that work of one player games?kovarex wrote: The problem with using lot of cores is, that we can't do it. The game needs to generate the map slow enough, to make it still smooth on the worst computer we want to support. We can't generate faster on faster computers, as the game needs to be deterministic.
Considering this argument, optimising it on single core is even better.
p.s. i have i7 6 core / 12 threads computer i have the threads to use.
Re: Friday Facts #112 - Better noise
It means that when determining the properties for a point on the map the algorithm can't look at e.g. adjacent points to determine what properties the new point has; instead it must base its calculations only on the seed and parameters given initially. This rules out generating maps based on procedural algorithms that simulate e.g. rainfall or erosion.sillyfly wrote:Not sure what you mean by "...be able to calculate any point of the map independently of all others...", but can you explain what constraints such approach inherently has?Kayser wrote:I'm not a huge fan of the results of the current map generator. I understand that the devs want to be able to calculate any point of the map independently of all others, but that constraint it is getting in the way of creating fun, variable, interesting maps with replayability value. I'm sure a better map generator could be found if that constraint was dropped. Don't get me wrong, it could still be infinite.
- Kewlhotrod
- Fast Inserter
- Posts: 166
- Joined: Thu Apr 23, 2015 5:20 pm
- Contact:
Re: Friday Facts #112 - Better noise
thats the intel extreme part for enthusists, like 600£ cpu if not more, although no details on the price of the parts have been released yet although judging by the price of there last enthuist part it would be costing more because of more cores.aka13 wrote:Easier, but not necessary better.
Since the new intel leak for the k-Series with 10 cores and 20 threads, I think multicore has a brighter future.
Re: Friday Facts #112 - Better noise
When the performance becomes an issue, it will be probably related to game updates. And it is a good point for multithreading, as you have to calculate it anyway. Some things are especially good for multithreading, like electric network calculations.Lee_newsum wrote:Yes for Multiplayer game but you have to tink some of the one player game. can you add this like this that work of one player games?kovarex wrote: The problem with using lot of cores is, that we can't do it. The game needs to generate the map slow enough, to make it still smooth on the worst computer we want to support. We can't generate faster on faster computers, as the game needs to be deterministic.
Considering this argument, optimising it on single core is even better.
p.s. i have i7 6 core / 12 threads computer i have the threads to use.
-
- Filter Inserter
- Posts: 952
- Joined: Sat May 23, 2015 12:10 pm
- Contact:
Re: Friday Facts #112 - Better noise
What actually needs to happen is that a request to gen a map tile and the actual insertion into the game logic should be allowed to have a few game ticks between them. Then you can offload the generation to another threadpool and come back later for the result to push it into the game world.kovarex wrote:
Well, the map generation was done in the same thread before and now it runs parallel with game, so we have done step like this already. Going from "running in one separate thread" to "running in x separate threads" would be much easier.
The problem with using lot of cores is, that we can't do it. The game needs to generate the map slow enough, to make it still smooth on the worst computer we want to support. We can't generate faster on faster computers, as the game needs to be deterministic.
Considering this argument, optimising it on single core is even better.
In multiplayer you can use a ballot of who's finished with the generation to decide whether to insert the tile yet (or to perform a download of the tile data by the slower PCs).
Re: Friday Facts #112 - Better noise
This is exactly how it works in Factorio.ratchetfreak wrote:What actually needs to happen is that a request to gen a map tile and the actual insertion into the game logic should be allowed to have a few game ticks between them. Then you can offload the generation to another threadpool and come back later for the result to push it into the game world.kovarex wrote:
Well, the map generation was done in the same thread before and now it runs parallel with game, so we have done step like this already. Going from "running in one separate thread" to "running in x separate threads" would be much easier.
The problem with using lot of cores is, that we can't do it. The game needs to generate the map slow enough, to make it still smooth on the worst computer we want to support. We can't generate faster on faster computers, as the game needs to be deterministic.
Considering this argument, optimising it on single core is even better.
I strongly believe, that the extra bandwith and replay size wouldn't be worth it. Isn't just making the map generation 10 times faster simpler?In multiplayer you can use a ballot of who's finished with the generation to decide whether to insert the tile yet (or to perform a download of the tile data by the slower PCs).
Actually, if the map generation becomes very fast, it can be even worth of not saving most of the terrain in map save and re-generate it when loading the map. (The other way around)
-
- Filter Inserter
- Posts: 952
- Joined: Sat May 23, 2015 12:10 pm
- Contact:
Re: Friday Facts #112 - Better noise
Then the map download when joining a multiplayer game will also be reducedkovarex wrote:I strongly believe, that the extra bandwith and replay size wouldn't be worth it. Isn't just making the map generation 10 times faster simpler?In multiplayer you can use a ballot of who's finished with the generation to decide whether to insert the tile yet (or to perform a download of the tile data by the slower PCs).
Actually, if the map generation becomes very fast, it can be even worth of not saving most of the terrain in map save and re-generate it when loading the map. (The other way around)
Re: Friday Facts #112 - Better noise
Not entirely, I hope. I was thinking about this for some time, and I think that we can cheat this a little. Already there is a mechanism where every chunk has a level to which it is generated (now it is raw tiles, corrected tiles, tile variations, entities) and there is a rule that chunk with level n must have all neighbors at least on level n-1. So we could add a level after raw tiles that looks at the neighbors' raw tiles and does some erosion fun. Theoretically.Kayser wrote:It means that when determining the properties for a point on the map the algorithm can't look at e.g. adjacent points to determine what properties the new point has; instead it must base its calculations only on the seed and parameters given initially. This rules out generating maps based on procedural algorithms that simulate e.g. rainfall or erosion.
Re: Friday Facts #112 - Better noise
While you're at it, please consider reworking the structure of the resources. At this point they are generally homogeneous convex patches.
I'd like to see stripes resembling stratification. Use a periodic function (triangle wave) on the main terrain noise, ultimately creating distinct or blurred bands parallel to the coastline.
I'd like to see stripes resembling stratification. Use a periodic function (triangle wave) on the main terrain noise, ultimately creating distinct or blurred bands parallel to the coastline.
Re: Friday Facts #112 - Better noise
Alright. I'm looking forward to itcube wrote:Not entirely, I hope. I was thinking about this for some time, and I think that we can cheat this a little. Already there is a mechanism where every chunk has a level to which it is generated (now it is raw tiles, corrected tiles, tile variations, entities) and there is a rule that chunk with level n must have all neighbors at least on level n-1. So we could add a level after raw tiles that looks at the neighbors' raw tiles and does some erosion fun. Theoretically.Kayser wrote:It means that when determining the properties for a point on the map the algorithm can't look at e.g. adjacent points to determine what properties the new point has; instead it must base its calculations only on the seed and parameters given initially. This rules out generating maps based on procedural algorithms that simulate e.g. rainfall or erosion.
Re: Friday Facts #112 - Better noise
So cube, I see you're using Awesome as well?
Love the tech-talk. It made me realize how little I know about non-cryptographic hash functions.
Love the tech-talk. It made me realize how little I know about non-cryptographic hash functions.
OS: Linux Mint 19 x64 | desktop: Awesome 4.2 | Intel Core i5 8600k | 16GB DDR4 | NVidia GTX 1050 Ti (driver version: 410.104) (2019-03)