Skip to content

Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK.

License

Notifications You must be signed in to change notification settings

softsouthwind/pitaya

This branch is 5 commits ahead of, 288 commits behind topfreegames/pitaya:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

053dc61 · Jan 7, 2021
Jan 7, 2021
May 7, 2020
Dec 10, 2020
Jan 2, 2020
Dec 4, 2020
Mar 19, 2019
Jan 2, 2020
Dec 10, 2020
Mar 19, 2019
Nov 13, 2019
Jan 2, 2020
Dec 10, 2020
Mar 11, 2019
Dec 26, 2020
Apr 23, 2018
Mar 19, 2019
Sep 22, 2020
Dec 15, 2020
May 17, 2019
Dec 30, 2019
Dec 3, 2018
Sep 13, 2019
Jun 27, 2018
Apr 19, 2018
May 4, 2020
Jan 2, 2020
Aug 1, 2018
Dec 26, 2020
Jan 30, 2019
Mar 19, 2019
Mar 7, 2019
Apr 20, 2018
Nov 27, 2018
Mar 19, 2019
Dec 26, 2020
Sep 13, 2019
Apr 19, 2018
Mar 6, 2019
Aug 7, 2020
May 14, 2019
Jun 27, 2018
Jun 27, 2018
Mar 20, 2018
Mar 13, 2020
Sep 13, 2019
Nov 13, 2019
Nov 13, 2019
Mar 18, 2019
Apr 10, 2018
Jan 7, 2021
Jan 2, 2020
Sep 27, 2020
Dec 3, 2018
Sep 27, 2020
Sep 17, 2018
Aug 14, 2018
Aug 14, 2018
Mar 15, 2019
Dec 26, 2020
Sep 27, 2020
Sep 17, 2018
Mar 19, 2019
Mar 19, 2019
Apr 10, 2018
Apr 10, 2018

Repository files navigation

pitaya Build Status Coverage Status GoDoc Docs Go Report Card MIT licensed

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.

Getting Started

Prerequisites

  • 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)

Installing

clone the repo

git clone https://github.com/topfreegames/pitaya.git

setup pitaya dependencies

make setup

Hacking pitaya

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.)

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"}

Running the tests

make test

This command will run both unit and e2e tests.

Contributing

#TODO

Authors

  • TFG Co - Initial work

License

MIT License

Acknowledgements

  • nano authors for building the framework pitaya is based on.
  • pomelo authors for the inspiration on the distributed design and protocol

Security

If you have found a security vulnerability, please email [email protected]

Resources

About

Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.4%
  • Makefile 0.6%