This is C# client library to communicate with GenGame server. It can be used for both generic C# project and Unity.
- Make sure GenGame server is started. See how to start here
- Download dll from release page
- Unarchive it, then put it all dll files to your unity project
- Then you can start using GenGame, see example below:
using GenGame;
using System.Diagnostics;
// connect to GenGame server and then return a single object
// that used to communicate with the server
var genGame = new Client("localhost", 4000);
await genGame.Connect();
// create user and authenticate it
await genGame.AuthenticateDevice("dev-123");
// try to ping to the server
var resPing = await genGame.Ping();
Debug.Assert(resPing == "pong");
// create match and return GenGame.Game object
Match match = await genGame.CreateMatch(); // <---- save this match.MatchId somewhere so you can let other player join this game
// add callback OnChangeState, called when there is state update event
genGame.OnChangeState((dynamic payload) =>
{
Console.WriteLine($"there is update state with payload: {payload["chat"]}");
Console.WriteLine("test success");
});
await genGame.SetState(new { chat = "hi, from player 1" });
Let the 2nd player join the match:
var genGame = new Client("localhost", 4000);
await genGame.Connect();
await genGame.AuthenticateDevice("dev-456");
// join a game
string matchId = genGame.GetLastMatchId();
await genGame.JoinMatch(matchId);
await genGame.SetState({ chat: "hi, from player 2" })
If you want to build yourself, see this doc for more detail.