Skip to content

Instantly share code, notes, and snippets.

@WithinAmnesia
Last active February 19, 2024 18:32
Show Gist options
  • Save WithinAmnesia/51511cbc329ebf41d4321e79b954679f to your computer and use it in GitHub Desktop.
Save WithinAmnesia/51511cbc329ebf41d4321e79b954679f to your computer and use it in GitHub Desktop.
Start Fresh For M.M.O.A.R.P.G. Godot 4.2.1.NET+ Seamless Chunk System
Start Fresh For M.M.O.A.R.P.G. Godot 4.2.1.NET+ Seamless Chunk System
"I got to figure the data and the server communication with the chunks. It has to work on godot 4.2.1.NET+. (edited)
Ryan — Today at 18:21
unless the issue is like really specific
@Ryan
eventually projects reach a threshold of size and complexity that people cant effectively help you with them, unless they have been working on it for a while with you. I think what we are trying to say is that a multiplayer chunk generation system borders on that threshold
Matthew — Today at 18:22
Yeah i gotta just throw all the unnecessary junk out the window and focus on those chunks everything is build from the chunks and the server.
Matthew
I gotta figure the data and the server communication with the chunks. It has to work on godot 4.2.1.NET+. (edited)
jlkennedy — Today at 18:22
no you need to learn how to deal with client/server communications first... then on top of that what data you want to spend over the links.
@Matthew
Yeah i gotta just throw all the unnecessary junk out the window and focus on those chunks everything is build from the chunks and the server.
Ryan — Today at 18:22
if you do jump straight into it, start getting the chunks working locally first, and then figure out the server communication part after
@Ryan
unless the issue is like really specific
Matthew — Today at 18:23
Its like 2D chunks that can store like minecraft and work with godot's multiplayer and can hopefully handle ~2k players on a server with big (mostly empty) world. that is made from 16x16 pixel tiles.
@jlkennedy
no you need to learn how to deal with client/server communications first... then on top of that what data you want to spend over the links.
Matthew — Today at 18:24
yes
@Ryan
if you do jump straight into it, start getting the chunks working locally first, and then figure out the server communication part after
Matthew — Today at 18:24
yes
[18:24]
I have 2D chunks
[18:24]
https://github.com/DennisSmuda/godot-chunking-system [2D Chunk Generator]
https://github.com/dllta/ChunkLoader [2D Chunk System] these
[18:24]
these are good chunk system but they have no multiplayer oh this one too (edited)
Matthew
yes
jlkennedy — Today at 18:25
no... not find some other person's chunk system and say you "have one" you need to understand how and why it works.
[18:25]
I think we hit a circle here...
I don't think there is any more help I [and probably we] can really give until your ready to learn how to to do stuff, not just hope you can duck-tape together stuff you find on git/internet
Matthew — Today at 18:26
https://github.com/sirarandor/lux-terra this is good too it has multiplayer testing of mixed results. Data storage problems.
@jlkennedy
no... not find some other person's chunk system and say you "have one" you need to understand how and why it works.
Matthew — Today at 18:27
well its guide at least like it does help.
[18:27]
I can ask the people who made them too for advice.
@jlkennedy
I think we hit a circle here... I don't think there is any more help I [and probably we] can really give until your ready to learn how to to do stuff, not just hope you can duck-tape together stuff you find on git/internet
Matthew — Today at 18:27
Mate I'm not ducking taping stuff together
[18:28]
I get it its a lot though.
Ryan — Today at 18:28
i say look at diff projects for how they gen chunks, then make your own chunk gen based on them. then build your db up from scratch as you make the chunk loading system in the game
[18:28]
bc how you store chunks is intertwined with how you access them
@Ryan
i say look at diff projects for how they gen chunks, then make your own chunk gen based on them. then build your db up from scratch as you make the chunk loading system in the game
Matthew — Today at 18:28
this sound really wise
@Ryan
bc how you store chunks is intertwined with how you access them
Matthew — Today at 18:29
yes
[18:29]
how should optimise the storage too?
Ryan — Today at 18:29
you havent even built it yet, cant optimize now, would be wrong to do so
@jlkennedy
no you need to learn how to deal with client/server communications first... then on top of that what data you want to spend over the links.
Matthew — Today at 18:29
This seems like it goes together at the 1st step?
@Ryan
you havent even built it yet, cant optimize now, would be wrong to do so
Matthew — Today at 18:30
yeha but like if you know what the server and client want / expect you can sorta like get it kinda close at the start?
@Matthew
yeha but like if you know what the server and client want / expect you can sorta like get it kinda close at the start?
Ryan — Today at 18:31
just get anything working, and then improve it to optimize
Matthew — Today at 18:31
like for example my tiles cant be like to big for it will break the server probably so I gotta find a balance too.
@Ryan
just get anything working, and then improve it to optimize
Matthew — Today at 18:32
iterate iterate iterate.
Ryan — Today at 18:32
cross the bridges once you come to them
@jlkennedy
no you need to learn how to deal with client/server communications first... then on top of that what data you want to spend over the links.
Matthew — Today at 18:32
I gotta keep this mind though too
@Ryan
cross the bridges once you come to them
Matthew — Today at 18:32
this is true too its a balance (edited)
Ryan — Today at 18:33
have you ever hear the phrase "paralysis by analysis"
1
Matthew — Today at 18:33
ya just send it it lol
[18:33]
be the hungry lion that just jumps at times is good lol (edited)
jlkennedy — Today at 18:33
so, if I wanted to make a large open world 2d mine craft game that could handle 2k + players... my process would probably be something like this:
make multiple small projects [10+], each which explore part of the over all needs of the project
then start putting them together bit by bit.
I would likely end up with a seperate server code base written in a high performance compiled language (c++, golang, etc) and a client separate from that
given the number of players the server would need to be a mix of multi threaded and likely multisharded to split up the work load across multiple processors - with the easy fall back of doing things like old MMOs did were you have long coridores that you can't see the other side from were you get switched between nodes
1
Ryan — Today at 18:34
yeah you went on a philosophical spiel earlier you know what you gotta do, just get to work!
1
jlkennedy — Today at 18:35
but... I already have made 30+ game, have made a MUD frame work [online multiplayer game], I write integrations as a day job.... and with all my experience, it just tells me that something like this isn't something I would likely want to do [well... unless I was getting paid for it] (edited)
1
@jlkennedy
so, if I wanted to make a large open world 2d mine craft game that could handle 2k + players... my process would probably be something like this: make multiple small projects [10+], each which explore part of the over all needs of the projectthen start putting them together bit by bit.I would likely end up with a seperate server code base written in a high performance compiled language (c++, golang, etc) and a client separate from thatgiven the number of players the server would need to be a mix of multi threaded and likely multisharded to split up the work load across multiple processors - with the easy fall back of doing things like old MMOs did were you have long coridores that you can't see the other side from were you get switched between nodes
Matthew — Today at 18:36 18th / 02 (February) / 2024
This is really good I'm going to save this."
Okay so I went and found this 'Pirate Software' discord and from: https://github.com/sirarandor/lux-terra/issues/1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment