0 votes

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

in Engine by (19 points)

NEW:

I found this enet port which is realy working - https://github.com/sparkkoori/go-enet
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.

NEW2:

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.

NEW3:

What i do.
Save raw packets - https://pastebin.com/mJfAMWDE (paste as hex text, if you want test it)
Create template for 010 editor - https://pastebin.com/vkTaZhg5 (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.

NEW4:

What done now:
I added some changes to 010 template - https://pastebin.com/VcW4nmkA

Also why we need this packets:
Client2Server: NETWORKCOMMANDSIMPLIFYPATH
Server2Client: NETWORK
COMMANDCONFIRMPATH

offtop:
look like only i see this qa topic.

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

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

1 Answer

0 votes
Best answer

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.

https://github.com/TheMrViper/gogonet

by (19 points)
edited by

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

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.