This Unity sample project demonstrates the features of the Nakama server by Heroic Labs.
Nakama is an open-source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much more.
These docs provide everything you need to download the Unity game, run the Nakama server, and play "Pirate Panic".
The repo includes these scenes for the sample game project.
- Scene01MainMenu (Source) - This is the main entry point for the game. Play this scene first.
- Scene02Battle (Source) - The core game loop.
The game centralizes some values which are intended for tweaking and experimentation by game developers.
- GameConfiguration (Source) - Stores commonly used values which may be changed at edit-time and runtime.
- GameConstants (Source) - Stores commonly used values which may be changed at edit-time.
The Docker Engine is required. Follow the Heroic Labs quickstart guide.
To start the game server and database once Docker is setup navigate to the .\ServerModules
folder and run:
docker-compose up
The Unity Editor is required. Download it from Unity3d.com/get-unity/download.
- Open the Unity Project of
./PiratePanic/
in Unity Version 2020.3.7f1 or higher. - Open the Unity Console Window (Unity → Windows → General → Console). Confirm there are no warnings or errors.
- By default, the game will attempt to communicate with port 7350 of localhost, which is the default Nakama HTTP port. If you'd like to change your host or IP, you can do so when constructing the client: https://github.com/heroiclabs/unity-sampleproject/blob/master/PiratePanic/Assets/PiratePanic/Scripts/Scene01MainMenuController.cs#L101
Standalone Build Play Session
- Open the project in the Unity Editor
- Make a Unity Standalone Build (e.g. WindowsStandalone)
- Mac OS users will need to temporarily change the bundle identifier prior to building. On Mac OS, Unity shares .plist files between the editor and the standalone build.
- Run the Standalone Build of Pirate Panic
- Click "Battle"
Unity Editor Play Session
- Open the project in the Unity Editor
- Open the scene of
./PiratePanic/Assets/PiratePanic/Scenes/Scene01MainMenu.unity
- Run Unity Editor for Pirate Panic
- Click "Battle"
Now the Standalone is playing against the Unity Editor. Enjoy!
GitHub issues and pull requests are welcome. If you're interested in enhancing the code please open an issue to discuss the changes or drop in and discuss it in the community forum.
To modify the Typescript remote procedure calls (RPCs), install Node Package Manager (NPM), run npm install
and npx tsc
from the ServerModules
folder, and restart the server.
More documentation on working with the Nakama Typescript runtime can be found here: https://heroiclabs.com/docs/runtime-code-typescript-setup/
This project source code and documentation is licensed under the Apache-2 License. All images, graphics, and other non-code resources are licensed under CC BY-NC-ND. Please reach out on a GitHub issue if you have any questions.
All 3rd-party assets and libraries used in this project retain all rights under their respective licenses.