I’d settle for understanding how to run the generator. It never does anything when I try to use it. Menus, yes, but then nothing I can click that says “generate.”
Are you saying that the World Builder fails for you - or you don’t know how to use it?
If it doesn’t work, then please give us some system details - OS, GPU, drivers especially.
If you want to learn how to use it - checkout this playlist by @Squidgy
Yeah, I didn’t find it at all intuitive. I’ll check out the videos.
It’s possible I made it sound more complicated that it really is. (Actually it probably is quite complicated - but it’s all in the details.) Best just to consider the following. From a server / host perspective there are 2 important issues:
-
Generating the world requires memory.
-
Simulating players in the world requires memory.
If you have lots of memory then there is no problem with generating the worlds on-demand as you’re playing. Whilst the world gen isn’t instant, it is faster than players can generally move around the world.
We chose to pre-generate the worlds because it means we can run the worlds on lean hardware, ie. the servers don’t have any more memory that is absolutely required. This is important for us to run the MMO cost effectively. (If full world gen ran on the live servers they’d run out of memory and crash.)
For the average home user you can happily run the server and allow on-demand generation. In this configuration it’s also good to have multiple cores so that the generation doesn’t starve the simulation.
In either configuration - assuming you have sufficient memory and a few cores - there should be no effect on server latency.
I was planning on getting a new computer for the release of the game anyway (because it’s SOOO beautiful, I feel it needs to be fully appreciated with a nice computer! ) so this information helps a lot. Thank you thank you for the fast reply and information
The performance of the client and server will continue to be a little unknown until we have all the features added and we’ve done a significant performance pass. Hopefully, later in development we can publish some data on recommended specs for the server. For the client we still have a healthy list of known optimisations on the todo list. The biggest hardware win at the moment is probably to make sure you have a decent modern graphics card / GPU - especially if you want to play at a high resolution.
Another question came in my mind while reading your post: …
Will the regenerating process possible on both kinds of servers (pregen and gen on demand) and how much may the need of cpu and memory differ between the two modes?
The type of world doesn’t effect the world regeneration. There are quite a few ways of doing regeneration:
- Recreate: re-run the generator making sure the process is deterministic (i.e. you get the same result each time),
- Reuse: cache the output from the generator and restore it when required, or
- Return: record what has changed in the world then undo the changes.
They have different advantages and disadvantages, often trading off between CPU cost and storage space.
But there is actually a bigger concern that we’re focused on, namely: how does the player perceive the regeneration? Is it instant when you’re not looking? Does it happen in a single operation? At what granularity? Or is it an incremental decaying process, with the world gradually returning to it’s natural state?
Hmmm, the slow method sounds most reasonable but also may be the most complex one to develop. I would like not to see the regeneration. May be there is a routine that goes through the chunks in the background and regenerate one if a timer has ran down, like “has a player altered something here or a neighbor chunk in the last 24 hours? No? Then you are free to go”… But only if no player is around seeing it… That would be my thoughts on an medicore complex function to handle it… But you are the boss
The area around populated cities would probably never regenerate if the landscape only regenerates when no one is around.
I´d like to see either a weekly/monthly server down like in WoW after which all the terrain is regenerated (simple but not pretty) or
that´s slow enough to not being noticed even if the world regenerates right next to you.
Does this mean that the world will be the same after every regeneration, meaning that i can always find trees or ores at the same location? Or am I just horribly misinterpreting what you wrote?
On your last point I may give you an answer, cuz the devs had that point a long while ago when talking about the regeneration. The ores are created randomly each time so after cleaning an area you will have to dig on luck for them again. I don’t know if that is also happening with trees. Would be cool if it would also work on that way with them and other vegetation as well
For you thoughts on crowded places you may be right, but a server down for regeneration would be a bad idea. May be it happens even when in sight if the routine comes to that chunk for the third or fourth time. On that way it will happen rarely in sight but would be never stopped forever
The current plan is that the basic parts of the terrain will return exactly in the regeneration (so exact same mountain shapes), but instances of trees/ores will be randomised keeping ‘density’ and types the same. So if you destroyed a mountain somehow and then left it to regenerate over time, you’d get the same mountain with the same types of ores and the same types of trees, but different instances of them in different positions. The regeneration of the terrain (and decay of added blocks) will be gradual; imagine if you dug a tunnel into a cliff face, the tunnel might over time ‘grow’ back from the deepest point outwards. If you built a nerd pole, the nerd pole would collapse from the top down towards the ground.
The thing that has not been determined yet, is how to achieve trees decaying (both to rid the world of stupid floating tree canopies when people mine the trunks but leave the rest) and to allow regeneration of trees to occur. Ores are simpler in this regard as they are not clearly visible like trees so it doesn’t matter if parts of an original ore seam remain in the rock really.
I do not believe we would be able to achieve ‘gradual’ growth of trees, and there are all sorts of issues when it comes to things like trying to partially regenerate chunks (the current plan) when players are ‘inside’ the chunk at the time etc, so it is likely to me that regeneration will be away from immediate player sight, the hueristics we’ve thought of have been things like ‘chunk last edited within X minutes, number of edits within last X minutes, visited (at some radius) within last X minutes’ etc. This ‘would’ mean that the immediate outskirts of a busy town might never regenerate, however I believe it reasonable that such a busy town would probably be terraforming the immediate outskirts anyways and make themselves responsible for keeping their immediate non-regenerating surroundings tidy (do your gardening!)
Wow, if you really manage to slowly regenerate tunnels and equal stuff you just do what I’ve dreamed of … For the matter of the trees I understand your concerns. You would have to have a structure which can be recognized by the engine to check if the tree is broken and has to degenerate or not. The easiest way would be to check if the main trunk is damaged and if that happens all blocks over the broken part has to go away. But if trees may have more complex building methods (like having a trunk which grows in different directions at some point) this may not be enough. I don’t care if the trees don’t grow slowly but instant. Eather I don’t mind if the flying rests of trees also disappear the instant way. That would not hurt much and will make stuff easier for you to create (and so give you more time to develop other important features
).
The way you check if something may regenerate or not sounds similar to my quick idea, just a bit more reasonable and complex. Can’t wait to see the final result ingame
Honestly, as weird as minecraft’s tree decaying is visually, I think it’s roughly the correct direction to take (but given the size of the trees in this game; it should include trunk decay and not just leaf decay).
Idea:
-
X minutes after disconnecting a tree trunk from the ground, it begins to decay from top down (with some randomness)
-
The decay is slower if a player is nearby, to give them time to harvest
- IMO it shouldn’t be completely blocked by a player being nearby
-
The decay could be worked into the lore, especially with some snappy visuals. Couple ideas:
- Something like the “beam up death” that Starbound NPCs have (Perhaps some long-lost Oort mechanism is reclaiming blocks?)
- Or perhaps the blocks disintegrate and float away as particles (more nature-y). Like this video, but top down
I think it should be even simpler:
As soon as the tree leaves his original state (one block is altered/removed) the tree is “hurt” and slowly starts to degenerate from top to the bottom (with some added ‘randomness’ to prevent that the decay looks like if the tree is ground down).
Maybe use that rule for trunk blocks only? In Minecraft I often wanted to “trim” trees that were encroaching on my buildings, but otherwise leave them untouched
If the tree is in your beacon it should not degenerate, so feel safe … For outside trees in would be good if they are degenerating if damaged, cuz there is no need for trimming for a permanent time
Good point!
I would agree about tree decay. It takes way to long to down a whole tree. The foliage is very beautiful and full.
I think a mix of two types decay would be awesome.
If the whole trunk is destroyed then the foliage quickly decays, a few minutes.
If the trunk or leaves are partly destroyed then the tree decays slowly, a few hours.
I just had a thought about tree regeneration.
Wouldn’t it make more sense if trees spread from existing forests instead of just randomly spawning again?
That would of course mean more coding.