Serverside Fork?
I know there's a serverside fork, so I'm considering using that for a server I'll be starting soon. We're planning to pregenerate 30k blocks, which is why the serverside fork is so intriguing to me.
Has anyone used the serverside fork before and if so can they shed some light on how it functions? Performance impact, difficulty to set up, etc.
I was also thinking: could it be possible that I install DH on the server, pregenerate the 30k blocks, then grab the lod data from the server's files and just share them with each player who wants them? Would that work?
Thanks!
61 Replies
If you want to generate 30k blocks, you will need quite a beefy server cpu, or wait a long time. It should not be very hard to set up, just add the nightly build from #links-n-downloads to the server and client and it should work. Change some config values like dh render distance and thread counts and youre good.
You can also pregenerate the LODs and distribute them to others yes, you don't even need the nightly build for that if you do it in singleplayer
Or maybe server LODs are still incompatible, in which case you'd have to pregenerate in singleplayer. Im not sure if that's still a thing
yeah, I've been planning to allocate 3 weeks to pregenerating. But the serverside version does generate its own lods? And if distributing doesnt work the nightly build does for sure work on 1.18.2 forge without too big of a performance impact?
Yes it generates its own LODs if someone is online. It has a huge performance impact while generating though
Definitely True As long as someones online itll gen LOD's and if you have multiple people genning chunks while genning LOD's server will also Spike if you do it on the server just have someone stay logged in on the server at all times so its just always constantly genning to what your view in the config is
also performance can also be impacted a ton if you are using a Game Hoster that allocates resources so LOD Gen can be impacted and slow unless you have like a spare computer lying around and know how to portforward
or use some software like tailscale
I'm prepared to wait three weeks to use the server to give it time to pregen
and someone needs to be literally in the server for it to be pregenning?
With 3 weeks just set it to like 4096 then see how much it generates
wdym
If you set it to 4096 chunks then see how much of 4096 it has generated after 3 weeks
why would I set it to 4096 chunks?
i'm just trying to generate 30k blocks
Better to have more than not enough
no because I have a storage limit and 4096 would be too much
plus 30k is absolutely plenty
my question is does it pregen when no players are online
no
ok then that's a big problem
is there any way to circumvent that?
Carpets mod /player thing maybe?
I don’t know if anyone has tested that though
Why?
Just connect 1 account with DH RD of your choice
what's DH RD?
Distant horizons render distance
well it's a problem bc if the generation is going to take 3 weeks i can't just have my computer open and connected to minecraft for 3 weeks straight
Could you run it on your home server
wdym
you can setup a free VM with MC that will join your server
what's a VM?
Virtual machine
Fake computer on a computer
how does that work?
You either buy one, get one for free, or run one yourself
I would go for the second option
yeah but I don't really know what it is or how it works
is it something that I run off of my computer that requires my computer to be on for the whole time?
Kahan Data Solutions
YouTube
How to Create a Virtual Machine (VM) on Google Cloud Platform (GCP)
Get my Modern Data Essentials training (for free) & start building more reliable data architectures
https://www.ModernDataCommunity.com
-----
One of the most popular use cases of the cloud is for computation, otherwise known as Virtual Machines (VMs).
With a VM you can host open source tools, run scripts or do pretty much anything else you wo...
im looking online and everything I see looks like the pregenerator continues to run even if players aren't actively online?
like if I went in the server, started the pregen command, then left, wouldn't it just continue running until it finished?
There is no pregen command for DH LODs
you can only pregen vanilla chunks using sommands
then how would someone being online change that?
This player online will request LODs from the server
So the server will generate the LODs
The player can even disable the LOD rendering
and there's no way to just simulate a player being online?
There probably is
But not included in DH
nor in chunky and other pregen
well ig that's what I need to find then
and wait, if DH is installed in the server why wouldn't it just generate LODS along the way like a client does normally?
What do you mean with along the way?
And pregenning without players online is currently planned as you can see in #progress-update
vanilla server also do not just randomly generate vanilla chunks along the way
with no player active
what?
I'm saying the pregenerator continues to execute a task even with no one online so I was confused why it wouldn't just generate the LODS while it's generating the chunks as well
Because the pregenerator did not add DH support
Ask them why not
ok
yes
with DH installed on the server, does the server generate its own .sqlite file with the lods?
Yes but it wont be transferrable from server to client instead all clients will get streamed the data and stored within there own sqlite file
why wouldn't it be transferrable? Like I couldn't just copy the sqlite from the server and drop it in a client?
It has different format
The server side LODs are not finished
The last step is done on the client
IDK why
Maybe some Windows/Linux/Android compat or something
odd
so I guess my plan is:
1. Install the server-side fork of DH to the server (idk how to port forward and all that other stuff I think you need to do for it so that's a bridge I still need to cross)
2. Start the server's world, initiate 30k pregen and idle my client in the server whenever I can, maybe taking shifts with friends and pausing the pregen whenever no one's available to have their client sit in the server
3. Once it's done, players with the same version of DH installed will be able to see all of the LODS(?)
That should work
You can also decrease DH CPU load settings server side and play the game normaly and at some point in time everything will be generated
Also remember to set the DH RD on the clients to the target radius
As only the LODs inside the client's RD will be requested
ohh I see
could you set the RD to 1800 chunks (or however many 30k blocks is)? Like would that break the client or server or anything?
also are you sure that the DH RD needs to be adjusted? I'm testing it in singleplayer rn and I'm watching the DH sqlite get larger as the pregen happens which tells me it is in fact creating and storing new lod data
It will work
it creates the LODs up to your DH RD, which by default is I think 128? (2 048 blocks)
It is slower then pregen so it will continue growing even if the pregen was for over 2000 blocks
even if the client is loading a 1800 chunk radius of LODS that wont like overwhelm the client or anything?
ah ok
Remember to increase the CPU load settings on the server because is you leave it at balanced it will take months not weeks
It should not, it the clients does not crash it will be able to request new LODs, even at 1 fps
alright
the plan im currently looking at uses a 5600X
Then set all the threading values to
12
and runtime precentage to 1.0
(or 100%
)alright
yeah I guess my concern is that 1800 chunks is an insane amount for one client to render so I feel like that would have a decent chance of crashing
No, the whole point of DH is that higher RDs do not decrease the fps much
The main reason people do not play with 1024 RD is that they don't want to wait 2 days to start playing and effects such as fog scale to the RD so it looks bad if ungenerated
gotcha
I think my last hurdle then is just figuring out the serverside installation
I remember there being something about a port forward which looked confusing
Old times, no longer needed
#Server-side support
so does that mean I just drop the serverside fork in both the client and the server and there's nothing else I need to do?
I'm on 1.18.2 so I've got a slightly outdated oculus, that's not a problem or anything?
yes
Shaders won't work
/shadersupport
Distant Horizons and Iris Shader Support Requirements:
- DH 2.1 + Iris
- Minecraft 1.20.1, 1.20.4, 1.20.6, 1.21
- Sodium 0.5.8+
- Iris 1.7.0 - 1.7.3
- Fabric API
- A compatible shaderpack: https://gist.github.com/Steveplays28/52db568f297ded527da56dbe6deeec0e
- DH 2.2 + Iris
- Minecraft 1.20.1, 1.21.1
- Sodium 0.5.8+
- Iris 1.7.5, 1.8, or newer
- Fabric API
- A compatible shaderpack: https://gist.github.com/Steveplays28/52db568f297ded527da56dbe6deeec0e
Gist
Distant Horizons shader compatibility info
Distant Horizons shader compatibility info. GitHub Gist: instantly share code, notes, and snippets.
yeah, I'm not worried about that though. just wanted to make sure there's no other issues
awesome
I think I have a decent idea of what I need to do now, thank you
You can remove it, as the onlu think Oculus does is add shader to vanilla, but do what you want, it should not cause any issues, but if any appear try removing it
No problem 😸