Sobre el proyecto

Nakama es un servidor backend de juegos de código abierto diseñado para juegos y aplicaciones sociales y en tiempo real. Según su README, ofrece usuarios integrados (registro e inicio de sesión mediante redes sociales, correo electrónico o ID de dispositivo), almacenamiento para registros y ajustes de usuario, un gráfico social con amigos y grupos, chat 1 a 1/grupal/global con historial persistente, multijugador en tiempo real y por turnos, tablas de clasificación, torneos, grupos (parties), validación de compras y notificaciones dentro de la aplicación. El servidor se puede extender con código de tiempo de ejecución personalizado escrito en Lua, TypeScript/JavaScript o Go nativo. También incluye un buscador de partidas (matchmaker), panel de control, métricas y otras funciones descritas en la documentación oficial. Nakama se comunica a través de gRPC o una alternativa REST HTTP/JSON para peticiones y respuestas, y WebSockets o rUDP para tráfico en tiempo real. Requiere CockroachDB u otra base de datos compatible con el protocolo de Postgres. El desarrollo local se puede iniciar rápidamente con Docker Compose o ejecutando binarios nativos. La configuración con binarios implica iniciar la base de datos, ejecutar nakama migrate up --database.address ... y luego lanzar nakama --database.address .... El servidor emite registros JSON que describen su configuración. Una consola Nakama Console basada en web está integrada en el binario único del servidor. Se puede utilizar para inspeccionar datos almacenados a través de las API del servidor, ver métricas del servicio, gestionar datos de los jugadores, actualizar objetos de almacenamiento, restringir el acceso con perfiles de permisos y ver características en tiempo real como partidas multijugador activas. La consola está disponible por defecto en http://127.0.0.1:7351. Existen bibliotecas de cliente oficiales para .NET (C#), Unity, JavaScript, Java (con Android), Unreal, Godot, Defold y Swift (con iOS). El proyecto se puede desplegar en proveedores de la nube como Google Cloud, Azure, AWS, Digital Ocean, Heroku o una nube privada; el README recomienda nodos separados para Nakama y CockroachDB. Heroic Cloud se ofrece como una opción de despliegue gestionado. Los colaboradores pueden compilar desde el código fuente utilizando Go. El repositorio incluye las dependencias y admite compilaciones sencillas con go build -trimpath -mod=vendor. Las compilaciones completas desde el código fuente implican instalar Protocol Buffers, gRPC, grpc-gateway y las herramientas de buf, para luego regenerar el código con ./buf.sh. Las pruebas unitarias y de integración se ejecutan mediante docker-compose-tests.yml. El proyecto está bajo la licencia Apache-2.0.