
As we have seen the GCS does nothing out of itself. In order to get functionality one has to create agents. Some basic classes of this kind are already available and can be found in the GBE (G Basic Elements) library.
The kind of classes you will find in this library mostly have to do with virtual worlds - world creation, element hierarchy management, physics, ... soon this library will also provide you with agents for evolution aspects. Some of the more important agents will be discussed in this section.
World creation is an interesting topic, some of the required
functionality is already implemented. The class
GBE::GDynamicGeneratorAgent class
provides functionality to generate a randomised
universe based on a deterministic random generator. As this
allows for a huge universe to be created, the generator can
create just as much as the current active elements (whether
they are intelligent computer driven beings or human users)
require. As these active elements start to explore other
parts of the universe the generator brings these parts
into existence - and by the time passed, these parts
can determine in what state they have evolved (age of solar
systems or planets,...). Parts of the universe that are not
inhabited by active elements are just put to "sleep" to save
computing power. This is sadly a limitation we have, but it
will have only a minimal (if at all) effect on the overall
simulation if handled correctly.
Now, if the G System is about evolution, how does this get along with a randomised universe? This is rather a philosophical question but as it must occur to some readers we will answer (part of it) it here. First we need to distuingish between form representation and physiological aspects of the universe. The deterministic random world generation is in the first sense a means to determine where to place what kind of elements. It is a completely different topic how these elements behave after their creation, which is not in any way determined by the generator. Also, if for example the generator determines that on a certain location in a solar system a planet should be placed then the planet is not necessarily just there but the created element can just be a divine energy in the area of the planet that slowly evolves into a planet - for example by attracting asteroids, fragments of dead planets, ... So the determination that on a certain location a planet should be, does not clash with the way how this planet comes into existance and evolves.
Another agent, GBE::GReparentAgent,
handles the hierarchical structure of elements. As discussed
earlier, the universe is represented in a highly hierarchical
structure - which is indeed necessary to allow for huge
universes to be functional. Thus a human being may be part of a
house while being inside. But if the human being walks out,
it will be part of the city or the surrounding landscape. In
order to handle the hierarchy changes properly, the reparent
agent observes positional changes and notifies all affected
elements when a change occurs. Details can be found in the
API documentation.