Welcome to cycli
The aim of the Cycli project is to create a server and a client for an mmorpg. And the tools to dynamically create a game world by providing easy acces to content and rules.
The emphasis has been put on maximal code sharing between server and to make maximum use of existing libraries and tools provided by the open source community but still it remains a rather ambitious task.
Key words kept in mind during development are adaptability, efficiency and persistency.
Adaptability
To improve adaptability, lua scripting has been included. This allows easy editing of game rules without digging into the core. This also increases persistency, since rebooting wont be necessary for small updates to the server.
Efficiency
In order to reduce server load a linear pathfinding algorithm using marble physics, is being tested.
To reduce network traffic, a soft zone system (similar to cell phone network coverage) has been implemented to minimize the data to be transmitted to each player. Normally this would incur lag while moving from zone to zone. Loading multiple zones at the same time enables the client to be one step ahead at all times.
The usage of the libevents library enables complete asynchronous network traffic, which in conjunction with triggered time as the sole base of communication, drasticly improves performance.
Persistency
Cycli also uses a high performance database system based on metakit that allows for storing and loading of data on demand but with higher perfomance than traditional dynamic databases.
These are some of the key technologies used so far, but many improvements are yet to come. Take a look at the Roadmap to get a feel of current development.