mohsenph69 / Godot-MTerrain-plugin

A GDExtension plugin which give godot the ability to produce highly optimized Terrain for Open world games
MIT License
427 stars 23 forks source link

Can this work for Godot 4+ games with multiplayer and open world chunks? #27

Closed WithinAmnesia closed 7 months ago

WithinAmnesia commented 7 months ago

Test chunks link: https://github.com/WithinAmnesia/ARPG/discussions/15

I'm trying to find a way to seamless load and unload chunks for a 2D multiplayer game project to make an open world with a working server using Godot 4.2.1.NET.

How can this work for multiplayer and what is needed for this to potentially work? What options can be used for chunk loading and unloading seamlessly in Godot 4.2.1.NET? Please give feedback.

mohsenph69 commented 7 months ago

Hi There!

I really have no information about your system! What information has each chunk? Texture! collision! navigation mesh!

And how you chunk is stored?

One thing for sure you should know about thread! Other than that I don't know as I have no idea how your system works!

Try to send me a message on discord and describe how you game system works? my discord : mohsenph69

I will close this here as this is not related to MTerrain!

WithinAmnesia commented 7 months ago

Here is an update since I last posted. https://jonathaneeckhout.itch.io/jdungeon For the goal right now it is easy to play this but imagine it has seamless chunk loading and unloading. As instead of the black world boundary a new chunk loads in seamlessly. What are your suggestions and thoughts?

Update: https://github.com/WithinAmnesia/ARPG/tree/ARPG-Infinite-Worlds Here is the 128x128 with 32x32 pixel tile chunk to test.

My initial testing seems to feel even faster combat with the 128x128 chunk. This 128x128 chunk has the same amount of entities as the 256x256 chunk. For I moved all of the entities over into the 128x128 chunk. This 128x128 chunk is a good test for using the Infinite-Worlds using the BinarySerializer for Godot 4.2+ from Theraot: https://gist.github.com/theraot/31515e28e2d8bfea33f6c6d5bcd852f6 . There needs to be some testing how to make the chunks seamlessly load and unload. https://gamedev.stackexchange.com/questions/209002/looking-for-help-godot-4-multiplayer-seamless-open-world-chunks

WithinAmnesia commented 7 months ago

Hi There!

I really have no information about your system! What information has each chunk? Texture! collision! navigation mesh!

And how you chunk is stored?

One thing for sure you should know about thread! Other than that I don't know as I have no idea how your system works!

Try to send me a message on discord and describe how you game system works? my discord : mohsenph69

I will close this here as this is not related to MTerrain!

Thank you! Hello can you take a look at this test chunk; it should answer how it works? https://github.com/WithinAmnesia/ARPG/tree/ARPG-Infinite-Worlds Here is the 128x128 with 32x32 pixel tile chunk to test. How to start: Run 3-4 instances in the debug -> run multiple instances. Then run the first instance as Gateway. The second instance should run as Server. The third instance as Client. Make an account then log in. The fourth and more instances can be for client multi-boxing testing and work the same as the third instance.

Any ideas or thoughts or tinkering and suggestions on what to do next is really helpful. As like if we can solve this the community can win and like its a big key to open massive multiplayer game for Godot and the community forever free. What should we do? Also if you are interested can you please read Theraot's code and like what other solutions and potentially leads could be pursued to help solve this puzzle?

Any thoughts and feedback and questions are really helpful right now. It will probably take an open minded community to solve this puzzle. Please give feedback, any feedback is welcome.