What is the G System?

Abstract

The G System is a C++/Qt based framework for simulation of virtual realities. The core library defines the structure of world content, so called elements, and defines the interface for so called agents which implement the behaviour of elements.

A world engine (GWE) is used for storage (DB), communication between elements and network transparency. The goal for the GWE is to build a hierarchical network distributed system that allows for huge worlds to be simulated. The structure represents the structure of the world itself like solar systems - planets - continents - areas - cities/lands - ...

We also build such a virtual reality with the system, it is called G Universe.

The G System in the World Wide Web

The main website of the G System project is http://www.g-system.at.

G System licenses

BSD style license (that means it's free and open source software) for all the source code except external libraries that are used, they have their own license (usually LGPL or BSD).

The documentation is available under the GNU Free Documentation License.

Overview of the G System Components

G System components:

  • GCS - G Core System (src/core)

  • GBE - G Basic Elements (src/basicelements)

  • GWE - G World Engine (src/worldengine)

  • GCE - G Client Engine (src/clientengine)

  • demo - a demo application for testing purposes (src/demo)

  • GOD - G Options Dialog for world engine configuration (src/god)

  • G Universe Server - lightweight app for running the GWE Server (src/guniverse)

  • G Universe Client - client frontend to the universe (src/guniverseclient)

The GCS (library) defines the element structure. Elements are the basic building blocks for world content.

The GBE (library) is a library of basic element parts (agents, influences, forms,...) that can be used to faster build new worlds.

The GWE (library) provides the execution environment for elements. This also includes the network layer as well as the DB interface. It makes interaction between elements possible in a network transparent way. Note that the interaction itself is handled by agents (part of the GCS).

The GCE (library) is responsible for user interaction. It represents the world content in a 3D environment and allows for user input.

All parts have full API documentation (for further reading).

The demo application shows the basic usage and features of the system and can also serve as a quick testing framework.

GOD serves as an easy to use graphical configuration utility for the GWE. You can create/modify configuration files and integrate a GWE Server into an existing server network infrastructure.

A simple startup application is guniverse. It can load existing configurations, written by hand or created with GOD, into the GWE and initialize it. guniverse is also meant to be usable as system startup application to initialize a GWE Server on system startup (rc script).

guniverseclient is the "user client" for the G Universe. It builds on top of the G System components (libraries) and provides an user interface to interact with user elements.

Project Goals

Goals as a library

Provide a simulation framework.

Goals as an Application

Simulation of evolution/life.

Eternal laws govern our life. They make evolution possible. The G System tries to catch these laws into usable software and create a virtual world that makes it possible to experience these.


G System Documentation Home