New Cocos library for Nakama - open-source, realtime game server

Hi everyone!

I’m Mo from Heroic Labs, we’ve had a lot of demand of late to provide an open-source client library for Cocos2d-x from the community to integrate with Nakama. I’m very pleased to announce a new generic C++ client as well as a bespoke Cocos2d-x C++ client library. You can find it open-sourced on GitHub and our documentation here.

For those who aren’t familiar with Nakama, it is an open-source server designed to power realtime and turn-based games of all types. Some of the features include:

  • Client-authoritative and server-authoritative multiplayer.
  • Complex matchmaking.
  • Tournaments / Leaderboards.
  • Friends and clans.
  • Social login.
  • Customise and override server behaviour using Lua or Go Plugins.
  • User accounts and storage.

And many more features to build a Clash Royale, Poker, Fortnite, Candy Crush, etc.

The server itself is fully open-source and we welcome any and all contributions! We have games running on Nakama that exceed over 30 billion API calls per month with some of our partner studios. The goal of Nakama has always been to democratise game development so that teams of any size, including indie developers or AAA studios can build their dream games without worrying about scalability and reliability on the backend.

Please feel free to ask any questions you have regarding the Cocos integration here, or join our public community channel in Gitter where fellow developers and our Nakama engineers hang out to answer questions and chat best practices.

We’ll also be at GDC next week, as well as Quo Vadis in Berlin and Reboot Conference in Dubrovnik in April. If you’d like to meet up with us, feel free to drop me a message and we can find some time :slight_smile:

6 Likes

Awesome! :tada:

1 Like

Excellent library. Recommended. I’m using it.
The server does not have a dashboard. I would like to see some stats like connected players, opened matches, players per match, etc, but as i know, the team are working on it for next release :ok_hand:

1 Like

@tranthor Yep - next release of Nakama will have the Developer Console with it. The attached mockups show a little bit of what is going to be included.

2 Likes

Thanks @mofirouz. Other question. As i know, Nakama currently works with TCP.
The team are thinking about support UDP soon?

It is on our roadmap but rUDP is a very complex topic and I don’t have a timeline as to when we’d start / deliver.

Also would be nice to support peer-to-peer mesh network to reduce load for servers.

Google Play Games supports it:

Internally, the room sets up a peer-to-peer mesh network between participants where clients can communicate directly with each other, rather than through the Google Play games services servers.

https://developers.google.com/games/services/common/concepts/realtimeMultiplayer#room_initialization

The server integrates the Lua programming language as a fast embedded [code runtime]
(https://heroiclabs.com/docs/runtime-code-basics/).

WOW, I would like to try this game server. :wink:

1 Like

Awesome. Does open source version support multicore clustering & multiple instance clustering?

@kiranb47 The server does definitely support multicore. :slight_smile:

You can cluster multiple instances behind a load balancer (as you’d typically do with any application). If you’d like to have intra-cluster traffic between nodes you’d need to explore the Enterprise version as it helps support our open-source business.

1 Like

Thanx for the Nakama game server.
Check please, cocos2d-x 3.17.1. (3.17 is fine.)
I’m not working on cocos2d-x 3.17.1 engine. (COCOS_CONSOLE_ROOT is 3.17.1)

Cocos 3.17.1 is also supported by nakama.