This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Getting Started

How to get started with Elympics Unity SDK?

If you’re looking for a different engine support, let us know on Discord!

Introduction

To create a game with Elympics, you need to know some key concepts in server authoritative multiplayer gameplay. Once you deploy your game to Elympics, it’ll be launched in our cloud at the same time with your players. This means that you only have to create your game code once, and we’ll do the hard work of synchronization.

Installation

First, get our Unity SDK here. Add it to your project using Unity Package Manager.

Setup

Once Elympics package is added to your project, you need to add Elympics object to your gameplay scene and connect it to your Elympics account. Once you add your game config, you’re ready to start development!

And here you can find detailed guide how to set up your first project!

Game modes

There are three game launch modes. Since Elympics basic principle is to let you create multiplayer with ease, but the game needs servers in realtime to launch - you’ll be able to launch it following modes:

  • Local Player and Bots - local gameplay, no external server needed.
  • Half Remote - play on the network, launching your game in server or client mode. Meant for development and debugging.
  • Debug Online Player - directly connect to Elympics-hosted game - the same mode that will be used in production!

How to learn more?

To learn more about our Unity SDK details, go to Unity SDK Documentation. To get started and jump right in, check out one of our great Tutorials.

1 - Adding Elympics to your game

How to setup your new game running on Elympics?

Download the SDK and add it to your project

First, you need to download the Elympics SDK to your Unity Project. This is where the magic happens ๐Ÿ”ฎ! To do that, open Package Manager (in Window). Then press Add package from git URL, and download Elympics Unity SDK from this repository: https://github.com/Elympics/Unity-SDK.git.

Download Elympics SDK

If all goes well and the project compiles, you should have some new items in the menu bar. ParrelSync and Tools (with Elympics hidden inside).

Create the game

The next step is to configure a game in Elympics Cloud, so that we can connect our game instance to the cloud object and correctly synchronize it. To do that, login in Elympics web panel at https://panel.elympics.cc/ by creating a new account, or using credentials provided. Create a new game, selecting an appropriate server fleet. We’ll be using premium fleet in this tutorial.

Panel game settings

Login to Elympics in Unity

Now it’s time to create the config in your Unity game! Get back to unity and go to Tools -> Elympics -> Manage games in Elympics and log in with your Elympics credentials.

Unity log in

After a successful login you should be able to see more configuration:

Unity logged in

Press the Synchronize button in order to fetch your game configurations:

Unity syncrhonized

Local game config

We’ve successfully fetched network config for the game. Now we can create a local game config, that your game instance will use in runtime. To do that press Create first game config! button.

Unity config new

A local game config has been created (those are assets inside your project now). Now just copy the game name and game id from the ones fetched from the network into the local settings. Also, select your gameplay scene. This will be the scene that Elympics will open when players are connected to the match. Also this is the scene that will be run on the game server instance.

Unity config done

Add Elympics to your scene

In order to use Elympics during gameplay, we need to add main Elympics object (prefab) to our gameplay scene. To do that, right-click in your scene hierarchy and select ElympicsSystem.

Elympics System

That’s it! ๐ŸŽ‰ You’re all done with the game configuration!

2 - Run games locally

How to run multiplayer games locally?

Development time

We’re working on multiplayer games, however during development it’s easiest and quickest to work locally. Elympics supports 3 distinct run network modes when running from the gameplay scene in Unity Editor:

  • Local Player and Bots - run server, player and bots locally on single Unity instance with no networking. This is the easiest, but often most misleading mode. Good for anything outside of gameplay, such as UI, graphics and sound design.
  • Half Remote - run the server, players and bots separately with simulated networking. Best for gameplay development - provides a semi-realistic game behavior with relatively quick testing cycles - you’ll probably spend most of the time using this mode.
  • Debug Online Player - directly connect to Elympics-hosted game instance - the same mode that will be used in production. Remember that in order run it this way, you’ll need to upload your Linux game build first. Its main use case is debugging.

Half remote mode

Half remote mode will allow us to run both server and client games between multiple editor instances and/or game builds. In our case, one of the editors will act as a server, and all others will join as players (clients). Here comes a very convenient package bundled with Elympics: ParrelSync.

In order to create another editor, launch ParrelSync -> Clones Manager and add a new clone of your game by clicking Create a new clone. This can take a while. After it’s done, you should be able to see two clones of launchable Unity instances.

Two Clones

In some cases in order to test your game, you’ll only need 2 distinct clones (one for the server and one for the player). So let’s Open in New Editor in Clone 0 options โ€“ this will launch another Unity editor with the same exact project, that will be the player during our tests.

With 2 editors open (root and clone), we need to specify which of those is the server, and which is the client. To do that, let’s launch Elympics Config by going to Tools -> Elympics -> Select or create Config.

In that inspector window you should see one ElympicsConfig with all its settings. After scrolling to the bottom, make sure that Mode is selected as Half Remote, and Player 1 should have Is Bot option checked.

Change to half remote

So: let’s set the main editor as Server in half-remote mode.

The second editor (Player 0), edit the same settings and set it as player, and connect to your loopback IP (the same as in the screenshot below):

Static options set for half remote

Player 1 should be set as bot, so that we’re able to start the game with only one player. Alternatively, you can create another editor clone and launch it as the second player.

That’s it! We should be able to run our game! ๐ŸŽ‰

First, start Play mode in the editor that was configured as the server. Once it starts, do the same in the clone editor (player). The two instances are connected, and you can debug the game state as it’s being actively synchronized between instances of the Editor, in a very similar way to the production environment.

3 - Run games remotely

How to run your game in the cloud?

Overview

Game in Production and in Debug Online Player is run in this remote mode.

In order to run the game in the Cloud, Elympics needs a Linux-Mono version of your game. Fortunately, it’s really easy to create and upload it! You can do this manually or from your CI system. Remember to keep a versioning convention that you understand, because running mismatched game logic in the cloud and locally can lead to really strange and unpredictable bugs ๐Ÿ›

Build and Upload

It’s really easy! Go to Tools -> Elympics -> Manage games in Elympics. Set your unique game version that will identify this build. Remember to deliver the same build to your players, with the exact same game version

Game Version

Once you set your version, just press Upload. Unity will build your game and your bot for Linux-Mono, and then upload the build to Elympics Cloud, so that it can be later run for your players!

Once the game is successfully uploaded, you’ll be able to run the game in both debug and production mode!

Upload done Upload panel

Run

Remember, that in order to run the game in the cloud, Elympics needs to go through the whole match allocation process. In order to do that, you need to go through matchmaking from the menu scene, so that we can allocate an appropriate game server instance.

This section needs more info.