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

The latest version is 0.6.2, which was released on Friday the 25th of October 2013. It can be downloaded from the WorldForge download site using the links below.

Source code tar.bz2
Source code tar.gz

You can find a complete history of cyphesis releases by going to the Freecode 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:

Fix for a possible crash related to wielded entities and destruction.
Addition of a new “spawner” property

Building your own World

Authors

Erik Ogenvik (Current Maintainer)
Alistair Riddoch
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

Git Source

The latest source is available from Github. If you are not familiar with git, try reading a git tutorial, or see the information on our git page.

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.

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