Skip to content

System Overview

Ex Machinis edited this page Nov 16, 2019 · 2 revisions

This document lays out the plans for developing Ex Machinis, an online space simulation, which promotes the acquisition of programming skills.

Plot

Ex Machinis takes place in a parallel universe where technology has advanced to the point where humans are using drones to mine and exploit the riches of the solar system. In an effort to spur extraterrestrial industries, governments are awarding citizens (new players) one-time grants of money and drones to take part in this economic expansion.

Given the high cost and risk of manned spaceflight, economic expansion into the solar system has come to be dominated by fleets of remotely controlled drones. Drones can accelerate and decelerate much faster than manned spacecraft allowing them to move quickly between distant points in space. Furthermore, drones require far less infrastructure than manned missions and fleets of drones can be effectively managed by a single programmer.

Much of the physical labor of drones is accomplished by smaller self-propelled bots which specialize in localized tasks like mining, construction, and repair. Drones are typically outfitted with pods, which launch and control bots that are equipped to perform specific tasks. Fleets of drones drive the modern economy by mining, refining, and manufacturing goods and technologies which benefit a largely Earth-based human population.

Although faster than light communications exist, they are much too expensive and cumbersome to be broadly deployed. Therefore they are generally only used to span the gaps between the earth and deep space trading hubs.

Key Concepts

Ex Machinis is an augmented reality space simulation in which players program and control interstellar drones in real time. Consequently, the simulation is able to adhere to several key principles:

  • Continuous gameplay. The player’s drones always remain in play and continue to follow their programs even while the owner is offline.
  • Realistic time scales. Although advanced technologies are able to compress the time it takes for drones to travel long distances and complete industrial activities, it is still expected that many activities will span the course of hours and days.
  • Communications limited to the speed of light. Communications with distant drones is not instantaneous.

Functional Components

Ex Machinis has several functional components which operate independently to support gameplay.

Mail Handler

The Mail Handler application runs continuously in the database to process incoming and outgoing emails. Incoming emails will be entered as new events in the Central Database and directed to the appropriate drones. Outgoing emails, generally originating from in-game drones, will be pulled from the events log at the appropriate time and forwarded to the owner of the drones.

Game Engine

The Game Engine is a server based application that runs constantly in the background to retrieve, process, and update game data in the Central Database. GE activities include:

  • Processing the compiled FORTH routines that are running in each of the drones.
  • Resolving the in-game actions taken by each of the drones in response to their programs.
  • Routinely updating the orbits of celestial data with information with data from a public registry.

Physics Engine

The Physics Engine is a small C++ application, which runs continuously in the background to compute and record the cartesian coordinates of orbiting bodies.

Event Engine

The Event Engine is a small C++ application, which runs continuously in the background to identify breaking events, check for errors, and determine which drones will become aware of these events.

Game Database

The Game Database is a server-side database that holds all game-related data. The database facilitates communications between the Mail Handler, Game Engine, and other applications that are running on the server. It is also a rich source of data for players and their drones.

Table of Contents

Clone this wiki locally