Cyphesis-C++

Cyphesis is a WorldForge server suitable running small games. It is also designed by be used as an AI subsystem in a network of distributed servers. It includes a terrain engine based on the Mercator library, a persistence system based on PostgreSQL, and an AI engine using goal trees implemented in Python. It is the server used in most current WorldForge games.

Current releases of cyphesis use the re-written C++ core, based on the design of the original python core.

Download

Download server and Host now!

Download Cyphesis for LinuxDL more ...

The latest version is 0.5.16, which was released on Tuesday the 1st of July 2008. It can be downloaded from the WorldForge download site using the links below.

Source code tar.bz2
Source code tar.gz
Source rpm
Fedora Core 9 rpm

To be notified of future releases by email, use the freshmeat subscription service. You can find a complete history of cyphesis releases by going to the Freshmeat.net homepage for cyphesis.

Firewall instructions - making your server accessible

TCP 6767
UDP 8453

It is quite likely that once you get a server running, you will not see it in the list of running servers on the website, This is because cyphesis receives TCP network connections on port 6767, and if this port is not accessible then it will not be possible for other locations to connect, or display your server on their lists. In order for people to get access, you will have to ensure port 6767 is enabled on the firewall on the computer where cyphesis is running, and on any network devices the computer may be connected to. If you are connected to the internet using a router or gateway connected to your phone or cable line, you will need to change the settings of the router to allow connections on port 6767 of your computer. Cyphesis contacts the list of running servers on UDP port 8453, but this should work on most networks without you having to do anything. If you cannot see you server or its IP address on the list of runing servers even after you have made sure TCP port 6767 is accessible, you may need to configure your network and server to ensure UDP communication to and from report port 8453 is permitted.

It is possible you want to connect to your own server without making it accessible to the rest of the world, to experiment with world building or scripting, but you can't easily connect because it is not in the server list. If you are running the server on the same computer as you are running ember or sear, you can connect by specifying the hostame "localhost". If you need to connect to a different computer on your local network, you will need to know the name or IP address of that computer to give as the hostname, and it also may be necessary to modify the firewall settings of the server computer to allow connections on port 6767.

Changes in the latest release:

A protocol for activating mechanisms has been implemented.
The memory footprint of a server has been significantly reduced.
The obsolete disfunctional persistence layer has been removed.
The code has been refactored to have much more sensible class names.
A number of bugs have been fixed.

Building your own World

Authors

Alistair Riddoch (Current Maintainer)
Aloril (Original Python prototype)

Compiling

In order to build cyphesis you will need to install a number of WorldForge libraries. It is recommended that you build them in the following order:

Atlas-C++
varconf
wfmath
skstream
Mercator

The following other software packages are required to build and run cyphesis:

Python
PostgreSQL
libsigc++
GNU Readline
termcap

Old Cyphesis Information

Cyphesis AI/ALife engine tries to achieve 'live' virtual world where NPCs have ambitions. It's core is written in C++ for optimal performance, but most of the interesting functionality is written in Python.

CVS Source

The latest source is available from our CVS server. The CVS Root is :pserver:username@cvs.worldforge.org:/home/cvspsrv/worldforge and cyphesis is in the forge module in the directory forge/servers/cyphesis-C++.

See CVS FAQ

Or download latest snapshot (see news below) or release from (news/download page).

Python tutorial links here

Cyphesis Homepage General Cyphesis related things
Download Latest releases.
TODO list List of things where help is needed. It can be found in CVS.
Newbies If you're new to Cyphesis and want to learn
Current Atlas definition of the Atlas (XML) protocol
Old pages An old protocol Cyphesis once used (was replaced with Atlas)
Cyphesis Development March 99 Article about architecture in Cyphesis
Meetings Cyphesis meetings in IRC
Links Links to stuff used in Cyphesis
World The Cyphesis world's physical laws and forces
Developer documentation and diagrams Documentation