Clarification: DH LOD streaming — server responsibility or client-side?

- Does the client/server or both need to set rate limit, max-data transfer etc? I'm not sure how to optimise and speed up client-side LOD generation when joining a server and who is responsible. - Does it matter what the client sets for their DH settings such as CPU or render distance radius, does that in anyway help the server to generate new lods? For context I'm running a fabric server with: - c2me - DH 2.3 - fabric-api - sodium-fabric Client: - Enable Distant Gen = True - CPU Load = Highest
58 Replies
Wdp
Wdp2d ago
If The server speed is set it will limit the flow of LOD’s to the client no Mather if the settings on the client are higher But if the cpu is set to low on a “weak” cpu it WILL import very slow though
Pat
PatOP2d ago
Right so the server determines what the theoretical max is for transfer speed and queries and the client version of these settings determine if it requests that many resources?
Wdp
Wdp2d ago
Yes correct, you get it? Any more questions? I think that the server render radius does not overwrite the client setting but you can’t view farther then the server’s configured render radius.
Puhpine
Puhpine2d ago
Cpu load matters a bit for updating chunks, downscaling LODs, etc
Wdp
Wdp2d ago
Is that correct @Puhpine (GMT +1)
Puhpine
Puhpine2d ago
Yes
Wdp
Wdp2d ago
Ye that’s what I told him I think? Ok thanks
Puhpine
Puhpine2d ago
I'm not sure. But that's sounds plausable yeah Yeah basically
Wdp
Wdp2d ago
Ok nice 😊
Pat
PatOP2d ago
That makes sense. So what about when I want to pre-render? What makes sense to do? Should I be setting it to FEATURES or INTERNAL_SERVER? And should that be an option you switch back and forth between depending on context?
Puhpine
Puhpine2d ago
/generators
YAGPDB.xyz
YAGPDB.xyz2d ago
- FEATURES: Complete generation of all LODs with mostly correct structures and trees. Does not save vanilla chunks, and is much faster than INTERNAL_SERVER unless C2ME is installed. - INTERNAL_SERVER: Generates and saves both DH LODs and vanilla chunks, has 100% correct LODs, because it also saves vanilla chunks it takes the most amount of drive space. Generation speed will suck unless C2ME is installed. - PRE-EXISTING: generates LODs for all existing vanilla chunks.
Wdp
Wdp2d ago
Can I do this @Puhpine (GMT +1)?
Puhpine
Puhpine2d ago
Sure
Wdp
Wdp2d ago
O ok you did that one already
Pat
PatOP2d ago
I've been reading the wiki up and down trying to make heads and tails of this in context for the server So IS generates real chunks + the actual lods for them. Takes a while but its all legit? Features is lods but doesnt actually have any real chunks? So the player has to go and explore and discover if these lods are true?
Wdp
Wdp2d ago
You mean not seed based but fully generated? Yes
Pat
PatOP2d ago
Using the pregen command on the server, sorry I'm not too sure about seeds
Wdp
Wdp2d ago
So featured bases it’s of the seed and it bases itself of that seed and generates lods based of what it finds out, but it DOESN’T store the actual chunks Again correct? @Puhpine (GMT +1)
Puhpine
Puhpine2d ago
Yeah All generation modes generate based off of the seed
Wdp
Wdp2d ago
Ye but if they store the chunks or not is the difference
Puhpine
Puhpine2d ago
Yep And IS is a bit more "correct" But its not a huge difference
Wdp
Wdp2d ago
Ok sure
Pat
PatOP2d ago
Okay so they take the world seed or some random seed and generate a LOD based off of it. And it's a level of accuracy? So while I'm pre-generating my world on features I'm actually getting a reasonable reflection of the actual chunk because it was actually generated and used (for creating the lod) but never saved?
Wdp
Wdp2d ago
Not even created i think but yeah that’s it World seed oc Why would you create it but not save it? /generators
YAGPDB.xyz
YAGPDB.xyz2d ago
- FEATURES: Complete generation of all LODs with mostly correct structures and trees. Does not save vanilla chunks, and is much faster than INTERNAL_SERVER unless C2ME is installed. - INTERNAL_SERVER: Generates and saves both DH LODs and vanilla chunks, has 100% correct LODs, because it also saves vanilla chunks it takes the most amount of drive space. Generation speed will suck unless C2ME is installed. - PRE-EXISTING: generates LODs for all existing vanilla chunks.
Wdp
Wdp2d ago
It’s faster it said so it for sure DOESN’t create it, tldr I’m not a dev and this it what sounds logical to me the exact working is unknown to me
Pat
PatOP2d ago
Totally okay, I appreciate your help regardless 🙂 I'm wondering, if given enough time to let it generate, Internal_server is more efficient because it's more accurate and reduces overhead because it'll already have the chunks stored ready to use for players when they join.
Wdp
Wdp2d ago
Ye correct Don’t forget to mark a solution
Miki_P98
Miki_P982d ago
FEATURES still generates the vanilla chunks and converts it to LOD after the creation
Wdp
Wdp2d ago
But where do the chunks go?
Miki_P98
Miki_P982d ago
The generation is just done in a bit faster way, that is more easily multithreadable
Wdp
Wdp2d ago
Ok sure
Miki_P98
Miki_P982d ago
It gets deleted
Wdp
Wdp2d ago
So INTERNAL_SERVER is better? Then
Pat
PatOP2d ago
Seems contextual, features sounds better for live play vs IS for pregen while players are offline Which the wiki does suggest, though I've been hungup on long-term efficiency/accuracy when performing pregen
Puhpine
Puhpine2d ago
Then I'd just suggest running IS with C2ME installed and don't worry about it
Wdp
Wdp2d ago
Ok sure thing
Miki_P98
Miki_P982d ago
It generates 100% correct LODs FEATURES generates only mostly correct LODs The exact differences are/result in: - Trees placement might be different, maybe correct, maybe moved 1-2 blocks or might be completely different. This is cased directly because the chunks are not saved, and vanilla can generate trees differently even in the same chunk, so generating the chunk again when a player loads it into the vanilla RD it may differ. - Same goes for structures, some may be moved, some may appear out of nowhere and some will dissappear. Personally for me they 99% of the time just look a bit different, but some players say that the structures always show up from nowhere and the ones in LODs are never there. - Features does not save vanilla chunks, because of that the generation uses much less drive space, while still providing the players with the LODs to see them, but it does not get rid of the generation lag when the players are moving. - Because of how Features simplifications work, some specific worldgen features might not work as intended, and e.g. WWOO can generate a grid pattern on sand and gravel, but it can easily be just ignored. - INTERNAL SERVER is not multithreaded as it runs fully vanilla code, this results in a massively slower worldgen, the exacl slowdown is CPU load and CPU dependant, but it can range from 4x to 32x adn in the future more with higher count CPUs. A fix for that is using C2ME that multithreads vanilla worldgen.
Pat
PatOP2d ago
"it does not get rid of the generation lag when the players are moving" which IS doesn't have?
Wdp
Wdp2d ago
Yes Because again it saves them
Pat
PatOP2d ago
and yeah if this isn't a major perf hit with C2ME and is viable for live play then sure
Wdp
Wdp2d ago
Very much thank you for the clarification, hope you didn’t break ur hand 😁
Pat
PatOP2d ago
That's actually super helpful info from you all, I was reading the wiki up and down as well as the forums here and I was struggling to understand.
Puhpine
Puhpine2d ago
It's not indeed. Main problem is storage size.
Pat
PatOP2d ago
Makes sense yeah
Wdp
Wdp2d ago
Yes and if a chunks is generated a lod also exists for it then? Question for @Puhpine (GMT +1)
Pat
PatOP2d ago
I appreciate that guys, thank you. I'm not sure how to mark a response here sorry or even which one to mark tbh
Miki_P98
Miki_P982d ago
I would say pregen the closer parts with more player movement with IS, maybe first 256 or 512 RD And then you can switch to Features to say drive space, but still allow people to see, maybe even 1024 RD
Puhpine
Puhpine2d ago
Yes, IS generates both That's okay Not required
Pat
PatOP2d ago
Good idea, I'll run that and see how I go
Wdp
Wdp2d ago
How many players?
Pat
PatOP2d ago
5-6
Wdp
Wdp2d ago
O ok same here btw but yeah
Pat
PatOP2d ago
Trying to figure out the best rate-limiting on all the settings so everyone can get as much as possible without nuking my pc lol
Wdp
Wdp2d ago
O trial and error I would say
Pat
PatOP2d ago
I did try with a world gen mod and that was chaotic. I was getting a lot of strange issues, a few of which I've seen people posting about here recently. Giant phantom pillars that never dissapear despite clearing all sql files etc. Super weird. Trial and error for sure, otherwise it's all super neat
Wdp
Wdp2d ago
Yes very right @Pat I think tis is the closest answer to ur question

Did you find this page helpful?