Goton
Introduction
What is Goton?
Goton is a project that aims to implement the Photon SDK by ExitGames in pure golang. It is built off the basis of the C# SDK.
This means that the C# Documentation would theoretically be valid for Goton, however pkg.go.dev also autogenerates api references.
How To Use
Simply get the latest release using go get github.com/RinLovesYou/Goton@0.1.5
!!IMPORTANT!! Regarding Hashtables and Dictionaries:
Currently map[interface{}]interface{}
is used for both dictionaries and Hashtables. By default, these get serialized as Hashtables.
Some games may need you to use Dictionaries. The current workaround is adding myMap["__dict"] = true
to your dictionary, which GpBinaryV18 will remove, and serialize the rest of the Map as a dictionary.
Issues
Goton is Highly Experimental. Current Issues include:
- No Thread Safety at all
- GpBinaryV18 Does not yet support all types
- Not all events are being processed yet
- Not all Callbacks are implemented, you have to implement all of the available ones or it'll panic.
- Joining Rooms can break sometimes. PUN Users: Instantiation may break, careful!
- Other quirkiness
Missing/Being Implemented
- OpLeaveRoom
- Region Ping
- Full handling of all Events
Under Construction
This repo is currently under construction.