WARNING: This version has entered the deprecation flow described here, we strongly recommend to use the new version of Pitaya v2.x found in the main branch.
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.10
- etcd (used for service discovery)
- nats (optional, used for sending and receiving rpc, grpc implementations can be used too if prefered)
- 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 prefered.)
docker-compose -f examples/testing/docker-compose.yml 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