Godot Version
Godot 4.2.1 and Godot 4.3 Dev 5
Question
Hello. Our team is creating a space 3D MMORPG “RVM Universo”. Previously, this project in the form of an MVP was implemented on Godot 3, then we worked on developing our own cinematic universe, so that our MMORPG had a good plot content.
Currently, we have refactored our project so that it works on Godot 4. We have started implementing a separate Godot client and Godot server.
We are having trouble understanding whether using RPC technology is a hindrance in our new implementation? Currently, we planned to use only the low-level ENetMultiplayerPeer API for interaction between the Godot client and the Godot server. But for some reason, in the examples we found, in addition to ENetMultiplayerPeer, RPC is also used.
From various sources of information, we assumed that if we use RPC, this will not allow the Godot client and Godot server to implement multi-threaded operation. I am NOT talking now about the transfer of data between the Godot client and the Godot server, I am talking about the operation of these applications themselves, so that part of the functionality can be run in separate threads. We are of the opinion that RPC will not allow this. Or are we wrong?
We want to base our network implementation on a protocol that won’t shoot us in the foot. There are topics that we still do not understand well. People who deal with high-load services are working on this project… but we are not associated with game development. For many years I led the development of large transport and logistics systems and other products. We have members who create VR shows, members who are involved in software for aviation, for military systems and a lot of everything, but not game development.
Out of our entire team, we only recently added one programmer who has professional experience in developing computer games. Together we are learning to make good computer games
-
First, we carefully studied the 3D Multiplayer Starter Project https://www.patreon.com/posts/godot-4-3d-96759721 But we saw that it uses RPC.
-
Analyzed the repository with minimal working multiplayer functionality on ENetMultiplayerPeer with code that is divided separately into client and server GitHub - zwometer/Godot4MultiplayerMVP: A minimal working prototype for Godot 4 multiplayer using ENetMultiplayerPeer.
-
Analyzed the repository with a larger demo project in which the functionality is divided into a client and a server GitHub - MystixCode/Godot4Net: This is a godot 4 project implementing dedicated multiplayer networking.
The structure of these projects suits me well, because there is a division into a Godot client and a Godot server. But I see that these projects also use RPC.
Please tell me if there is a project that uses the low-level API ENetMultiplayerPeer and in which there is a separation of the code into separate Godot client and Godot server? Such a project would be very useful to me, it would greatly help me to transfer my MMORPG from Godot 3 to Godot 4.