Jump to content

Alpha 18 Dev Diary!!


madmole

Alpha 18 Dev Diary!!  

3 members have voted

  1. 1. Alpha 18 Dev Diary!!

    • A18 Stable is Out!
      2
    • :)
      1


Recommended Posts

We'll keep optimizing and see where that lands, then we can think about some kind of underground cave networks. We took them out because we had no occlusion framework and chunk generation / rendering speeds were unacceptable.

 

I have some questions about this performance issue because I have been making a ton of modular underground POIs. I've tried asking in the mods section, but nobody seems to have an answer for me. I would really like to use them all at some point, but I am afraid that it's going to cause problems, as mentioned above and several other times when caves were discussed in this thread. If a dev could chime in and explain the cause of cave performance issues, it would be great.

 

Firstly, is there any difference between an underground POI and simply a hole in the ground with no roof? If I made a roof over a hole in the hole in the ground, does it suddenly fall into a performance issue? If not, then I am not seeing the difference between a cave and building.

 

Is there anything I can do to help with performance when building underground POIs?

If I set "ExcludePOICulling" to FALSE, this means it will not render at a distance and it will be culled, right?

If I set "ExcludeDistantPOIMesh" to TRUE, does this mean it will not use the simple mesh and will continue to use the main mesh at a distance, or does this mean nothing will be rendered at all?

What is the best combination of these two settings to optimize underground POIs and avoid these performance issues as much as possible?

Link to comment
Share on other sites

hey madmole and the rest of yoos pimps

spent some time this week playing 17.3

balance of stamina feels much better than before. cant go hard out non stop running mining or wrenching but a bit of a rest and can still keep going without the rage that was there before. to my mind it it close to where it should be.

 

seem to be more zds in the world. is that just me or has something changed?

 

often fighting or avoiding the z bears. and dogs. nice to be challenged :-)

 

big thumbs up bro. this iteration rocks!

 

died 4 times tonight. the brats crack up at that... now they are doing the dishes.

Link to comment
Share on other sites

Why does grain alcohol have a lower economic value (48) than Beer (100)? Grain alcohol is stronger and especially given that it is actually useful for first aid kits, it seems like it should be worth a lot more.

Link to comment
Share on other sites

He'll probably get some custom AI and properties so he bull dozes traps and explodes at the right time.

 

I may be nitpicking here and a zombie rigged with explosives will be interesting gameplay-wise anyway, but wouldn't it be a little awkward if these things just spawned in the wild? Perhaps in the future you can pair them with bandits which would make more sense. I think that when it comes to wild zombies something like the suicider from dead island (with something extra to make destroying blocks more believable) would make a more gory and "natural" zombie.

Link to comment
Share on other sites

All this talk about explosives and zombies and I seem to remember there being talk of a new system in the works for bandits where the dress up can be more dynamic?

 

So...maybe the odd soldier zombie could have a grenade belt over the chest with a chance to blow it up when shot/hit?

Link to comment
Share on other sites

Is there anything I can do to help with performance when building underground POIs?

If I set "ExcludePOICulling" to FALSE, this means it will not render at a distance and it will be culled, right?

If I set "ExcludeDistantPOIMesh" to TRUE, does this mean it will not use the simple mesh and will continue to use the main mesh at a distance, or does this mean nothing will be rendered at all?

 

For an underground POI you do not need a distant POI mesh at all. You can not see it at a distance.

ExcludeDistantPOIMesh=TRUE would be sensible.

 

"Real" POI do not exist at a distance at all. The chunks are not loaded so no blocks exist there period. That's the whole point of the simplified meshes.

Link to comment
Share on other sites

For an underground POI you do not need a distant POI mesh at all. You can not see it at a distance.

ExcludeDistantPOIMesh=TRUE would be sensible.

 

"Real" POI do not exist at a distance at all. The chunks are not loaded so no blocks exist there period. That's the whole point of the simplified meshes.

 

What's the state of play on distant terrain being updated as the player alters the landscape? I'm not one for massive earthworks but the last time I checked the changes didn't show up.

Link to comment
Share on other sites

It could update the terrain when a certain % of a chunk has been changed.

 

For distant POI meshes changing: the problem would be that there needs to be then more low poly distant meshes than POIs.

Currently its enough to have one low resolution mesh per POI-type.

Link to comment
Share on other sites

It could update the terrain when a certain % of a chunk has been changed.

 

For distant POI meshes changing: the problem would be that there needs to be then more low poly distant meshes than POIs.

Currently its enough to have one low resolution mesh per POI-type.

 

As far as I know the distant mesh for prefabs is generated from the blueprint during loading. The system to generate distant meshes is already there but the trick will be re-generating the distant mesh at runtime without crippling the frame-rate.

Link to comment
Share on other sites

That and constantly transferring all those meshes to clients because they do not know the status of those chunks until they actually get there at which point this is moot.

 

You don't need to send the entire mesh as such, just enough data that the client can rebuild it on the other side. That could still be a lot of data but far less than a full mesh.

Link to comment
Share on other sites

As long as we get more NPC's in the future games! lol

 

There are a lot of npcs coming to 7 days, just not ones you can recruit to do your bidding unless we can make it look convincing and afford the performance setback.

Link to comment
Share on other sites

I have some questions about this performance issue because I have been making a ton of modular underground POIs. I've tried asking in the mods section, but nobody seems to have an answer for me. I would really like to use them all at some point, but I am afraid that it's going to cause problems, as mentioned above and several other times when caves were discussed in this thread. If a dev could chime in and explain the cause of cave performance issues, it would be great.

 

Firstly, is there any difference between an underground POI and simply a hole in the ground with no roof? If I made a roof over a hole in the hole in the ground, does it suddenly fall into a performance issue? If not, then I am not seeing the difference between a cave and building.

 

Is there anything I can do to help with performance when building underground POIs?

If I set "ExcludePOICulling" to FALSE, this means it will not render at a distance and it will be culled, right?

If I set "ExcludeDistantPOIMesh" to TRUE, does this mean it will not use the simple mesh and will continue to use the main mesh at a distance, or does this mean nothing will be rendered at all?

What is the best combination of these two settings to optimize underground POIs and avoid these performance issues as much as possible?

We were using perlin worms and generating cave data at runtime. Some of the caves were extensive and we were rendering huge cave networks MOST players didn't even see. (why is my game slow, I'm staring at a flat open desert?) Then to make them interesting, we had to spawn animals or zombies down there, slowing it further and taking away from potentially obvious zombies on the surface. In short, imagine rendering 1.5 x as much stuff as you need to, and use a costly algorithm when generating it for the first time when a player goes into the area. It was making it challenging to keep up with a minibike movement. If we could pregenerate it and cull it 100% and not spawn guys in there until a player was inside, (all easily doable in a static world game, but challenging in a fully destroyable voxel game) then we could probably add them in.

Link to comment
Share on other sites

hey madmole and the rest of yoos pimps

spent some time this week playing 17.3

balance of stamina feels much better than before. cant go hard out non stop running mining or wrenching but a bit of a rest and can still keep going without the rage that was there before. to my mind it it close to where it should be.

 

seem to be more zds in the world. is that just me or has something changed?

 

often fighting or avoiding the z bears. and dogs. nice to be challenged :-)

 

big thumbs up bro. this iteration rocks!

 

died 4 times tonight. the brats crack up at that... now they are doing the dishes.

 

Nice and lols.

Link to comment
Share on other sites

Why does grain alcohol have a lower economic value (48) than Beer (100)? Grain alcohol is stronger and especially given that it is actually useful for first aid kits, it seems like it should be worth a lot more.

 

Probably an oversight, but the guy who left had beer as some god tier item with a bunch of beer perks and bs I nuked.

Link to comment
Share on other sites

For an underground POI you do not need a distant POI mesh at all. You can not see it at a distance.

ExcludeDistantPOIMesh=TRUE would be sensible.

 

"Real" POI do not exist at a distance at all. The chunks are not loaded so no blocks exist there period. That's the whole point of the simplified meshes.

 

Thanks for clearing up the underground POI uncertainties I had. For the ones I made, I’ll be sure to not include the distant POI. I suppose I will have to keep them simple with not too many spawns or suffer some slower rendering.

 

We were using perlin worms and generating cave data at runtime. Some of the caves were extensive and we were rendering huge cave networks MOST players didn't even see. (why is my game slow, I'm staring at a flat open desert?) Then to make them interesting, we had to spawn animals or zombies down there, slowing it further and taking away from potentially obvious zombies on the surface. In short, imagine rendering 1.5 x as much stuff as you need to, and use a costly algorithm when generating it for the first time when a player goes into the area. It was making it challenging to keep up with a minibike movement. If we could pregenerate it and cull it 100% and not spawn guys in there until a player was inside, (all easily doable in a static world game, but challenging in a fully destroyable voxel game) then we could probably add them in.

 

I see. So a big part of it was also the generation. Makes sense.

It's almost like there needs to be some quick and reliable algorithm to determine the average ground level of some chunk so that chunks could be loaded in vertical sub-chunks in order to do the same kind of culling... but this couldn't possibly be a solution because the overhead of maintaining the data would likely negate the benefits. Here's counting on Moore's law.

Link to comment
Share on other sites

Have you thought about putting more unique rewards in the quests to make them more desirable? The Dukes and XP are nice, but I was thinking more along the lines of schematics, mods, books...etc that can only be obtained through high tier quests and no were else. I think this would make the questing system feel a lot less repetitive.

Link to comment
Share on other sites

Thanks for clearing up the underground POI uncertainties I had. For the ones I made, I’ll be sure to not include the distant POI. I suppose I will have to keep them simple with not too many spawns or suffer some slower rendering.

 

 

 

I see. So a big part of it was also the generation. Makes sense.

It's almost like there needs to be some quick and reliable algorithm to determine the average ground level of some chunk so that chunks could be loaded in vertical sub-chunks in order to do the same kind of culling... but this couldn't possibly be a solution because the overhead of maintaining the data would likely negate the benefits. Here's counting on Moore's law.

 

Its not that hard to cull, as long as the cave is not altered too much (digging though the roof)

 

Caves have the habit to be under ground, so they dont need to be rendered when a player is not inside it, or near its entrance.

At the distance, the entrance can be rendered blocked off, and the underground parts does not need to be rendered at all.

 

-> once the game knows a client player is near the entrance (voxel volume marked around it) or inside (volume voxel created at generation time)

then the cave gets rendered, and activates ai spawning inside. All those volumes are known at the start, since the game generates those anyhow.

 

Once the cave gets altered to a certain degree by players / zombies (especially digging though the roof) the whole cave gets marked as "dirty" and is permanently rendered like all other voxels.

Link to comment
Share on other sites

Its not that hard to cull, as long as the cave is not altered too much (digging though the roof)

 

Caves have the habit to be under ground, so they dont need to be rendered when a player is not inside it, or near its entrance.

At the distance, the entrance can be rendered blocked off, and the underground parts does not need to be rendered at all.

 

-> once the game knows a client player is near the entrance (voxel volume marked around it) or inside (volume voxel created at generation time)

then the cave gets rendered, and activates ai spawning inside. All those volumes are known at the start, since the game generates those anyhow.

 

Once the cave gets altered to a certain degree by players / zombies (especially digging though the roof) the whole cave gets marked as "dirty" and is permanently rendered like all other voxels.

 

All valid, but a lot of work for something that would only be effective temporarily until the world actually gets played in.

I'm thinking that if the Raytracing tech in GPUs continues to improve, the same data used for lighting can be recycled for others systems some day, such as culling in a dynamic world.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...