This document provides a concise guide to the current developments in the Noble Ape Simulation. Rather than giving a time frame for the new developments, this document describes the tasks that need to be undertaken and the goals they work towards. Like all forward looking documents, this may well be a historical artefact rather than a true development guide - but it should inform current users and potential developers of what is going on currently and in the near future.
The Noble Ape Simulation has changed dramatically over the past eighteen months. The past six months have shown how much can be achieved in a relatively short period of time with the minimum of development resources. The resilience of the Noble Ape Simulation and the benefit in planning and documentation through development is clear.
The pace of development hides sections of small delta changes - such as the move to a multi-window interface or the integration of Ocelot. The next six to twelve months will require substantial experimentation as well as the tried and tested progressive development and documentation. Many small changes build rapidly to produce new and diverse features.
In recent months, the Simulation has seen the active development of a number of new sub-projects to the Simulation. Like the Source Log, the integration of the Simulation development with Sourceforge has changed the way the Simulation is developed. To this end, there are at least four active sub-projects. This document will talk about;
Java Port of the Simulation
Generic Platform Interface - Integration and Development (including the Windows port)
Being Redevelopment (Linked Lists and Simulation Changes)
Modular Land Descriptions (Integrating Planet Noble Ape into the Simulation as a Module)
The Noble Ape Simulation was ported to Java in 1997 by Alex Pollard. Copyright to this work was purchased with a small portion of the Australian Film Commission grant in 1997 and the code remained relatively stagnant until the end of last year. Pollard's development came in two parts, a Java optimised version of the Ape's Brain simulation as well as the Ape/Island simulation. Whilst Pollard's port was incomplete and represented a source code base from 1997, it provided the basic criteria for development - it ran. From this base, and with relatively little experience in Java coding, I decided to rework the source to mirror the current Simulation core with a basic GUI interface. This development quickly presented itself as a web-ready means of displaying the Simulation with platform independence.
The Java development in recent weeks hasn't been totally smooth. All languages have idioms which have to be discovered and progressively worked around. When the Java version of the Simulation mirrors the current Simulation core with the GUI interface, the next step is to make the source network-able. The ability to have a number of linked Simulations through a simple website interface is still in the early stages of speculative development. Other components of the current development, including the being redevelopment and the modular land description should be ported to Java relatively transparently.
Generic Platform Interface
The GPI has been a progressive development over the past six months. Most of the functionality was defined for Mac last year, but a true Windows GPI version and the development of a GPI version of the Noble Ape Simulation has made it easy to port quickly to Windows. The GPI also allows a porting window for other developments internal to Noble Ape and external.
The future for the GPI, aside from porting to Linux/XWindows and potentially PalmOS in the near future, is to solidify the development. The GPI will not change in terms of number of windows/colour etc. These kind of features are beyond the scope of the GPI. The GPI may contain a file-I/O interface in the future. This is still un-decided. But the current relatively minimalist interface has been successful for speed of development. A relatively short list of features to implement encourages other developers to use the GPI both for their own developments and for porting to their platform of choice.
The existence of the Noble Ape has remained relatively static over the life of the Simulation. Concepts like death and energy were tested in the original Simulation environment but after 1997 these simulation components were removed for practical maintenance reasons. I have re-introduced these ideas into the Simulation. It has changed the look and feel of the environment in both colour and monochrome.
Although subtle, the need to gather food, the effects of hunger/drowning and the transition between day and night now have a more ominous feel to them. Death - the absolute end to the Ape - requires a linked list reference structure that ripples through the graphics, the Simulation state, the file-I/O and the memory handling. A truly dynamic number of Noble Apes will change the aesthetic of the Simulation for long-term users. It may also encourage people to play with the Simulation longer and get deeper into the Simulation.
In terms of broadening the uses of the Simulation and the number of potential users, increasing the landscape to a truly dynamic size and geometry creates a virtually new program. The development of this, requires a number of changes throughout the Simulation. The end of this development is the much anticipated - Planet Noble Ape as a module of the Noble Ape Simulation.
In the short term, rendering flat landscapes of any rectangular or square size is the challenge. Creating a file format which can compress landscapes and expand them on the fly as they are needed also presents a challenge. The strategy I am considering with this development is as follows;
(1) Complete all outstanding work including the GPI port for Windows and the Being Redevelopment,
(2) Introduce a larger square map with the same interface,
(3) Allow the Map and the Terrain to be re-scaleable - potentially with drag/scroll elements and zoom,
(4) Introduce rectangular maps with the new interface, and,
(5) Create a compressed land format for file handling.
This does not bring the development close to Planet Noble Ape as a module, but it is a start and something to aim for over the next six months.
The Simulation currently averages about a release every two months. There have been some blackspots with a lot of development where a release has taken four months, and other parts where a release has taken a month, but in general the two month average is a good thing.
For a single developer this releasing schedule has proved gruelling at the best of times. With the last release being listed on a number of download and development sites, the general URL on www.nobleape.com allows these versions to be released relatively transparently. Increasingly I want releases to be tracked for downloads through Sourceforge, to show the active user base on Sourceforge.
Moreover, sites like Freshmeat.net and the traffic it brings encourages more frequent releases to get the new hit of developers. The first/last release on Freshmeat brought more than 500 developers to the site in a single day. It was also the first day of three where all my email was lost by my former webhost. Productive success in terms of eyes-on-source, development failure in terms of lost developer interest due to communication difficulties.
These are my current thoughts and hopefully give some indication of the development strategy/near future of the Simulation.
Tom Barbalet, 7 May 2003.