"...Open Source will probably be the way of the future." |
Screenshot from Crystal Space |
Here is the excerpt from my page which describes Crystal Space:What does this all mean? Crystal Space is not a game. Many people have confused it with a game in the past. CS is a 3D engine which can be used for creating a game. The kind of games it is most suitable for are games like Quake II, Tomb Raider, Unreal and RPG's. However any 3D game could probably be made using Crystal Space.
Crystal Space is a free (LGPL) and portable 3D engine written in C++. It supports true 6DOF, colored lights, mipmapping, portals, mirrors, alpha transparency, reflecting surfaces, 3D sprites, scripting, 8-bit and 16-bit display support, Direct3D hardware acceleration on Windows, Glide hardware acceleration on Windows and Linux, ...
There are currently more than 300 people subscribed to the developers mailing list. Not all of them are really developing Crystal Space but many are. I estimate there are about 30 people who are really active helping me with coding and designing of new features. More than fifty people have already contributed actual code to Crystal Space. Those include small bug fixes but also large modules like the sound code and 3D hardware accelerated rasterizers.
Initially coordination was not very easy because there was no common forum. Everything had to be done using personal mail. At some point (about a year ago) some people donated a mailing list to me and this is now our main discussion forum. All coordination of the actual source is done by me. I decide what goes into the project and what not. I almost never refuse patches. The only reason to me to refuse a patch is when I cannot get it to work correctly.
Initially when I released Crystal Space I hadn't even heard about Open Source yet :-) I released Crystal Space because I had too little time to finish the project myself. I have a fulltime job and I could never make it as good as it is now without the help of all my contributors. Lately Open Source is getting more in the news. Crystal Space fits in perfectly :-)
I think Open Source is a very good idea. Witness the success of Linux for example. I also think that Open Source will probably be the way of the future. More and more commercial software vendors are moving towards Open Source.
Screenshot from Crystal Space |
How do major changes occur within such a large open project? For example if someone wanted to add or change a major feature, does that all go through you first? |
A few large changes have been done in the past. Both me and others have at some point done a major redesign on a lot of features. One very good example is the transition to COM which was done recently. This was probably the most significant major change in the current history of Crystal Space. Dan Ogles worked for several months on this and when he finally finished everything was totally broken. What he did was changing the system dependent stuff (the 2D driver and 3D rasterizer) so that it worked via COM. This was a VERY significant change and he could only do it for Windows. So all other ports (Linux, DOS, ...) were completely broken. When he was doing this transition I froze Crystal Space for about ten days before Dan released his major patch. This was to help him get up-to-date with the current version of Crystal Space (there is a new version of CS every week so it is difficult to be up-to-date at times). As soon as I received his patch I started working to fixing the Linux port (as I'm the maintainer for that port). This took me about two to three days. The version which was then released to the developers had only two barely functioning ports (Windows and Linux). All other ports were broken. Then it was up to the remaining developers to fix their stuff. By now almost all ports are fixed.
I always help the person that is doing such a large change.
Several people on my list are considering making RPG's using Crystal Space. I think CS will probably be used most for those types of games. Most of these projects are still in an early planning stage so it is a bit early to say much about them.
You can use the engine freely in a commercial product provided you can comply to the LGPL license (GNU license for libraries). This license stresses that Crystal Space should remain free. This also means that any changes a game developer makes to Crystal Space should also remain free and public. However, all other code that a game developer creates for his game do not need to be free.
Crystal Space currently runs on Linux, Unix in general, DOS, Windows, BeOS, Macintosh, and OS/2. The Amiga port is broken but in the past it also worked.
Crystal Space can work with software rendering, Direct3D, Glide, and OpenGL.
There are very few limitations with this approach. Crystal Space supports assembler routines on platforms that can use them. So for example, on a Pentium Crystal Space will really be able to use high-performance assembler routines while this may not be the case on a SPARC processor. However if someone decides to write assembler routines for the SPARC then CS will be able to use them.
Portability does not necessarily mean that you need to make compromises. If the design is done correctly you gain a lot while loosing almost nothing.
The goal of Crystal Space is to become a useful and flexible 3D game development kit. We try to incorporate every useful 3D feature in the engine while keeping the engine performant and easy to use.
We're not there yet. Work is going very well but we still have work to do.
Screenshot from Crystal Space |
If someone is interested in joining the Crystal Space effort, what should they do and who should they get in contact with? |
They can mail me (jorrit.tyberghein@uz.kuleuven.ac.be) or join the developers mailing list (information at http://crystal.linuxgames.com) and mail the list instead.
The first thing they should do is to try to browse the source code to get a feel of how things work. Crystal Space is rather large so this may take some time. I'm always available for help.