summerplaygames / openworld

Godot plugin for creating open worlds
MIT License
2 stars 1 forks source link

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

Open WithinAmnesia opened 6 months ago

WithinAmnesia commented 6 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.

jonbonazza commented 6 months ago

This is a very old plugin and would basically need rewritten entirely for godot 4.X.

godot4 also provides facilities for stitching navmeshes and collision shapes together which would also be useful.

for multiplayer, it entirely depends on how your networking is setup

WithinAmnesia commented 6 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 6 months ago

This is a very old plugin and would basically need rewritten entirely for godot 4.X.

godot4 also provides facilities for stitching navmeshes and collision shapes together which would also be useful.

for multiplayer, it entirely depends on how your networking is setup

This is a very old plugin and would basically need rewritten entirely for godot 4.X.

godot4 also provides facilities for stitching navmeshes and collision shapes together which would also be useful.

for multiplayer, it entirely depends on how your networking is setup

Thank you for replying. Any thoughts and ideas on what to do are really helpful. It is not easy to find skilled people who know what should be done next to find solutions to this community wide puzzle. I am looking for skilled open minded community people to ask for advice and test and anything to solve this big puzzle with multiplayer seamless chunk loading and unloading. Any insight helps and you seem very skilled too and you know things I do not so I hope we can find solutions together.

Please if you feel interested please test the test 128x128 chunk https://github.com/WithinAmnesia/ARPG/tree/ARPG-Infinite-Worlds Here is the 128x128 with 32x32 pixel tile chunk to test. Any tinkering thoughts or solutions or insights like anything helps right now and its an important puzzle to solve to make the whole community win with making massive multiplayer games forever free.

Also if you feel interested in Theraot's code and who and what to do with it or any other possible lead please ask questions give ideas and suggestions. it is really important to find open minded people and like you seem really skilled too so i really hope we can find solutions together. I hope to best use the this opportunity and help the community with making thing big puzzle be solved once and for all so all the massive multiplayer games can be made in Godot 4+. Please share any ideas and thoughts andsuggestions. Please if you are interested try the test chunk demo and and maybe look and and tinker with Theraot's code or any other possible lead or solution. Any feedback is welcome.