Godot networking with golang server

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By themrviper

Hey, im new in godot.

Is there a way to use native godot networking on client-side, and golang for example on server-side.

I found some enet ports for golang, but they don’t have rpc implementation such as godot hight-level netowrking.
Is godot using own rpc implementation over enet? Where i can find specification to make port for golang?

I will search more, but maybe some one do same before me, and can help with some info.

Thank you


I found this enet port which is realy working - GitHub - sparkkoori/go-enet: Go bindings for the ENet C library.
i received data from rpc_id call, but anyway i dont know godot rpc protocol format,

Can’t find it anywhere,i will try to look at godot source.


I checked source code, found some pack|unpack functions, trying now to find out packet structure. Protocol specification will help me much more, than code.


What i do.
Save raw packets - 51 85 DD 3B 01 00 00 00 00 44 00 00 80 74 65 7374 5F 64 64 6F 6E 00 05 04 00 0 - Pastebin.com (paste as hex text, if you want test it)
Create template for 010 editor - struct PacketData { LittleEndian(); int peer_id; byte unk1; - Pastebin.com (questions about params are inside this tempalte)
Its not full template, i just handle - int, string, bool

In looking for all unk params, and also little explain about my comments, if possible

For contributors: better store every size(packet, string, byte array) inside CUInt - its data type developed for angelica engine, which change numer size from 1 to 5 bytes if needed.

themrviper | 2021-01-05 22:30


What done now:
I added some changes to 010 template - struct PacketData { int source_peer_id; int target_peer_id; byt - Pastebin.com

Also why we need this packets:

look like only i see this qa topic.

themrviper | 2021-01-07 02:37

Finally protocol is ready, now im working on golang implementation.

Will post it here, later
Also i will prepare some questions.

themrviper | 2021-01-07 21:48

:bust_in_silhouette: Reply From: themrviper

So, its funny, 2 days i was talking with my self alone, but first version of high-level netowrking for golang is ready to test. Will work little bit more tomorrow, to finish this.

You can cantribute some stuff and help me, if you want.

Also i can help with protocol, if someone want to port it for python.

themrviper | 2021-01-08 17:35