Hi everyone,
Let me make my question even more precise: How do you manage the development of new features for a multiplayer game where testing involves always having several instances running and/or several players ?
First of all, in terms of resources, I’ve read/seen the following:
(1) “High Level Multiplayer”, Godot doc, High-level multiplayer — Godot Engine (stable) documentation in English
(2) “Physics Networking: How can I properly do it to my 2D game?”, forum Godot, Physics Networking: How can I properly do it to my 2D game?
(3) “UDP vs TCP”, Gaffer On Games, UDP vs. TCP | Gaffer On Games
(4) “What Every Programmer Needs To Know About Game Networking”, Gaffer On Games, What Every Programmer Needs To Know About Game Networking | Gaffer On Games
(5) “Choosing the right network model for your multiplayer game”, Màs Bandwidth, Choosing the right network model for your multiplayer game
(6) “Multiplayer Bomber”, godot-demo-projects (Github), godot-demo-projects/networking/multiplayer_bomber at master · godotengine/godot-demo-projects · GitHub
They are really interesting, but do not touch on the subject of development cycles and testing.
I understand (or I believe I do anyways) what Godot/networking principles are involved in making a multiplayer game.
The game I am planning on making will be multiplayer only, and heavy on the physics side of things. I have decided to use a P2P-like architecture where one player is the server and others are the clients, but where physics are simulated locally on each device and then synchronized through the “server” player if there are discrepancies.
In this game, players must collaborate and interact with each other in interesting physics-based ways to go to the end of the level. Think “Heave ho”, “Pico park”, “Human Fall Flat” etc…
So how do I go about it ? I’ve no problem setting up level scenes, and I imagine I could probably run a VM on my machine or get a crappy second computer to simulate a 2nd player, but it seems to me like the run cycle will be really heavy and slow: develop on main machine, build, run, connect second player, use my first controller and my second controller somehow simultaneously to test interactions… This seems a bit too naive and I can’t help but think that people have figured out a better way to handle this.
So here, do you have any good advice or good working pipelines to handle such cases ?