heroiclabs / unity-sampleproject

A sample game called Pirate Panic for Unity engine built with Nakama server.
https://heroiclabs.com
Apache License 2.0
141 stars 40 forks source link
game-server nakama

Unity Sample Project

Welcome to "Pirate Panic" !

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".

Table Of Contents

Nakama Docs

Scenes

Pirate Panic Game

The repo includes these scenes for the sample game project.

Constants & Configuration

Pirate Panic Game

The game centralizes some values which are intended for tweaking and experimentation by game developers.

Getting Started

1. Setup Docker

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

2. Setup Unity

The Unity Editor is required. Download it from Unity3d.com/get-unity/download.

  1. Open the Unity Project of ./PiratePanic/ in Unity Version 2020.3.7f1 or higher.
  2. Open the Unity Console Window (Unity → Windows → General → Console). Confirm there are no warnings or errors.
  3. 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

3. Play Against Yourself

Standalone Build Play Session

  1. Open the project in the Unity Editor
  2. 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.
  3. Run the Standalone Build of Pirate Panic
  4. Click "Battle"

Unity Editor Play Session

  1. Open the project in the Unity Editor
  2. Open the scene of ./PiratePanic/Assets/PiratePanic/Scenes/Scene01MainMenu.unity
  3. Run Unity Editor for Pirate Panic
  4. Click "Battle"

Now the Standalone is playing against the Unity Editor. Enjoy!

Contribute

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/

License

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.