Here is a list of all people who have contributed to Crystal Space or gave important tips. Some of these people are no longer active with CS and may not be reachable:

Jorrit Tyberghein is the main author of Crystal Space. He wrote the initial engine with the main current functionality. He is still the main driving force after this project. Contact him for any general and strategic question as well as specific implementation issues. Jorrit's home address is Schoonstraat 11, 3020 Veltem Beisem, BELGIUM.

Murat Demircioglu was the first contributor for Crystal Space. He provided the first steps to porting Crystal Space to DOS. Parts of his code is still present in the current version.

David N. Arnold enhanced the DOS port made by Murat. He added C++ classes and VESA support. David also wrote the original Pentium assembler version of scan.cpp.

Nathaniel Saint Martin is a very eager Crystal Space fan :-) He even has his own Crystal Space dedicated homepage. He enhanced Arnold's DOS port again so that it works with the Watcom C++ compiler. He also suggested and implemented a considerable restructering of the system-dependent stuff with every port having its own directory. He is also the original author of the input/output console. Nathaniel was also the first to actually present me with an almost working Windows 95 version WITH source! Nathaniel is also responsible for most of the sound support code in Crystal Space. He made the basic sound system, wrote the Windows drivers and wrote support for 3D sound. Nathaniel created the config utility which allows for easier editing of 'cryst.cfg'. Currently only for Windows and DOS. In addition he also enhanced the (now non-existant) CSAR utility. He also helped develop the Windows/Direct3D and Windows/OpenGL versions and is co-author of the Glide port. His latest work has been some enhancements on the 3D sprites including two convertors from Quake MDL and Quake II MD2 to Crystal Space (in contrib).

Jyrki O Saarinen made the original Amiga port of Crystal Space. This old port can still be found at: Amiga port but it is very obsolete now.

Steve Israelson made the Macintosh port of Crystal Space. He also did some optimizations on the assembler draw_scanline routines. Steve made the first preliminary physics system and also implemented an easy uniform kind of dynamic lighting useful for fluorescent lights and such. Steve greatly enhanced the routines to parse the world format.

Bill Bohan contributed the first free textures for Crystal Space.

Ang See Chai contributed another set of textures.

Jaison Lee gave me a new version of police.fnt which doesn't give an error on the Borland compiler.

Phil Harvey suggested a statistics counter so that you can see the number of polygons considered and drawn each frame. He helped with Nathaniel to get the Windows 32-bit port working. Phil patched find_rgb_slow to make it slightly faster (but he forgot to rename it to find_rgb_slow_somewhat_faster :-)

Tor Andersson contributed some textures. He also donated code for reading several file formats and a virtual machine. This code has not been integrated with Crystal Space yet but you can find his code in the 'contrib' directory. Tor gave me a 'dj_joy.c' file (in the 'contrib' directory) which is an example on how to use the joystick from within DOS with DJGPP. He also added JPG support to Crystal Space and support for the mouse in DJGPP.

Alessandro Russo gave me a patch for the X version of Crystal Space which allows simultanious keypresses and disables autorepeat. This makes movement much more smoother. Alessandro Russo presented me with a patch to fix the autorepeat problem (in X Windows).

Gary Clark designed the basic framework of the Graphics3D class and I helped him start implement this. Gary also made an extension so that Crystal Space can now use accurate RGB light sourcing. Since this slows down the texture cache a bit I have made it optional (using 'cryst.cfg'). Also added a patch from Gary Clark to fix the problem with the X version of CS that CS would not immediatelly start drawing but only after an expose event was generated. He gave me the 'lin_joy.cpp' file (in the 'contrib' directory) which is an example on how to use the joystick from within Linux.

Karlis Freivalds found and fixed a few stupid bugs in wcc/watcom.cpp. I wonder how this version could work before he fixed it :-)

Darius Snapkauskas was busy with 3D sprites. He contributed some unfinished stubs for his work. Unfortunately he seemed to have stopped supporting it. His code has now been moved to the attic directory. The current 3D sprites in Crystal Space are developed by me (Jorrit Tyberghein).

Dan Ogles gave me a patch for 'printf' so that it also works with the Windows port. Dan made the Direct3D port for Windows! He greatly enhanced the Windows port and also added 16-bit support for Windows. His greatest work up to now is converting the 3D and 2D graphics subsystems to COM. He thus provided the foundations for the COM system (also on non-Windows platforms) which Crystal Space is now using. He also contributed the Halo code to Crystal Space.

Robert Blum patched Dan Ogles 'printf' patch so that there is no more buffer overrun and also found a bug in 'gifload.cpp'. He also ran a memory debugger on Crystal Space and found/fixed many bugs related to that.

Anis Ahmad updated the makefiles for Watcom C++ for both Crystal Space and csar. He also made the Crystal Space editor for Windows 95 which is unfortunatelly no longer supported.

Andrew Zabolotny ported Crystal Space to OS/2. Andrew changed Crystal Space to read/write ZIP files instead of the CSAR archive format. He enhanced Crystal Space to read PNG files. He did a MAJOR MAJOR rewrite of the system dependent stuff and made a lot of support classes for that. Andrew wrote the 2D sprites. Andrew wrote CSWS, the Crystal Space Windowing System and is also busy writing MazeD, a Crystal Space level editor. Andrew did very good work on DrawPolygon and DrawPolygonQuick. He also rewrote the DJGPP port (non-Allegro) to use 16-bit and also support more video modes. He recently ported almost all assembly to NASM and wrote a few new routines. He also improved speed of fog and alpha transparency a lot. He is also responsible for the current Makefile system.

John Lilley manages the Crystal Space Texture Archive at Texture Archive.

Jon Heiner sent me a few patches and a makefile for the SGI/IRIX port.

Andrew Apted ported Crystal Space to the GGI library (more information at The GGI Project).

Paul Garceau gave me a makefile for Windows NT with GCC.

Ralf Eisele updated the Amiga port to 0.09.

Maurice Vosmeijer is also helping maintaining the Amiga version.

Ivan Avramovic cleaned all the matrix/vector stuff and rewrote the Camera class. He also helped a lot with cleaning up the perspective projection and clipping. He made some considerable improvements there. He also helped me fix a lot of bugs with portals and clipping. Ivan also enhanced the image loader classes to make it possible to dynamically add new image formats even with a pre-compiled Crystal Space library. He also rewrote the loader routines and added the csObject library which is now used in CS. He also seperated the scripting stuff from the engine.

Slavik Levtchenko created the current Watcom port with 16-bit display support.

Markus F.X.J. Oberhumer gave me a small patch on the X port.

Trochu Xavier wrote the HOWTO describing how to compile CS with Visual C++ for Windows 95 and also contributed a few small patches to the Windows 95 version. He also contributed up-to-date project files for Visual C++. He also ported Crystal Space to the Glide API (together with Nathaniel)!

Thomas Ogbuji, Chimezie wrote the CS world file to VRML convertor in JAVA. He also wrote the JAVA Crystal Space world file editor (not really a level editor, but for editing world files).

Helge Foerster suggested the algorithm for texel filtering which is now in Crystal Space.

Charles Vidal gave me a tcl/tk script for launching Crystal Space.

Olivier Langlois made a few fixes on the event system in CS and ported CS to Borland C++. He also found and fixed some memory leaks. He also contributed the MemoryHeap class for the texture cache. Olivier also ported the GCC assembler functions to Visual C++ and implemented a few additional Visual C++ assembly functions. He also implemented the BMP loader class. He also optimized and helped optimize several key-functions in the engine pipeline. For example, he managed to nearly DOUBLE the speed of the assembler scanline drawers!!!

Alex Pfaffe integrated Crystal Space with the VCOLLIDE library for collision detection. Later he removed VCOLLIDE and used RAPID instead. He then rewrote RAPID to work better with Crystal Space. He is now busy working on the ROAM landscape engine which we will integrate with CS soon.

Antonio Gascon presented me a few notes which allowed me to optimize a few matrix inversions away.

Doug Rabson helped fixed a possible memory leak in the X port with SHM extension.

Jeff Lundin for helping with the DJGPP port.

Philipp Spoth for helping with optimizing the texture cache. Philipp also helped optimize a few other routines.

Xavier Hosxe contributed a few patches which allowed Crystal Space to compile with the EGCS compiler. For one reason or another this compiler doesn't support a C++ construction which other compilers do support.

Rodolphe Ortalo patched the Glide port so that it works on Linux. He also send me output from Purify which helped a lot for debugging Crystal Space.

Greg Ewing contributed a patch which greatly speeds up the computing of the initial palette table.

Vyacheslav L. Chupyatov suggested some fixes so that CS compiles with Watcom C++ v11. He also contributed a few makefiles for Watcom C++ and fixed a few small bugs.

Dmitry Derevyanko helped me by running Purify and solving a lot of bugs that way. He also contributed makefiles for IRIX/SGI.

Xavier Pianet ported Crystal Space to BeOS!

David Huen helped fix the BeOS port.

Jesko Schwarzer suggested a way to improve speed of the volumetric fog.

Ayal Pinkus gave me a nice missile sprite which I used to replace my ugly missile. He helped me create the base classes for the curve system. He then implemented the first Bezier curves with 3x3 control points.

Seth Galbraith also gave me a nice missile and he fixed the texture bug in mdl2spr. Seth is also a great source of suggestions and bug reports :-)

Gert Steenssens wrote the Linux drivers for the sound system and he also converted the SVGALIB driver to COM. He also helped develop the Linux/Glide and OpenGL ports.

Michael Dale Long helped fixing the Glide port.

Gary Haussmann wrote the OpenGL port.

Andrew Kenneth Milton gave me a makefile for FreeBSD and did some other FreeBSD patches.

Brian Haskin also did some FreeBSD patches.

Conor Stokes further optimized the 16-bit scanline drawers which were already optimized by Olivier Langlois.

Mattias Engdegård gave me a patch with a cleaner handling of the X11 visual and window creation.

Serguei Narojnyi (Snaar) added the first integrated networking code to CS. His code uses the COM subsystem so it can easily be extended for system-dependent parts.

Rob Bate updated the Macintosh port to COM.

Norman Kramer sent me a few fixes. In particular he sent me a few fixes on the sound code.

Nicholas helped developing MazeD.

Eric Sunshine ported Crystal Space to MacOS/X Server, OpenStep 4.2, and NextStep 3.3! He has also fixed numerous bugs throughout the system and has provided a number of updates to the makefile system. Additionally, he fixed the long standing problem with the console blanking out all but the most recently printed line of text which occurs on ports such as Windows, MacOS/X Server, OpenStep, and NextStep. As part of this patch he replaced the ill-conceived progress meter code in the lighting routines with very localized and simple classes. He repaired the broken console in MazeD, so that it is once again functional. He has pored through the documentation and updated many out of date references.

Wolfgang Lehrach wrote a Doom to CS convertor in Java. It is included in the contrib directory.

McClusky, Jesse made the latest Amiga port including the COM stuff.

Leslie Saputra gave me some code to implement 'freelook' like in Quake.

Denis Dmitriev gave me a routine to split a convex object into slices parallel to the view plane (useful for volumetric fog). He also added a progress bar to the console (during lighting) and added a new way to do bilinear filtering for the software renderer. He also dramatically improved the quality of the precalculated lightmaps. Denis also improved the movement system in WalkTest by implementing gravity and better collision detection (using the CD system from Alex).

Thomas Hieber helped on the Windows project files and also contributed various other things. He wrote DrawPolygonFX(). He added the csgame library and the Crystal Shooter application. He also significantly enhanced the Windows Direct3D port.

Bruce Williams helped optimize the Direct3D driver. He also contributed a set of convertor utilities which is going to be used so that CS can load 3DS, MDL, ... objects directly.

Sylvain Rochette gave me a few fixes for the Windows port.

Siu-Hang updated MazeD to add functionality for sector, portals, lights, textures, ...

Many thanks also for the people at GrimmWare for being the first to offer WEB space for Crystal Space.

Many thanks to Alessandro Russo for convincing his system manager for creating a mailing list for Crystal Space. Thanks to Marco d'Itri (the system manager) for creating this list for me. Also thanks to those people for creating an ftp mirror of this site.