I used Nakama in my previous workplace for a year for a project that was in development at that point. I then started using Nakama in my other personal projects and I suggest Nakama in places where I am giving service as a consultant.
Nakama is a powerful backend solution designed for real-time, social, and multiplayer games, offering robust scalability, easy integration, and essential features critical for modern game development.
| Product | Mindshare (%) |
|---|---|
| Nakama | 0.0% |
| Tomcat | 12.8% |
| Red Hat JBoss Enterprise Application Platform (EAP) | 10.3% |
| Other | 76.9% |
Nakama is specially tailored for game developers who need a scalable and efficient backend to support their online games. It offers a comprehensive suite of developer-focused tools for creating and managing real-time multiplayer games and social features. With seamless integration capabilities, game developers can quickly deploy Nakama's features, enhancing their game's functionality and user experience.
What are Nakama's key features?
What benefits and ROI should users look for in reviews?
Nakama's flexible architecture is implemented across industries such as gaming and entertainment, particularly for developers aiming to craft engaging online experiences. Its adaptability has seen it used in smaller independent projects to large-scale game launches, showcasing its relevance and efficacy in real-world scenarios.
| Author info | Rating | Review Summary |
|---|---|---|
| software engineer at a consultancy with 11-50 employees | 3.5 | I found Nakama excellent for rapid prototyping and matchmaking, saving significant development time and resources. However, open-source scalability limitations, Golang, and opaque pricing concern me for production. Users must understand project scale; my overall experience is 7/10. |
| Tech Lead at a computer software company with 201-500 employees | 3.5 | I use Nakama for my multiplayer games, valuing its ease of use and socket abstraction which saves my team time. However, I find Heroic Cloud's pricing high, documentation lacking, and customer support poor, leading me to rate it 7/10. |
| back end developer at a tech vendor with 51-200 employees | 4.0 | I've used Nakama for mobile game backend, appreciating its solid tournament and matchmaking features for quick new game setup. However, documentation is sparse, triggers are problematic, and fixed tournament structures limit flexibility. I'd recommend it for rapid development when resources are limited. |
I used Nakama in my previous workplace for a year for a project that was in development at that point. I then started using Nakama in my other personal projects and I suggest Nakama in places where I am giving service as a consultant.
Nakama positively impacts my organization by enabling us to move things forward from day one. With single node matchmaking, single node real-time sockets, backend services, and a nice UI, we can try things out and iterate faster during development, although when preparing for production, things change.
Nakama helps my team prototype and iterate faster. Instead of spending one to three months writing my own backend and matchmaking, I can start right away with Nakama, which represents a huge productivity gain at the start. However, transitioning to full production changes the dynamics significantly, potentially requiring me to buy or write my own features, which presents a different set of problems. The main productivity loss stems from Nakama being written in Golang, a language not commonly used in the game industry, as C# or C++ would be more familiar and result in easier development.
My main use case for Nakama is the backend and matchmaking, and matchmaking is the most important aspect of Nakama for myself. The other real-time transport and parties and groups are built into that project, which is why I consider Nakama instead of writing my own backend and matchmaking.
Matchmaking is by far Nakama's best feature. Matchmaking stands out for me because it is easy to deploy and get running, especially in contrast to Open Match, which requires a lot of work and setup to get things moving. Nakama provides this service in a simple manner, so I do not have to be a cloud engineer or backend engineer to set things up in order to have matchmaking.
The real-time capabilities, parties, and groups of Nakama are straightforward and fast for various use cases, particularly if I am developing my own multiplayer game and need a transport layer. Instead of using raw TCP/IP sockets, I can use Nakama's sockets, which simplifies the process, making everything go in and out from the WebSocket.
If I had the chance to improve Nakama, the first change I would make is to increase transparency about the project's scope, clearly advertising it as an open core project rather than a fully open source one.
Second, I would suggest using another programming language such as C# or C++, which would be a lot better.
Third, I would consider providing a way to isolate the matchmaking feature, so if I only need that part, I should not have to deploy all of Nakama's features, allowing for further customization.
I have been working in the game industry for more than five years.
In my experience, Nakama is stable.
The scalability of Nakama is not very good if using the open source version, as it lacks distributed presence features. This means that to achieve scalability, I would need to pay Heroic Labs, which can be a deal breaker in scenarios where relying on a third party for hosting contradicts Nakama's promise of being easily hostable on our infrastructure.
Besides Open Match, I did not use any other solution, as Open Match is not a direct replacement for Nakama; rather, it is just a feature within Nakama.
I did not purchase Nakama through the AWS Marketplace; instead, I deployed it through EC2 instances.
I have indeed seen a return on investment, as during development, Nakama gave us a couple of months in time and reduced the need for another backend engineer in the game studio, allowing us to operate with just one backend person, which was me at that time.
We utilize Nakama's open core version, so there is no licensing work involved, and I consider the setup cost minimal since for small to medium project scopes, deploying on one EC2 instance works fine. However, I find Nakama's pricing high and not transparent, as obtaining pricing information requires contacting them rather than seeing a clear chart.
Before choosing Nakama, I evaluated other options, primarily considering writing our own backend against using Nakama itself, ultimately deciding on Nakama.
My advice for others looking into using Nakama is to thoroughly understand their project's scale and trajectory from the beginning, as the open source version may not hold up when the project grows, leading to the necessity of either purchasing their full package or switching to another provider, which can be impractical. I would rate this overall experience a 7 out of 10.
My main use case for Nakama involves a small multiplayer game where players can compete in small groups against each other, with a single winner.
Nakama fits into my multiplayer game by providing very good support for multiplayer games, which is why we chose Nakama, along with several features related to authentication, login, and saving additional players' data.
Besides multiplayer support and authentication, we have added custom things in Nakama; we have incorporated a lot of custom code, which is good about Nakama because it provides a very good way to add custom features in a flexible manner.
In my opinion, the best features Nakama offers include making live multiplayer games much easier, which stands out, especially when using Heroic Labs Cloud, and the abstraction of the socket connection that is typically very helpful in saving time during game development.
The socket abstraction specifically saves me time and effort because in other games I have worked on, we waste a lot of time customizing the socket abstraction and communication, but Nakama has that already in place with several libraries that allow easy integration into your own game.
Nakama positively impacts my organization by making multiplayer games much easier, which is a significant positive effect, although some people think the Cloud pricing is quite high, causing concerns.
Using Nakama has definitely helped my team save time and resources in measurable ways, such as faster development, particularly if we build multiplayer games according to their provided structure, although creating something with very custom features can be challenging.
I think Nakama could be improved by making features such as leaderboards easier to customize, and the documentation could be much better, covering more than just the success flow. The community is also small, making it hard to find specific solutions for issues.
I have used Nakama for about two to three years.
In my experience, Nakama is quite stable.
Nakama's scalability so far can handle growth well, as our growth has been fairly organic during the day, but I am unsure how it behaves under spikes, such as if we suddenly double our user count.
Customer support for Nakama has not been that good based on my experience when we reached out to them.
Previously, we had a custom solution built by ourselves, but it was much harder to develop, requiring many developers and being more challenging to maintain and deploy, making Nakama a much cheaper option.
Before choosing Nakama, we evaluated several other options, including some on Azure Cloud such as PlayFab and others whose names I do not remember, but in the end, we decided to try Nakama.
Nakama is free to use, but using Heroic Cloud comes at a different cost, which is currently considered too high internally, as many people feel it does not match the service provided.
My advice for others looking into using Nakama is that it is a good option despite being a bit pricey. I recommend evaluating different options as there are many good alternatives in the market depending on what you are building. I would rate this product a 7 out of 10.
I have been working in my current field for over three and a half years, focusing almost entirely on backend development in mobile game development. Nakama serves as our main use case across almost every module. We use it as our backend server along with the database and all of its tournament, leaderboard, and matchmaking modules. We also use it for notifications and the groups and clan structure. In terms of our industry, we use it for mobile games as a backend developed in Go.
Nakama's tournament and matchmaking modules have helped our games by providing tournaments that are structured very well, with the RPCs and endpoints already determined. This really helps us develop our customized versions of them if possible and focus more on the development and customization. The basic structure is solid, and the tournaments are really nice. Of course, they needed some improvements, such as a bucket structure, which Nakama does not have per se, so customization is needed. Matchmaking really helps us make the game more competitive.
Nakama has impacted my organization positively by making it really easy to start a new game. It gives you a structure, and it is not that hard to learn. The pace is really nice, but after some point, for some of our games, the customization needs pile up a bit more. It might not be that good for a large game, but it is really nice to have something in Nakama to start with if you do not have the power, energy, people, and time to build your own system.
The biggest problem we had was that while it has some really nice features, dealing with the tournaments and leaderboards and how they are fixed and static makes the development process a bit of a hassle. You cannot modify them; you just create a new one. So it is really problematic in that sense.
One of the problems I had with the features Nakama offers was a lack of documentation. You can find something in the forum or community chats, but the documentation can be more verbose or detailed. One of the problems I had was with the triggers. The triggers are embedded in Nakama and you just call them. You can set up these triggers before joins, before leaves, or before a certain event, but they might trigger more than once, and it is not really smooth in terms of usage and the experience I had. I had to double-check and somehow deal with a custom breaker myself.
Nakama can be improved in the areas I mentioned, such as the triggers and the tournament system lacking a bucket. The triggers lack a smooth experience as they trigger more than once and it is not really clear how to deal with them. The tournaments are lacking the bucket system, and the documentation needs to be improved and be more detailed.
I have been using Nakama for almost two and a half years now.
My advice to others looking into using Nakama is to go ahead and use it if you do not have time to figure out your own system. You can migrate to your own system if needed. I cannot tell any specific example or metric regarding time saved, but in just a few hours, you can get a new game and a server with many features. The basic features you expect from a simple mobile game are there, and you do not have to reinvent the wheel all over again. It is really nice to have it available. I would rate this product an 8 out of 10.