EventHorizon

Game Development Platform

EventHorizon

Game Development Platform

Request Access and begin your own journey in Game Development.

What is the EventHorizon Game Development Platform

The EventHorizon Game Development Platform is a service provider for a standard collection of game development infrastructure. The platform provides a set of services that can be used to create a game. The platform is designed to be a managed service, allowing for a game developer to focus on the game development and not the infrastructure.

The Platform provides a set of tools to help with the development of the game, like a browser based editor, and a set of tools to help with the development of the game. And as the platform is shared between owners the distribution of the game is also managed by the platform, giving every game a shared user base.

Infrastructure Overview

The infrastructure is broken up into multiple levels. The platform is broken up into to Game Platform and Base Infrastructure services. The Games Platform are managed service providing an Editor and Distribution network for a developed game. The Base Infrastructure are shared services that all Game Platform as built on top of.

High-Level Platform Infrastructure

Game Development Platform Infrastructure Diagram

The Platform is deployed on a Kubernetes Cluster, this give the platform the flexibility to deploy multiple Owner Platforms managed by completely different users. Also built into the infrastructure is Platform provided services; the Cloud Platform, Identity Server and Monitoring. These services are used by all Owner Platforms, giving a shared user base and allowing for a single login to all Owner Platforms.

This setup allows for the separation game specific instances, also allowing for efficient usage of raw compute resources. Using Kubernetes also enables rolling updates to an owners platform, giving a near zero downtime of the infrastructure and services.

Platform Infrastructure Layer

The Platform Infrastructure layer is the base layer of the platform, this layer is shared between all Owner Platforms. This layer contains the Cloud Platform, Identity Server, Monitoring services and any other shared services.

Identity Management

The Identity Management service provide the platform a single source of truth for all user information. This service is used by all other services to authenticate and authorize users. The Identity Management service also provides an Owner Platform authorization workflow that each user must go through before they can access an Owners game. This layer of authorization allows for an Owner to control who has access to their game.

Cloud Platform Service

This is the central Dashboard for platform administration, platform owners can use the dashboard to get access to their Owner Services. Platform administration is also done here, like the approving of new registration requests or starting platform update request. The Cloud Platform service provides all the information about the platform, like the current state of the platform and the current state of the Owner Platforms.

Owner Platform Layer

The Owner Platform layer is an architecture isolated part of the Kubernetes Cluster created just for the Owner. This layer contains the Owner Platform, Editor, Game Client and Game Server services.

Client/Editor Server

The Client/Editor Server is the main entry point for a player or developer to access the Owner platform. This service hosts a client side application that is used to access the Editor and Game Client. The Editor is a browser based application that is used to manage the game, like managing a Zone, Scripts, Players, Agents, Assets, etc.

The Editor is ued to manage Game Assets; scripts, images, models, etc. The Engine service contains all the base logic to interface with the rest of the Platform. The Editor also contains a variety of tools that can be used to easily manage the platform, for zones you can edit files directly on the file system, and update static work entities in a zone.

Asset Server

This server is a centralized location for all game assets, like terrain textures, player models, and pixel/vertex shaders used by different platform features. It has an API used by the editor that will allow for custom assets to be uploaded and exposed to the Game client as assets. The Game Server Exports are also stored here, allowing for a single location for all game assets, that can then be transferred to new Game Servers.

Core Service

The Core service is the the central service all other services interface with. This service returns the details about a client connection, like their state in the Platform and Zone location information. Zone services will also connect and is used for keep alive and connection information about other platform services.

Zone Service

The Zone service contains all the Game related assets, this can be though of as a shard of a greater game. The zone server contains unique information about what a Client will interact with in the game world. The Zone server contains connections to the Agent and Player services so multiple Zone servers can have a shared state of the game world.

The Zone server also contains a connection to the Core service, this connection is used to keep the Core service up to date with the current state of the Zone. The Zone server houses logic specific to its Zone, like the Zone Terrain, Assets, Scripts, Logic, GUI, etc of the game world helping to localize the state of the world in a single Server instances. The Server Scripts are used to run logic on the server, like when a player enters a Zone, or when a player interacts with an Agent. The Scripts are written in CSX/C# and can be hot reloaded while the server is running.

Configuration for the different systems, services, and scripts are JSON based, allow for human readable configuration. Most if not all the configuration can be edited from the browser based Editor, more details to be provided by the Editor Server section.

Player Service

The Player service hold all of the player/client information for the Owners platform. As details about a player for a Platform change, this service will make sure it is persisted between logins, and platform updates. These details are used to keep track of the player, like their current Zone, and any other details not zone specific.

Agent Service

The Agent services hold information about Global Agents, these agents are similar to traveling NPC's, and are more of a template to be used for global NPC's on the platform. They are just like other Agents in a Zone, but have their details stored in the Agent service, and not in a Zone. This service allows for multi-server game environments, this allows for a single NPC to move between different game zones.

An unhandled error has occurred. Reload 🗙