Meeting summary

Present during the meeting, Uta Szymanek, Karsten Olaf-Laux, Dave Turner, Hans Haggstrom, Malcolm Walker, Al Riddoch, Magni, shamen, zokvicds, pug, stormy.


Status of Acorn

uclient status

Karsten gave an update on ucleint's developments since Acorn 0.3. Performance in uclient has been slowed recently by recent re-working of renderer to support changing daylight, and the addition of a sprite caching system which is still in development. Performance should improve once the sprite caching system has been complete, and memory requirement have already been reduced. The daylight feature will always slow performance, but an option will be included to disable it.

Scripting has been added to uclient using lua, which is a small, lightweight, fast and portable embedded scripting language. Support for the WorldForge metaserver has been added

cyphesis status

Al Riddoch gave an update on cyphesis developments since Acorn 0.3. Ranges have been implemented, which means that characters now only witness entities and events in their immediate vicinity. This affects sight and sound operations. This improves perforance as it reduces the number of entities operations must be sent to, and so reduces bandwidth required by each client. metaserver support has been added, and is fully functional. A database backend has been written which stores object of the Atlas::Message::Object class. This currently is only used to manage persistant accounts, but eventually could be used to store persistant world state.

Collision detection has been implemented using an axis aligned bounding box collision prediction. This system has been used as the basis for handling moving in and out of buildings.

A new system has been written for handling objects using C++ base classes, with python superclasses. This improves both performance and flexibility of entities in all games.

shamen inquired as to the goals for cyphesis development, and Al Riddoch explained that cyphesis will have two goals. Firstly it will be a small scale WorldForge server, for simple games, or a personal server. Secondly the Artificial Intelligence related code will be used in conjunction with STAGE. The architecture with respect to STAGE has not yet defined. In response to another question by shamen, Karsten explained that current uclient development occurs on the head of the CVS tree, but there is also a stable branch made at Acorn 0.3 release, tagged acorn_0_3. The latest uclient requires slight changes to the Atlas-C++ API which were introduced in version 0.4.1.

Implementing Acorn in other clients and servers.

A brief discusion was held on whether there was interest in implementing Acorn features in Stage or erlyStage. Both malcolm and shamen expressed an interest in looking into it in the future.

No other client developers were present, so implementing Acorn in other clients was not discussed.

Map format for Acorn 0.3

Entity information stored separatly from terrain

Al Riddoch gave an introduction to the problem:

"I have now implemented all that is required for interaction on the server side with all the entities on the map, such as buildings, furniture etc. Currently the entities are loaded into the client from an iso format map, and are not present in the server at all. In order for characters to be able to move them around, bump into them, destroy them or use them they must be loaded into the server. The iso map format, while well suited to simple terrain information, is not well suited to this."

"As an example, a house can have two rooms. The rooms are typically divided by a wall down the middle of the house. When a character is in one room, the sprite is in front of the wall, but in the other room it is behind the wall. This cannot be modelled easily with the current layer model. Instead, each wall in the house should be an object, with a location, and a bounding box, so that the server can calculate when the character collides with the wall. So the simplest possible house would be represented as follows:

1: top level house object, with bounding box
2: four wall objects, all inside the house object

Any real house is going to be more complex than this, but this can be handled fine."

"If the client is going to be able to operate efficiently, it would be best if it could load information about the entire house from a map file. The map file also needs to contain the ids of the objects, so that if the server sends a message to the client saying 'you see house id=`foo`', the client can tell that it already knows about this house from the map file, and does not need to query the server for full details."

Uta pointed out that this scheme could be used, together with layered sprites to simplify rendering in the client, which would be easier to implement for client developers and artisits. Malcolm added that the map could also contain furniture that the house contains. Karsten agreed that this was worth persuing, and that his dii library could handle loading and saving of Atlas format file containing entities. Al said he would start work on this scheme, and create an example map file, and Uta said she could have a layered sprite ready for testing by mid next week.

Extending the Agrilan map

Pegasus described a plan for extending the map area for agrilan by adding a number of new iso format maps using the layout shown below.

Agrilan map layout

The new map areas will contain forest and farmland to the south, buildings, a residance, and the river to the east, the complete lake to the north, and an elfish residence to the west.

Uta asked for comments on which maps should be started first, and it was suggested that the maps directly to the east or west, or to the north should be developed first. Karsten said that adding this new map area into uclient should not be a problem, as long as their was not a siginificant increase in the number of tile images required.

Animations and Effects

Uta asked whether making fire would work again, and Al responded that it should still work now. Uta also suggested that support for wood cutting could be included, so that wood could be obtained for feeding fires. Al forgot to mention at this point that he has added support to cyphesis for cooking food, which could be a use for fires. Uta asked whether the animated dear created by Garg could be used in Acorn, and Al said that this would be no problem.

Uta brought up the subject of the butcher animation, which is still lacking, and said that she would create one using Poser. The issue of the proprietaryness of Poser was discussed again, and it was agreed that there was still no obvious alternative.

Malcolm mentioned that he has long term plans for creating an automatic rendering system that will create sprite frames given a 3d model, and Al mentioned that he had just written a simple rendering tool for creating building block images for Mason, which can be found in forge/libs/edifice.

Uta asked whether it would be possible to animate opening and closing of market stalls. Al and Karsten both agreed that this is possible.

Uta brought up the subject of reflections in water, and representing thunder and lightening in the client. Karsten responded that reflections were not easy, and would not be implemented any time soon, but that the new lighting features should make it fairly easy to represent lightening. Uta also asked if a cloud layer could be added to the ground to make it look more natural, and Karsten said he was already working on this

Uta mentioned that at the last music meeting someone volunteered to create some music for the client before it has logged into a server. She is currently planning a revision of the interface graphics, and working with Karsten on a new interface layout. Work is also being done to prepare for interface customisation for different games, and other reasons.

Uta asked whether it would be possible to make information such as Agrilan's history available to the user while playing. Al suggested that as this information is available as web pages, this should be done by sending a request from the client to a web browser to load the page, because creating a standards compliant HTML renderer is a very hard problem.

Roadmap for future stable versions

Uta brought up the subject of LinuxTag, and many present expressed an interest in going. It was decided that a stable release should be planned a reasonable period before LinuxTag, which is in early July, to ensure that a fully up to date, stable demo is available at the exhibition. A brief discusion was held on whether there was enough time to make two stable releases before LinuxTag, but it was decided that the next stable release is not close enough for this to be viable.

In conclusion, Acorn 0.4 should be completed around the beginning of June to ensure that it is polished and ready to demonstration at LinuxTag. The feature set for Acorn 0.4 will be ambitious to reflect the long development time we have available.

Timing - making it into more of a game with in game time limits

Various suggestions were made as to how to introduce time limits into the game, including:

The only real conclusion reached was that the timing should be based on the new daylight features now supported by the client, and under development in the server.


The subject of persistance was raised briefly, and the unique id of a world was discussed. Al expressed the opinion that a world id should be server machine and location independant, so that the same world could be moved between servers. The subject of persistance was put off until a future meeting.

Misc. discusions

At various points in the meeting, other topics were raised not directly relevant the the main discusion at the time.

The possibility of a bank to store money was raised, and it was suggested that the bank could be located in the mansion.

Al mentioned using stackable objects to represent coins, and the difference between this concept of stackable objects, and the piles in the Mason design was discussed.

The subject of food for player characters was raised. Uta mentioned that she has created graphics for fruit and vegetables and the stalls for trading them. Fruit trees will be added to the maps, and it will be possible to feed fruit to pigs. Al again forgot to mention that cooking is now implemented.