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.
The easiest route - we'll conduct a 15 minute phone interview and write up the review for you.
Use our online form to submit your review. It's quick and you can post anonymously.
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.