All Projects → heroiclabs → unity-sampleproject

heroiclabs / unity-sampleproject

Licence: Apache-2.0 license
A sample game called Pirate Panic for Unity engine built with Nakama server.

Programming Languages

C#
18002 projects
typescript
32286 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to unity-sampleproject

nakama-docs
Documentation for Nakama social and realtime server.
Stars: ✭ 44 (-61.74%)
Mutual labels:  game-server, nakama
nakama-java
Android optimized Java client for Nakama server.
Stars: ✭ 26 (-77.39%)
Mutual labels:  game-server, nakama
Nakama
Distributed server for social and realtime games and apps.
Stars: ✭ 5,293 (+4502.61%)
Mutual labels:  game-server, nakama
Kudos
Kudos is a simple, high-performance, easy to expand and easy to deploy distributed game service framework based on microservice architecture, It is based on RPC of rpcx, supports pomelo communication protocol and can be easily applied to game development.
Stars: ✭ 132 (+14.78%)
Mutual labels:  game-server
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (+20%)
Mutual labels:  game-server
Dst Dedicated Server
Don't Starve Together dedicated server guide for all platforms (Linux, Mac, Windows) with Docker. Extensive documentation covering mods installation, server config and performance, world generation and setting up admins.
Stars: ✭ 187 (+62.61%)
Mutual labels:  game-server
Pss
This is a based plug-in framework that provides cross-platform IO and logically separated plug-in services.
Stars: ✭ 219 (+90.43%)
Mutual labels:  game-server
Gamepanelx V3
The Original Free and Open Source Game Control Panel
Stars: ✭ 122 (+6.09%)
Mutual labels:  game-server
Netcode.io.net
A pure managed C# implementation of the Netcode.IO spec
Stars: ✭ 201 (+74.78%)
Mutual labels:  game-server
Rhubarb
A WebSocket library optimized for multiplayer JS games, works on WebWorkers with binary data.
Stars: ✭ 167 (+45.22%)
Mutual labels:  game-server
Developer
Gameserver, Voiceserver, Rootserver Webinterface
Stars: ✭ 161 (+40%)
Mutual labels:  game-server
Goworld
Scalable Distributed Game Server Engine with Hot Swapping in Golang
Stars: ✭ 2,007 (+1645.22%)
Mutual labels:  game-server
Otxserver
OTX Server from:
Stars: ✭ 187 (+62.61%)
Mutual labels:  game-server
Rhisis
Rhisis is an experimental FlyFF MMORPG emulator built with C# 9 and .NET 5
Stars: ✭ 132 (+14.78%)
Mutual labels:  game-server
Tdengine
game server for Rust + Lua
Stars: ✭ 203 (+76.52%)
Mutual labels:  game-server
Valhalla
A Golang MapleStory (v28) server
Stars: ✭ 130 (+13.04%)
Mutual labels:  game-server
Stendhal
Stendhal is a fun friendly and free multiplayer online adventure game with an old school feel.
Stars: ✭ 194 (+68.7%)
Mutual labels:  game-server
Zero
A Lightweight Socket Service with heartbeat, Can be easily used in TCP server development.
Stars: ✭ 161 (+40%)
Mutual labels:  game-server
Game Server Configs
A repo of game server configuration files used by LinuxGSM
Stars: ✭ 157 (+36.52%)
Mutual labels:  game-server
Mqant
mqant是一款基于Golang语言的简洁,高效,高性能的分布式微服务框架
Stars: ✭ 2,200 (+1813.04%)
Mutual labels:  game-server

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

  • Nakama (Docs) - High-level overview
  • Unity Client Guide (Docs) - Unity setup

Scenes

Pirate Panic Game

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.

Constants & Configuration

Pirate Panic Game

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.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].