A lot has changed since we first released our C++ Client Library in 2019. We’ve added several new client libraries, expanded documentation for the Unity, JavaScript, Godot, and Java clients (with more to come), many new versions of Nakama, and launched some new products in Heroic Cloud and Satori.
During this time the C++ client library has proved a popular choice for many studios and independent developers. With that in mind, we decided it was time to make some much needed improvements and are happy to announce the release of our re-architected C++ Client Library!
As Nakama has evolved over time, and as the needs of our developer community have grown, it became clear that there were many areas we could improve upon from the initial version of our C++ client library.
The original client was written in three layers: C++ with a C layer on top, and then an additional C++ layer on top of that. This yielded a too-large library with complex and unwieldy dependency management and build system.
The end result was a library where maintaining support for multiple platforms became a big pain point. Compounding these pain points was the deprecation of a dependency used by the HTTP and Websocket libraries.
Taken all together this meant a large refactoring was in order, so we rolled up our sleeves and got to work!
More important than what’s new in this version is what’s missing - nearly two-thirds of the original codebase!
The layered approach has been removed, no more intermediary C layer needed as we now compile our library with the same compiler as Unreal Engine, making support for multiple platforms a breeze.
A complete rework of the build system has been done, including the following:
A new CI pipeline was also added to take advantage of the new build system, and the ability to build for multiple platforms at once.
The dramatically simplified library, new build system, and improved CI pipeline mean support for multiple platforms is now easily achieved, including:
To go along with the new library we’ve added a comprehensive new C++ Client Guide to our documentation, using a mock-game format walking you through all Nakama features.
At Heroic Labs we’ve always been committed to growing and supporting the open-source ecosystem for GameTech, and that hasn’t changed. This new C++ library and the Unreal client library for which it serves as a base remain fully open-source, as they always have been.
We hope the new client library makes it easier than ever to get started and build your dream games with Nakama! Join us in the Heroic Labs Forum and let us know what you think.