-
ENet-CSharp
A improved fork of ENet, a tried and true networking library. C, C++, C# compatible. (by SoftwareGuy)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Making games isn't an easy thing to do, this is especially true for multiplayer games. Ever since I was 12 years old I wanted to make the ultimate multiplayer game. I first started getting into networking through GameMaker studio engine. I would watch tutorials online, try to understand them and end up just copying code for code. Later on I discovered Unity's Low-Level Multiplayer API (LLMAPI) and it was horrendous to get working. Not to mention the documentation for it was even more horrendous. Then much later I discovered [ENet-CSharp](https://github.com/SoftwareGuy/ENet-CSharp) and fell in love with its [simple approach](https://github.com/SoftwareGuy/ENet-CSharp/blob/master/QUICKSTART-EXAMPLES.md). I later found out that I could just add nuget packages to the .csproj file of Godot Modules project and bam I'm using Godot C# + ENet-CSharp. This is great because I'm super comfortable with the C# language.
For sending data over the network I used System.IO.BinaryWriter and System.IO.BinaryReader. I created some classes to help automate my life with this. Have a look at [CPacketPlayerPosition.cs](https://github.com/GodotModules/GodotModules/blob/main/Scripts/Netcode/Common/CPacketPlayerPosition.cs), [SPacketPlayerTransforms.cs](https://github.com/GodotModules/GodotModules/blob/main/Scripts/Netcode/Common/SPacketPlayerTransforms.cs), [CPacketLobby.cs](https://github.com/GodotModules/GodotModules/blob/main/Scripts/Netcode/Common/CPacketLobby.cs), [SPacketLobby.cs](https://github.com/GodotModules/GodotModules/blob/main/Scripts/Netcode/Common/SPacketLobby.cs) just to see how nice everything is grouped together. Before I had it so a lot of this code was dispersed across several files (for e.g. CWPacketLobbyJoin.cs, CRPacketLobbyJoin.cs, SWPacketLobbyJoin.cs, SRPacketLobbyJoin.cs) S stands for Server, C stands for Client, W stands for Write, R stands for Read.
Not sure what you mean by how I'm going to host it. Here is the server source btw --> master NodeJS server. I can just host it with "node server.js" on some computer.
Related posts
-
Migration from MLAPI to Netcode for GameObjects
-
How to parent a NetworkObject in Netcode. For holding and using an item (example: holding, dropping, or shooting gun?)
-
Can I save my broken UNET game?
-
[Netcode] Behaviour index was out of bounds. Did you mess up the order of your NetworkBehaviours?
-
How to handle turn based multiplayer