The Perseus Plan

by Aloril and Graham Gilmore

As the Demo rush fades and the smoke clears, the targets for the next plan are swinging into the crosshairs. Perseus, the next step, calls for the fleshing out of the Atlas client-server communications protocol, and to experiment with some other game concepts that have not yet been dealt with. The main foci, server-side, are BackStage (developing from the Qserver2 base), and Cyphesis, Aloril's AI/Artificial Life server. These two servers will serve as testing grounds for ensuring the Atlas protocol library. Similarly, uclient & other clients will be required to also learn how to use Atlas to talk to the servers. Aside from stimulating the growth & spread of Atlas, each of the servers and clients have their own separate goals as well for implementing new features. Those interested in world building will also have plenty of opportunity to help out!


As the main focus of work on both servers and clients, much work must be done to allow Atlas to support all the commands and messages that will be required by the servers and clients. While many of these tags are already supported in Atlas, the rest must be included in both the Python version and the C++ version. There is also work underway on a Python wrapper for the C++ version, to be able to use a Python interface with a speedy C++ library.

-> http://www.worldforge.org/dev/eng/protocols/atlas


BackStage targets for Perseus include, aside from implementing Atlas, dealing with 3-dimensional iso maps and the issues involved with it, including improved collision detection, line-of-sight, and walking in multi-storied buildings. Furthermore, a basic interaction engine is planned (the possibility of simple combat has been raised), and in-game map editing. For more information about BackStage, see Arnan's article on it, below.

-> http://www.worldforge.org/dev/eng/servers/previous/backstage


Cyphesis has plans to continue its exploration of NPC AI and scripting issues. Work is underway by SlapAyoda to complete the description of the small village started by Aloril for the server. With this, more complex NPC scripting experiments are possible in-game. In addition to strictly NPC scripting, there are plans to allow player characters to be scripted and leftin the game while players are not connected. The customization of player characters through scripts is a key feature that needs to be explored for future servers. Work must also be done to fully support Atlas, and this means that not all the current features of Cyphesis will be available. However they will certainly reappear soon, along with a number of features that will be taken from BackStage; in this way Cyphesis will become the main "working" server at the end of Perseus. Currently Cyphesis is implemented completely in Python, and another Cyphesis goal in Perseus is to get at least the intensive stuff implemented and optimized in C++. Aloril plans to announce an update to Cyphesis on Freshmeat once Atlas is implemented and there is a graphical client that can communicate with it.

-> http://www.worldforge.org/dev/eng/servers/cyphesis


There are a number of clients implicated in Perseus. Of course Uclient will be updated to use Atlas, and eventually be able to talk to both Cyphesis and BackStage. Karsten also has a number of items on the Uclient todo list. tkClient (apparently renamed now atlasClient) will also be implementing Atlas. As a Python-based client, it will help to ensure that both the Python and C++ versions of Atlas remain in step. XClient also surfaces as a potential user of Atlas, adding that to its already massive todo list. Having a 3D client such as XClient on board will certainly be of help to the BackStage team in examining the issues of concurrent 2D and 3D clients.

-> http://www.worldforge.org/dev/eng/clients/


The initial village plan of Aloril (and the great work so far by SlapAyoda) are an initial testing ground for the implementation of Cyphesis features. Further work on this is encouraged by all who are interested, though, and once the servers are more capable, the development of Summerset should get underway. A city such as this will provide lots of opportunities to both servers and clients to explore their goals fully.

-> http://www.worldforge.org/dev/content/worlds/


When finished, Perseus will have served its purpose as a vehicle for testing out new features and exploring areas that need researching. It is more than just a prototype, but remains an experimental tool to test, explore, and validate the design concepts we plan to rely on in subsequent server designs.

There's a lot of work ahead for Perseus, and it is exciting stuff. The completion of Perseus will be a significant step forward on the road to a complete WorldForge.