Jump to content
Damocles

[A19] NITROGEN , a random world generator for 7DtD

Recommended Posts

I love your tool so far, but sadly we have run into a small issue: The maps we get from the tool are quite rough with a lot of small blocks breaking the landscape which makes it hard to use vehicles on them since everything is super bumpy. Any idea on how to improve that?

Share this post


Link to post
Share on other sites

The import heightmap THEN have it spawn roads and prefabs is nice. Would you consider making it so that it will import ANY piece and only generate the missing pieces?

 

Like I could have just the heightmap, and it creates roads, biomes, pois, but if I had the heightmap AND biomes, it would only create roads and pois, etc?

 

That way we could flexibly only use the parts we need? :)

 

I could go backwards and just edit the splat3 after you create it, but I'm lazy...

Share this post


Link to post
Share on other sites
The import heightmap THEN have it spawn roads and prefabs is nice. Would you consider making it so that it will import ANY piece and only generate the missing pieces?

 

Like I could have just the heightmap, and it creates roads, biomes, pois, but if I had the heightmap AND biomes, it would only create roads and pois, etc?

 

That way we could flexibly only use the parts we need? :)

 

I could go backwards and just edit the splat3 after you create it, but I'm lazy...

 

I though about that, having the option to import hightmap + biome map.

maybe after the Easter holidays.

 

The mountain huts would still spawn at a certain hight, but i will probably push everything to a config file.

 

I could add a scanner for a "city marker" for the hightmap, where a simple colored dot would indicate the city or settlement center. This way it would be possible to create custom maps with the correct POIs distributions. (like making a new Navezgane map)

Edited by Damocles (see edit history)

Share this post


Link to post
Share on other sites
Currently the terrain biomes/landscapes are defined in code. I can have a look at making this more flexible and configurable in the future, and have more selection of landscapes in general.

 

You CAN however import your own hightmaps already (greyscale png images), if you have a specific goal how the world should look like.

There is a very simply map included as an example, that I have drawn quickly in a graphics editor.

 

It's the biomes specifically I was after, mostly because RWG is a mess and I wanted to suggest to folks using my mod that they generate worlds with this instead.

 

But I need to be able to generate burnt forest and wasteland as a minimum. ;)

 

EDIT: Guppy's idea of supplying a biome image would actually be bloody perfect for my use case.

Edited by KhaineGB (see edit history)

Share this post


Link to post
Share on other sites

For now, you could edit the generated biomes.png or supply a custom one with the wasteland and burned forest biomes for a custom map. I did not include them in the generation process.

 

Just make sure the color values (rgb and alpha) are precise (you can take the normal Navezgane or RWG output as reference), else the game will complain when importing the images.

Share this post


Link to post
Share on other sites

Oh yeah, I already have custom ones and they work great... so I've got a template. :)

 

Though I have been using your tool to generate heightmaps and going to try those out on some already generated worlds, since I really like the flatter terrain.

Share this post


Link to post
Share on other sites

If you are using your own import_HM make sure it's good quality, I tried with 500x500 image on 8k map and everything is square like minecraft.

Share this post


Link to post
Share on other sites

The imported hightmap is 8 bit, as it uses the workflow of the normal generator. Having a 16 bit version input is possible, but the problem would be that most user likely cant create one without converting from 8bit in the first place (unless the terrain is made in a terrain editor like the one from Unity)

 

So any squared greyscale PNG will work. (Btw: only the green channel is loaded).

It can be handdrawn or just converted from a real hightmap.

 

For good result without block-shaped the imported terrain should be the target maps size.

Smaller maps will be smoothed a bit, but 800x800 will look blocky, there is just not enough information in the image.

For an 8K map it should be at least 2048x2048 for good results.

 

Very important is to assure that the "ground" level is at 35 (wich converts to about 35 meters above bedrock). Below that the generator will spawn water.

 

The final and smoothed output will be a 16 bit hightmap.

Share this post


Link to post
Share on other sites

Just using default settings, have latest Java installed jre1.8.0_211

All that happens is this:

 

running generation thread

... running terrain generation ...

 

Then just sticks there.

Share this post


Link to post
Share on other sites
Just using default settings, have latest Java installed jre1.8.0_211

All that happens is this:

 

running generation thread

... running terrain generation ...

 

Then just sticks there.

 

Try to use the bat file. It might have run out of memory with the default. You can also increase heap memory by changing the parameters in the bat file.

Share this post


Link to post
Share on other sites
Try to use the bat file. It might have run out of memory with the default. You can also increase heap memory by changing the parameters in the bat file.

 

I'm pretty sure I have everything setup correctly, but I'm only getting these errors. Thanks for the help in advance.721777628_JavaError.thumb.jpg.2ed52bef2b9dc3a663d524e2c1761b8f.jpg

Share this post


Link to post
Share on other sites

Ravenhearst info

 

You can use NitroGen to use your custom POIs (or in this case import the Ravenhearst POIs)

 

For this you would need to edit the included resources/prefablist.txt

 

the format is like this:

 

business_old_01,COMMERCIAL;DOWNTOWN,2,-1,21,18,47,downtown

 

add a new line to this list, using the following format:

 

my_poi_name, something(not read), 2(face north), y-offset, x-wide, y-high, z-deep, NitroGet-Zone

the y-offset is usually -1 for most flat pois with a ground layer. The x,y,z dimensions are visible in the prefabeditor.

 

example: (if the POIs filename is called Ravenhearst_house_poi)

 

Ravenhearst_house_poi, COMMERCIAL, 2, -1, 34, 20, 45, smalltown;downtown;houses

 

(Then start NitroGen and generate a new world, and copy the generated world to the games "GeneratedWorlds" folder)

 

You can check if your prefab was inserted by looking at the generated prefabs.xml, and look for the pois name there. It defines its name and location in the world at startup.

 

...

 

I have not looked at how Ravenhearst is structured, but the POIs could be theoretically be copied to the vanilla prefab folder, and loaded by the game using the NitroGen generated world.

But is would then require to insert all af them into the resources/prefablist.txt for the generator to insert them into the map-file.

 

------

 

If anyone knows where the prefabs dimensions (x,y,z) are stored, other than inside the binary files, I could quickly write an importer for that.

The y-offset is descibed the prebals xml, but for knowing the dimensions I would have to open each POI in the prefabeditor and note it down... not fun.

 

The dimensions are needed for the generator to place the POIs correctly in the world, else they might float in the air, or are placed in a hole...

 

Indeed, it wasn't fun. Nevertheless, I have made a list for Ravenhearst 5.13 prefabs with the available data, to whom it may concern:

(look for the updated list(s) in the new GitHub repository: )

https://github.com/NickPhaedra/7-Days-to-Die-NitroGen-Prefab-Lists/tree/Prefablists

 

I left out the following six, as some files for these are missing - I couldn't load them into the prefab editor, therefore I don't know the correct x,y,z dimensions:

 

rh5_7EndStore(by_Jackelmyer),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW,2,-1,6,11,6,smalltown;downtown;citycenter;industrial

rh5_Amityville_Horror_House(by_Swolk),RESIDENTIALNEW;RESIDENTIALOLD,2,-1,6,11,6,houses;smalltown

rh5_MonsterFlexGym(by_Swolk),COMMERCIAL;DOWNTOWN,2,-3,6,11,6,alone;smalltown;downtown;citycenter

rh5_SUBDAY(by_Swolk),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW;RESIDENTIALOLD,2,-2,6,11,6,alone;smalltown;downtown;citycenter;industrial

rh5_TacoBele(by_Swolk),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW;RESIDENTIALOLD,2,-6,6,11,6,alone;smalltown;downtown;citycenter;industrial

rh5_Walcart(by_Swolk),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW;RESIDENTIALOLD,2,-2,6,11,6,alone;smalltown;downtown;citycenter;industrial

 

 

The map itself seems to get generated fine. However, whenever I want to start up Ravenhearst with the generated map, the game throws an exception and stops loading:

 

Started thread GenerateChunks

IndexOutOfRangeException: Array index is out of range.

 

I tried the whole day now with various generator settings, tried to generate from the vanilla, also from the Ravenhearst folder, always the same problem.

 

Apart from that, I cannot say whether or not everything I made up is correct or if anything is missing. In fact, this is my first time doing this.

 

If anyone could take a look and / or try out for oneself, I'd really appreciate any advice to get a generated map running.

 

 

Apart from all that, Damocles, really appreciate your work. Would it be possible to include river and ocean generation in your tool in the future? Just asking. I'm already happy there's a different generator apart from the vanilla one out.

Edited by MelT
moved file to GitHub and added / changed link (see edit history)

Share this post


Link to post
Share on other sites
I'm pretty sure I have everything setup correctly, but I'm only getting these errors. Thanks for the help in advance.[ATTACH=CONFIG]28210[/ATTACH]

Hi , if you use the command shell anyway, use the “cd” command to navigate to the installation directory. Else java does not know where the jar file is.

Share this post


Link to post
Share on other sites
Indeed, it wasn't fun. Nevertheless, I have made a list for Ravenhearst 5.12 prefabs with the available data, to whom it may concern:

 

[ATTACH]28211[/ATTACH]

 

I left out the following six, as some files for these are missing - I couldn't load them into the prefab editor, therefore I don't know the correct x,y,z dimensions:

 

rh5_7EndStore(by_Jackelmyer),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW,2,-1,6,11,6,smalltown;downtown;citycenter;industrial

rh5_Amityville_Horror_House(by_Swolk),RESIDENTIALNEW;RESIDENTIALOLD,2,-1,6,11,6,houses;smalltown

rh5_MonsterFlexGym(by_Swolk),COMMERCIAL;DOWNTOWN,2,-3,6,11,6,alone;smalltown;downtown;citycenter

rh5_SUBDAY(by_Swolk),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW;RESIDENTIALOLD,2,-2,6,11,6,alone;smalltown;downtown;citycenter;industrial

rh5_TacoBele(by_Swolk),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW;RESIDENTIALOLD,2,-6,6,11,6,alone;smalltown;downtown;citycenter;industrial

rh5_Walcart(by_Swolk),COMMERCIAL;DOWNTOWN;INDUSTRIAL;RESIDENTIALNEW;RESIDENTIALOLD,2,-2,6,11,6,alone;smalltown;downtown;citycenter;industrial

 

 

The map itself seems to get generated fine. However, whenever I want to start up Ravenhearst with the generated map, the game throws an exception and stops loading:

 

Started thread GenerateChunks

IndexOutOfRangeException: Array index is out of range.

 

I tried the whole day now with various generator settings, tried to generate from the vanilla, also from the Ravenhearst folder, always the same problem.

 

Apart from that, I cannot say whether or not everything I made up is correct or if anything is missing. In fact, this is my first time doing this.

 

If anyone could take a look and / or try out for oneself, I'd really appreciate any advice to get a generated map running.

 

 

Apart from all that, Damocles, really appreciate your work. Would it be possible to include river and ocean generation in your tool in the future? Just asking. I'm already happy there's a different generator apart from the vanilla one out.

 

Hi, just came back from an Easter trip.

I have tried your prefab list, it generates fine: important is to set traders to none when generating, as the list does not contain a trader-marked POI, it locks in an infinite loop. You could merge it with prefabs from the vanilla list (not sure how Ravenhearst represents traders), or just mark any POI as trader, to have it find something to place.

 

I have not tried the Ravenhearst POIs, so Im not sure what else is missing when loading the map.

 

Tip: mark more POIs as farm, hillbillyjunk, hillbillytrailer, alone, mountain and oldwest.

To give it more variety when using the default settings. Else it would look quite repetative in those locations.

Edited by Damocles (see edit history)

Share this post


Link to post
Share on other sites

I'm with guppy and khaine regarding the customization.

 

Perhaps you could make the generation two step, first creating the base files, than give us an opportunity to adjust the output, and then generate the worldfiles?

 

And more configuration options. Always more configuration options :)

 

Our server population is very happy with the results so far, terms like "best map I've ever seen" are not uncommon now. We also like the uneven terrain and that vehicles have to mostly stay on roads. And since roads are butter smooth now, it's great. It felt cheap to be able to bike through terrain without any trouble at all

Share this post


Link to post
Share on other sites

New version v0.23 online (same download link)

 

-can set a certain biome for the (radiation) border, (default off) transition to radiation border is more easily visible this way.

-added optional cracks to the landscape (default is off, but they are quite fun when driving...)

-some smoothing options for the landscape and roads

-a simple check for 64 bit Java VM

-fixed font sizes

Share this post


Link to post
Share on other sites

Awesome! Getting better and better!!

 

My wishlist for now would be:

 

12k maps

additional step so i can adjust the biomes file before generating /custom biomes file

remember last used settings

Share this post


Link to post
Share on other sites

Truly amazing tool, keep up the great work.

 

Im having some problems getting the map I want, so what options do I need to chose to get:

Large and tall mountains, all biomes, some rough terrain, good with smooth areas for building, some rivers, and a few lakes.

For some reason I never get wastland or burnt forest.

 

I apprentice some thoughts on this.

Have fun :)

Edited by xxx73 (see edit history)

Share this post


Link to post
Share on other sites
Awesome! Getting better and better!!

 

My wishlist for now would be:

 

12k maps

///

+1

hmmm, no ...

+20k

:)

Edited by n2n1 (see edit history)

Share this post


Link to post
Share on other sites

It's a bit offtopic, but I want to ask you as a programmer :).

When writing any code before there was a problem with the algorithm to obtain random numbers. This was due to the fact that random numbers in the computer can not be. Therefore, different ways to get pseudo-random were invented. But still are usually, a character appearing numbers were bound to a certain environment, for example to the session of the operating system. That is, the restart of some programs could affect the series of values obtained "randomly".

Do you understand what i'm saying?

I haven't done practical programming for a long time and i'm wondering - are there any ways to get real random numbers now?

Edited by n2n1 (see edit history)

Share this post


Link to post
Share on other sites

Nitrogen is using the standard Java pseudorandom number generator. The seed is determined by the systemclock, and thus random enough for this kind of purpose. (Not for cryptographically secure number generation)

 

In the end all computers are deterministic, so “true” random numbers cannot come from them. The best method would be to capture some real world (space) noise signal, or simpler just capture the mouse movement of the user to periodically update the seed.

 

Most rng will just use the system clock. So unless you want to use it for strong encryption or simulating physics, this is totally enough.

 

The advantage of rng is that it IS deterministic. So in the case of the vanilla world generator it allows the user to pass the seed to others to generate the same output. In nitrogen this makes less sense as there are lots of configuration options that would also have to be set precisely the same.

Edited by Damocles (see edit history)

Share this post


Link to post
Share on other sites

Hi! This tool looks amazing and I like the work you have done so far. Especially nice to be able to have some coherent system to the roads, and farms in the large rural empty areas etc.

 

I am wondering if you could please consider making a 6144 map size setting also, or if that is too much work? I have no understanding of it my self- so can't just modify it easily. The reason for this very specific size is that a lot of the online server hosts use that size unless you wish to pay a substantial amount of extra cash. If you allow us to use that size (or custom size really) your tool will have even farther reach. Now that RWG is utterly broken it's even more relevant really.

Share this post


Link to post
Share on other sites

New Version: v 0.24

 

-you can set custom map sizes (experimental) from 4k to 64k (for NASA)

select "custom size" first in the dropdown, then enter an appropriate number in the parameter-field

 

(download link in first post)

 

 

This is still experimental, (I have successfully loaded a map with 6000 x 6000 in singleplayer.)

Please keep the sizes in a meaningful range, and dont go over 16k unless you know what you are doing (such huge maps can eat up quite a lot of disk space).

 

-----

 

other:

 

imported hightmaps are now smoothed more when they are smaller than the target map size. (looking less blocky). So you can play on your favorite (grey) cat picture....

 

Its still best practice to use hightmaps of the same size as the target world size. (will have most details then)

Edited by Damocles (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...