The Artificial Life (A-Life) engine that has been used since TechnoSphere's inception to simulate the environment and the animals within it has been redesigned and is currently under development. The new Get-A-Life engine has a flexible structure that should provide a greater longevity than its predecessor by permitting extensions and enhancements to be added with minimal effort. However, initially only those features necessary to emulate the current engine's functionality will be used.
The use of time within the simulation is now much more rigid. Whereas the simulation progress is currently measured by graphical frames, the new engine deals with hours, minutes and seconds. Consequently days, months and years have been introduced but their relationships do not have to reflect those of our natural environment, e.g. all months may have 30 days. The day is composed of 4 discrete phases: night, dawn, daylight and dusk. This will enable future work to modify animal behaviour based upon the time of day - at present it is daylight all of the time.
A whirlwind is already a feature of the current engine but this idea has been generalised into the idea of natural disasters which may plague TechnoSphere at random times. The effects upon the environment will vary depending on the typ e of the disaster.
It is possible that multiple environments will be supported, connected via portals through which the inhabitants may pass. The framework to support mediums other than land, i.e. sky and water, is also being put into place.A number of different type of organisms inhabit the environment and may be classified as either animals, plants or viruses.
In order to cater for possible future additions, such as creatures that fly, the basic herbivore/carnivore distin ction has been extended and the method of locomotion represented separately. Three types of locomotion are accomodated: walk, fly and swim - although only walking will be implemented initially. By combining the method of locomotion and one of the basic animal types it is possible to describe animals that fly but are carnivorous (e.g. vultures), or plant-eating fish, etc. The current land-based herbivore has been given a new combined type of Grazer, whilst the existing carnivores will be classed as Prowl ers. Other categories of animal can be introduced as and when needed.
The model that underlies the animal's behaviour is based around acquiring and expending energy. Different food sources provide different amounts of potential energy and the amount of energy consumed by a given activity also varies. The six basic activities are foraging, mating, procreating, playing, sleeping and evading. The last activity is unique since it is only ever initiated as a response to a threat, i.e. being stalked by a p redator.The anatomy of an animal remains unchanged but the attributes associated with each body component are new and it will be possible for their creators to tweak them (within predefined limits) when designing the animal. The creators have no control over how the off-spring of their animals develop.
The type of vegetation available for consumption by herbivores is currently plain old grass, but it is now possible to introduce different plant types into the environment and m ake certain animals dependent on one or more types of plant. As with animal types, the new engine will initially mimic current functionality by only having one type of grass. However, the height of the vegetation will now be modeled, thus opening up the possibility of it being used as cover from potential predators.
A new type of organism in this version is a virus which may infect plants and/or animals. Potential applications include making food inedible, altering animal b ehaviour, etc. It is unlikely that this feature will be used in the first version of the new engine.
The Java programming language was seriously considered as the implementation language for Get-A-Life but there were concerns about speed and memory consumption. Speed is vital in order to simulate the large number of animals present in TechnoSphere (~30,000) and without native machine-code translators for Java, performance would suffer. Due to scant interpret er information it was also not possible to estimate the memory required at run-time. No doubt these two problems will be resolved in the future at which time Java will be reconsidered. For the time being, C++ is being used and efforts are being made to hopefully aid an easy translation into Java if and when this becomes feasible.
Back to New Information page.
Back to Artificial Life Developments page.
Back to Information p age.