Microservices - Overview

Create and deploy server-authoritative C# [CLCP-Microservices-01]

Beamable's Microservice Feature is custom-built to provide the best workflow and performance for game makers.

A microservice architecture, or "microservice", is a solution of developing software systems that focuses on building single-function modules with well-defined interfaces and operations. See Wikipedia for more info.

🚧

Microservcices DotNet requirements

Microservices now requires DotNet 6 to be installed locally on your machine for debugging. You can acquire this directly from Microsoft.

Beamables Microservices

Like never before, programming a server-authoritative feature feels like a natural extension of your favorite client-side tools and workflows — powered by Beamable Microservices.

Benefits

  • Highly maintainable & testable
  • Loosely coupled
  • Independently deployable
Now all your code lives in one place — shared between client and server.

The Microservice code is checked in alongside your client code to version control. With Beamable, there is less code since the system shares and serializes all client/server data structures.

Comparison

Beamable
C# Microservices

Amazon AWS Lambda

GameSparks
Cloud Code

Microsoft PlayFab
Cloud Script

C# Client Code

✔️

✔️

✔️

✔️

C# Server Code

✔️

Full Debugging Support
(Debug.Log, Breakpoints, etc...)

✔️

Source Control Integration

✔️

Runs Locally During Development

✔️

Unity Workflow
(ScriptableObjects, etc...)

✔️

There are trade-offs as well. Games using server technology like Microservices must be connected to the internet, each server-side operation call is slower than a client-side operation due to network latency, and there are fees incurred to host or use servers.

Server-Authoritative Benefits

Typically in game development, game code is on the game client. This is a client-authoritative approach. Moving functionality to the back-end is a server-authoritative approach. There are pros and cons.

Invariably — today's games grow to need server-authoriative code.

Comparison: Client vs Server Benefits

Client-Authoritative

Server-Authoritative

Speed Of Development

✔️

Speed At Runtime

✔️

Speed To Release Updates

✔️

High Security (Anti-Cheat)

✔️

Compatible Beamable Features

Beamable provides an SDK that enables game makers to easily add social, commerce and content management Features.

The available features vary by context.

API Entry Points

  • C# Client Code - Access via Beamable.API from a context outside of Microservices
  • C# Server Code (Microservice) - Access via Services from a context inside of a Microservice

Feature Comparison

📘

Related Features

More details are covered in related feature page(s).

Microservice Storage - Create and deploy a native Mongo database which we host

Advanced

This section contains any advanced configuration options and workflows.

Code Generation

The Microservice feature relies on automated code generation.

Each time the game maker edits and (re)saves any child class of Microservice (e.g. "MyMicroservice") an equivalent class is (re)generated as a child class of MicroserviceClient (e.g. "MyMicroserviceClient"). This workflow is provided for ease-of-use.

🚧

Gotchas

Here are hints to help explain some of the trickier concepts:

  • The code generation requires that compiler errors exist. If a compiler error occurs (especially those related to Microservices) follow this process;
  1. Temporarily resolve and/or comment-out the code causing any compiler errors
  2. Allow the automated code generation to occur
  3. Resume development

Did this page help you?