Chapter 6. Architecture

Table of Contents

Parts of the G System
Evolution and the G System - putting it together
The G Core System (GCS) - defining the element structure
Objects, element data
Interaction between elements - influence handling
Hierarchical world structuring
Some notes on the GCS
The G World Engine (GWE) - connecting elements
The Purpose of the GWE
GWE Design
Network Infrastructure
Elements and the GWE
Clients and GWE Servers
GWE Sepcifications and Protocol
GWE as a GCS Container
GWE network communication behaviour
XML Constructs for GWE Communication
G Basic Elements (GBE) - bringing the system to life
Deterministic Random World Generation
Element hierarchy management
The G Client Engine (GCE) - making it visible
G Universe Server
G Universe Client
Agent Plugin Architecture
Plugin management in the GWE
Developing an agent plugin



When reading about the architecture of the G System, you will probably find many uncommon and new aspects of software development. This is mostly because of the quite uncommon purpose this project works on. Nevertheless, we feel that the G System fills a gap in both social and scientific areas that require some attention. So the purpose of the technical implementation is to model life (or evolution, both are the same), and is thus not a means by itself. This can result in a somewhat uncommon but highly fascinating software design. Note that this is the purpose of the G Universe, you are free to model any kind of simulation with the G System Framework.

Parts of the G System

First, we should take a look at what parts constitute the whole system. The G System is modularised to allow for easy and flexible application development. Here is a brief overview.

  • The G Core System (GCS) defines the basic structure of the world. This includes the representation of objects in a world (called "elements") and the structuring of the world itself with those elements.

  • The G Basic Elements (GBE) already provides basic parts for element creation, allowing for faster application development.

  • The G World Engine (GWE) is responsible for element management. This means communication between elements, network transparency and database connectivity.

  • The G Client Engine (GCE) contains all things that have to do with the user interface.

There are also some individual applications that build on the G System framework and are part of the project:

  • The G Demo, which serves as a testing framework and for showing the basic functionality of the system.

  • The G Universe is the virtual world implementing all aspects and concepts of the G System in a living application. It is a WAN-distributable, highly scalable and flexible client-server architecture, consisting of the G Universe Client and the G Universe Server applications that utilize the G System Framework The G Options Dialog (GOD) application is a configuration and management utility for the G Universe.

Evolution and the G System - putting it together

The G System was designed to represent evolution. As such it has to retain incredible flexibility to represent almost everything in a consistent way. The high level of abstraction which is reached in the G Core System provides this flexibility and still allows for consistent rule systems. Energy represents matter, form represents form, agents represent the interactions that occur between the elements of the system. The hierarchical structure ultimately leads to the conclusion that every element is after all part of the universe and is thus in some way one with and/or connected to all existing elements. This is only a very basic interpretation of the Core System but is valid in general.

It is a long way from a view of life/evolution to creating software from it. The G System tries to provide an as perfect as possible framework for this modelling work. It does not dictate how the modelling of evolution should be done on a detailed level. Nor does it dictate how any particular simulation should be implemented. Implementation is thus left to the philosophical thinking and scientific modelling capabilities of the involved people. If you feel the need to take part in such an effort to find/create a simulation of an issue so fundamental to humankind, you probably should get involved in this project.

G System Documentation Home