Contents:
The engine and all related sources are licensed on terms of GNU General Public License. See www.gnu.org for more information about this license (including translations of this license to various languages) and philosophy of free software. In the future I may change the license to more liberal than GNU GPL — most probably to modified LGPL (the one used by FreePascal RTL). Contact me if you want the change to LGPL to happen now.
Sources of Kambi VRML game engine:
Download engine sources
Or download from Subversion by:
svn checkout https://vrmlengine.svn.sourceforge.net/svnroot/vrmlengine/trunk/kambi_vrml_game_engine
This archive contains the whole engine sources. There are many simple example programs included in this archive (see examples/ subdirectories), and some small tools-like programs that are not released in compiled form on these pages (see tools/ subdirectories).
Compile everything with simple make inside the kambi_vrml_game_engine/ subdirectory. Compile examples and tools by simple make examples.
Note: under Windows you will need some DLLs to successfully run some of the programs. I collected all DLLs needed by my programs in this archive (622 KB), so just download this and put in program's exe directory. These DLLs are already included in binary archives of my programs, but are not included in source archives (since they are only usable for Windows users). In general, for all OSes, see section "Requirements" in the documentation of programs and make sure that you have appropriate libraries installed on your system.
Below are sources for specific programs. Each of them contains program-specific modules, main program file and script compile.sh to simply compile whole program using FPC. Download those that you are interested in and unpack them into the same directory where you unpacked Kambi VRML game engine. Then execute compile.sh scripts to compile the programs you want.
Note: archives above do not contain user documentation for these programs. For now you can just go to the page of appropriate program and read documentation there (if you downloaded binary version of program you will also have documentation there).
As you can clearly see above, all sources may be downloaded from Subversion repository. If you don't know about Subversion... well, then you should get to know it. See Subversion main site and the excellent book about the Subversion.
Code from SVN is always the bleeding-edge current version of the work. That said, usually it's quite stable (I have a personal policy to try to commit only code that is compileable and somewhat tested). So feel free to peek, and please report eventual bugs you spot. You can also download the code from one of https://vrmlengine.svn.sourceforge.net/svnroot/vrmlengine/tags/ subdirectories, these contain frozen code from specific versions of my programs, so should be 100% stable.
You can also browse the SVN repository using ViewVC.
The sources layout in SVN repository: at the top level, there's trunk/. Beneath trunk/, there are subdirectories for each project — like kambi_vrml_game_engine, castle, www and so on. At the top level, there's also subdirectory tags, and again, it has subdirectories for each project that I'm keeping tags on (e.g. castle/, and inside castle/ there are subdirectories 0.6.6, 0.7.0 etc.).
A note to developers familiar with SVN
I know that my layout is a little non-standard: standard way is to make subdirectory for each project at top level (like kambi_vrml_game_engine, castle etc.) and beneath each of them make subdirectories trunk, tags. But current layout is more comfortable for users: usually you want to download both kambi_vrml_game_engine and one of the other directories (like castle) and have them as siblings, since this allows you to compile most things by using ready provided compilation scripts.
The engine is meant to be compiled with Free Pascal Compiler (FPC). About support for various FPC versions:
FPC 2.2.0 : This is the simplest and best option — FPC 2.2.0 works perfectly, and you can download already compiled packages of it from www.freepascal.org.
Note only for for x86_64: to avoid this bug, you have to use fixed glext.pas unit from engine sources (trunk/kambi_vrml_game_engine/opengl/x86_64/) or use newer FPC (currently, this means: from SVN).
FPC 2.0.4 : will work OK for some time from now (2007-09-20). But you have to use GL units from FPC >= 2.2.0, for example grab them from FPC SVN:
svn checkout http://svn.freepascal.org/svn/fpc/tags/release_2_2_0/packages/extra/opengl/
Latest FPC development version, downloadable from FPC SVN repository, usually works. However, you must remember that SVN version changes rapidly and no-one can give any guarantee about current stability of FPC from SVN (or stability of my programs compiled with this FPC).
Older FPC versions: while they may work, they are not really supported.
There was a time when various versions of FPC 1.0.x were allowed (including my own patched versions of FPC 1.0.6 and later 1.0.10), there was a time when various FPC 1.9.x were allowed and so on. But it's all gone now. I even deleted various notes about support for older FPC versions from this page. Just upgrade to latest stable FPC release.