The Omega Simulation Framework
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin omega-cosmos-retrieve: print mining target in extended ship attrs Jan 3, 2015
examples Add minimal / basic universe example Nov 27, 2014
lib Fix few edge cases with axis-angle computation Dec 30, 2014
site UI: refactor jg trigger methods, invoke ship.update_jump_gfx Jan 1, 2015
spec Simplify towards movement strategy, update specs Dec 27, 2014
.gitignore Add Gemfile.lock to .gitignore Apr 6, 2014
.rspec Add special tags for integration tests, do not run by default Dec 25, 2014
.yardopts
API Update Omega JSON-RPC API document Mar 30, 2014
COPYING motel revamp, version 0.3 release Mar 14, 2010
DEBUG expand omega debugging/inspection interface Aug 30, 2013
Gemfile Add missing spec suite deps to Gemfile Jan 1, 2014
LICENSE Initial commit of the motel project Sep 9, 2009
README.md
Rakefile Update version in Rakefile Sep 28, 2014
omega.yml Comment updates, change default log level to info Sep 27, 2014

README.md

The Omega Simulation Framework

The Omega Project is a Universe Simulator accessible remotely by registered users over the JSON-RPC protocol.

This allows the most users and developers to access the universe and control ships / stations / other entities in via many mechanisms.

You can see an instance running on the Megaverse at megaverse.net

For a quick user tutorial see this. To run your own node on the Megaverse see the install document.

See the wiki for many other helpful links as well as screenshots & videos.

Overview

At the core of the simulation is omega-server, the process that is responsible for registering the Omega subsystems and listening for requests:

overview.png

Omega consists of several subsystems:

  • Motel - Movable Object Tracking Encompassing Locations - Tracks locations, in 3d cartesian space. The location's movement strategy periodically updates the location's properties. (eg along linear, elliptical paths, to follow another location, rotate, etc)

  • Users - User registrations, sessions, permissions, groups, etc

  • Cosmos - Manages heirarchies of cosmos entities, galaxies, solar systems, stars, planets, moons, asteroids, etc. Each cosmos entity is associated with a location tracked by Motel.

  • Manufactured - Manages player controlled and constructed entities, ships, stations, etc. Similar to the cosmos subsystem, each manufactured entity is associated with a location managed by Motel.

  • Missions - Manages high level recurring events and goals. Privileged users are permitted to create sequences of checks/operations which query/impact other subsystems.

  • Stats - Provides access to overall user and universe statistics. Other subsystems may write to stats here and/or read stats to modify operations.

  • Omega - Convenience utilities to bind the various server side subsystems together, and provides simple mechanisms which to invoke functionality via a remote client. This includes a simple dsl which can be used to setup a simulation as well as an event based interface which to query/manipulate entities.

Invoking

Entities may be controlled and subsystems may be queried via any programming language and transport protocol. See the Clients page on the wiki for more details.

The Omega Project also comes with an interactive web frontend based on WebGL (via three.js) and middleman. This is a completely optional component, an Megaverse node will run just fine w/out it, but if installed provides a rich view to the node(s) which its configured for.

See the Web UI and Tutorial wiki pages for more details.

Using

Generate documentation via

rake yard

To run test suite:

rake spec

Legaleese

Copyright (C) 2010-2014 Mohammed Morsi mo@morsi.org

Omega is made available under version 3 of the GNU AFFERO GENERAL PUBLIC LICENSE as published by the Free Software Foundation

Authors