![]() |
![]() |



Cipher was developed at Synaptic Soup Ltd from 2000-2003. Synaptic Soup has since closed and Cipher is now owned and maintained by RH Systems Ltd.
Cipher uses OpenGL for all its rendering.
Cipher's shader system is based on the system used in Quake 3 and presented at the Game Developer Conference in Brian Hook's 1999 talk "The Quake 3 Arena Rendering Architecture". Brian Hook now runs his own company called Pyrogon.
Cipher's collision system is based on Stan Melax's paper "Dynamic Plane Shifting BSP Traversal". This involves moving the planes in the BSP to reduce all collision tests to points or lines against a bsp, which are very fast.
The volume shadow system is based on a combination of recent papers and talks, including several from Nvidia, GDC and Meltdown talks about getting volume shadows working with vertex shaders (esp. this one).
Cipher's virtual machine is based around the free C compiler lcc, which is part of the book "A retargetable C Compiler: Design and implementation". It uses a modified version of lcc to produce an appropriate bytecode output. Custom tools then compile this bytecode into something Cipher can run.
The low level sound interface inside Cipher uses an API similar to OpenAL (even though Cipher's interface is not compatible with OpenAL, it would not take a lot of effort to switch to using OpenAL down the road).
Cipher uses zlib to support compressed pak files. The pak files used by Cipher are actually in Zip format.
Jpeg support is provided by libjpeg from The Independent JPEG Group.
Cipher contains functions for simple encryption and decryption, based on The Tiny Encryption Algorithm (TEA).
Some of the tools (especially Shader Designer and Particle Designer) have used a number of public domain MFC add-ons found at The Code Project. The code project is an excellent site with literally hundreds of very high quality solutions to common ui problems. Specifically, the following code / articles were used...
The Entity Designer tool was written by James Sharam, Devin Kelly, Joey Struit and Toby Allen.
The Milkshape 3D file converter was written by Dan Valeo.
Blender Export written by Miguel Melo.
C++ New Game Wizard created by the_cX.
The Animation Merge tool and Bone Stripping tool written by bahlswede.
An exporter for Max 6 that supports vertex alpha was contributed by JTilo.
A version of ciphertool that can read .3ds files directly was provided by Armin Burger.
Cipher supports the Ogg Vorbis file format for compressed music and sound playback.
The standalone LOD range editor is provided by Rcortada and Victor Carretero.
NVidia's Triangle Strip library is used by the model conversion tools to produce triangle strips.
The landscape system uses a quad tree algorithm heavily based on the excellent article and source code described by Thatcher Ulrich in his article on Gamasutra.
Cipher is heavily influenced by the masterpiece that is the Quake 3 engine. Cipher actually started life as a console system, with support for console commands and console variables and grew from there. Anyone used to developing mods in Quake 3 will be familiar with the style of game interfaces in Cipher (though there is no compatibility between Cipher and Quake - if you want to make Quake 3 mods, use Quake 3).
We have used the excellent free installer Inno Setup by Jordan Russell.
Some of the libraries and code mentioned above is in the public domain. If you would like a copy of any of the public domain source code that Cipher makes use of, please contact us.