#(MOD) (WIP) Lucid Realms Multiplayer

37 messages · Page 1 of 1 (latest)

gaunt crescent
#

I've been working on a multiplayer mod for Lucid Blocks that will allow people to host dedicated servers for lucid blocks that players can connect to.

However, due to the way the game is designed, it is not possible to modify world logic unless we have access to the gdblocks.gdextension source code. Thus, it is not possible for a world to have multiple simultaneously loaded regions. My solution to this is to replace dimensions with "realms" that players can move between. Each realm will have a limited radius that you cannot build outside of, thus entirely bypassing the issue of needing multiple loaded regions, but otherwise the realm acts like a normal lucid blocks dimension.

I think once I get the realm system working, I can then build on it with things like custom realm generators, systems for players to create new realms, etc.

Besides that, I will try to rewrite most of the game's logic to use a client/server architecture.

I'll probably set up a test server when I get my first prototype working. This is a pretty big project so it will likely take a while.

vital prairie
#

god speed hzs 🫡

pulsar crown
gaunt crescent
pulsar crown
#

Yeah I checked and saw that

gaunt crescent
#

I have a pretty good reason for reimplementing everything from scratch though. My mod is taking a fairly different approach from the co-op mod and I'm trying to have full server-side authority for game logic.

#

I've just always wanted to be able to host a dedicated multiplayer server for lucid blocks, not just play co-op, but to do that I have to make compromises

pulsar crown
harsh shell
gaunt crescent
gaunt crescent
#

One idea I had was adding a plugin system similar to bukkit/spigot/paper servers but fancy features like that will have to wait until after I manage to get the basic implementation working

harsh shell
#

So with ur mod, individual users could host dedicated servers/realms on their pc for others to connect to?

gaunt crescent
#

In theory, yeah, as long as you keep your computer running

#

And also you need to know your way around networking stuff, it's gonna function a lot like a Minecraft server

#

Like people won't be able to connect unless the port is exposed

harsh shell
#

Figuring that out is the least of my concerns hahah I ran plenty mc servers back in the day

#

Thanks for working on this, I was just talking w a friend yesterday about how the older version of the multiplayer mod wasn’t really good enough to use 😂

gaunt crescent
#

Also to clarify, a server can have multiple realms. A realm is like a mini dimension that is limited to a specific radius. It doesn't generate infinitely, so each realm will be more like a skyblock island. Players on a server will be able to move between realms. I could also try to make custom terrain generation for realms and automatically generate new ones, although I'm not exactly sure what the gameplay loop for that should look like.

#

The whole realm thing was originally a workaround for the limitations around modding world logic, but I realized that expanding on the idea could create something pretty interesting.

harsh shell
#

Yeah, I like the realm idea for sure, seems like a pretty cool concept, esp if you implemented custom terrain generation

vital prairie
#

it would be cool if each biome had a realm
and there was some way to store “locations” of natural realms so you could explore like an actual world, but fragmented

gaunt crescent
vital prairie
#

how big would an actual realm be limited to? the 96 block render distance?

gaunt crescent
vital prairie
#

how would loading fragments of the world be any different that just trying to load chunks?

gaunt crescent
vital prairie
#

like each realm

#

because just a small world as a whole server makes sense but like a bunch of realms seems just as difficult as chunks

gaunt crescent
#

Oh, each realm uses a separate world node internally, so I don't need to worry about loading multiple parts of the world at once

vital prairie
#

i’m not gonna pretend to understand that but you seem confident

gaunt crescent
#

Like you know how there's a World node? It is an instance of the World class defined in the gdextension.

#

Technically a subclass since it extends World

#

I will have multiple instances of World

#

Instead of loading multiple areas inside a single World instance

#

I can make multiple World instances, I just can't load multiple regions in a single World

vital prairie
#

hm oh alr