Pitaya is an simple, fast and lightweight game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. It provides a basic development framework for distributed multiplayer games and server-side applications.
- Go >= 1.16
- etcd (optional, used for service discovery)
- nats (optional, used for sending and receiving rpc)
- docker (optional, used for running etcd and nats dependencies on containers)
clone the repo
git clone https://github.com/topfreegames/pitaya.git
setup pitaya dependencies
make setup
Here's one example of running Pitaya:
Start etcd (This command requires docker-compose and will run an etcd container locally. An etcd may be run without docker if preferred.)
cd ./examples/testing && docker compose up -d etcd
run the connector frontend server from cluster_grpc example
make run-cluster-grpc-example-connector
run the room backend server from the cluster_grpc example
make run-cluster-grpc-example-room
Now there should be 2 pitaya servers running, a frontend connector and a backend room. To send requests, use a REPL client for pitaya pitaya-cli.
$ pitaya-cli
Pitaya REPL Client
>>> connect localhost:3250
connected!
>>> request room.room.entry
>>> sv-> {"code":0,"result":"ok"}
make test
This command will run both unit and e2e tests.
#TODO
- TFG Co - Initial work
- nano authors for building the framework pitaya is based on.
- pomelo authors for the inspiration on the distributed design and protocol
If you have found a security vulnerability, please email security@tfgco.com
-
Other pitaya-related projects
-
Documents
-
Demo