From: Jorrit Tyberghein <jorrit.tyberghein@pandora.be> To: news@linuxgames.com, lwn@lwn.net, ben@3dfiles.com, tim@3dfiles.com, civax@mail.com Subject: New Release of Crystal Space (0.90r001) Date: Tue, 23 Oct 2001 21:56:05 -0400 Crystal Space 0.90r001 Released! After a long time we finally release another version of Crystal Space (http://crystal.linuxgames.com and http://crystal.sourceforge.net). This is version 0.90 and it is a MAJOR step since the last official release (0.18). This release is actually in preparation for the long-expected 1.0 release. One of the most important goals we had to reach in order to be able to release 1.0 is API stability. Programming a game with Crystal Space was difficult because CS was a moving target. The 0.90 release will try to end this race by stabilizing the API. Between 0.90 and 1.0 we will most likely have to do small API changes for things we forgot but this should now have minimal effect on applications using CS. After this release we will focus on three major things now: - Further examination work on the API to see if we are really satisfied with it. - Eliminate all known and critical bugs that are still there. Also try to eliminate all unknown bugs :-) - Complete the documentation so it is fit for an 1.0 release. 0.90 itself is already a very mature release of Crystal Space and I'm proud to announce the list of things we accomplished since 0.18: - Engine Capabilities: - New isometric engine which can be used as an alternative to the normal 3D engine. This engine uses the same technology as the full 3D engine. You can add mesh objects (provided they are not too big) and it will use the 3D renderer system among others. - New landscape engine. The old DDG based landscape engine has been removed because it didn't integrate well with the rest of CS and it was not maintained. This landscape engine is simpler but it works very well with the rest of CS. - New texture generation utility which is especially useful to generate textures for landscapes. One example: given a texture for snow, grass, rock, and sand you can use the texture generation utility to create a texture that will use those four textures based on the heights in a heightmap (for the terrain engine). Much more is possible though (i.e. basing on slope and so on). - New space demo demonstrating how CS can also be used as a space engine. - Hierarchical mesh factories (0.18 already had hierarchical mesh objects but not factories). - Much improved lighting system. The quality of lightmaps is a lot better now (although there is still some room for improvement). - Motion manager has been rewritten. - Special Effects: - New Lensflares. - New general emit particle system that can be configured to do nearly everything (although it still cannot make coffee!). - New functions for fullscreen fade effects (among others). - New haze mesh plugin. With this plugin it is possible to create effects that look a lot like volumetric light. - Structural Changes: - Huge redesign of the engine in order to make everything more consistant. All geometrical objects are now gone from the engine and are implemented in seperate 'mesh object' plugins. The engine itself is now fully usable as a plugin. - The engine has become much more general in that every mesh object can be used for everything. In the past sector walls had to be normal polygons. Now you can define a sector wall using a 3D sprite if you want. There is also a new system of render priorities with which you have full control when some entity should be rendered. - Huge structural changes (including removal of the old pseudo-RTTI system, the system driver, ...). - Lots of things that used to be in libraries (like image loading, sound loading, level loading, ...) are now seperate plugins. This increases modularity of CS a lot. - Big changes to configuration system. - Rendering: - The OpenGL renderer has been significantly rewritten making it a lot more optimal. Especially texture handling and 3D mesh handling (used for terrain engine and 3D sprites for example) are now much more optimal. In addition we did some preparation for vertex buffers (unimplemented) with which we will again improve performance of complex and detailed levels a lot. - The OpenGL renderer will now use the stencil buffer for clipping when available and if efficient enough. - The OpenGL renderer now dynamically combines small lightmaps into bigger super-lightmaps so that less textures have to be send to the hardware and less texture swapping occurs. - Support for multi-texturing in OpenGL. This can be used for detail textures (for example). - Model Support: - New plugins to import various model formats (3DS, ASE, MDL, MD2, POV, LWO, OBJ, ...) - The 3ds2lev utility has been improved considerably. It can now also convert models and it has now options for full level conversion. - There are several new export plugins for use with Blender. With those you can export models (including animation) and levels from Blender to CS. - Various: - New Cygwin port. - New debugging plugin that can be inserted in any application without recompilation. - New 'cs-config' script to make it easier to use CS from external applications. - New reporter plugin which CS plugins and other parts of CS use to reporter errors, warnings, and normal notifications. An application can query this reporter or listen to it (i.e. receive events) in order to show a meaningful error to the user. This reporter plugin fixes a long standing problem with error handling in CS. Note that at this moment not all modules are properly using the reporter. This will be fixed for 1.0. This reporter fixes the problem with 0.18 which was very bad with regards to error handling. - New MP3 sound loader. - New Ogg/Vorbis sound loader. - New MOD sound loader using MikMod. - New EAX sound plugin (3D sound). - New RLE AVI Codec plugin. - New LUA scripting plugin - New AWS plugin (window system). This is work in progress which will eventually replace the old CSWS system. - LOTS of bugs fixed. Some less nice things to say: - Radiosity is currently broken. This will be fixed for 1.0. - Glide renderer has been removed due to lack of maintenance. - Direct3D renderer has been removed due to lack of maintenance. The good news is that a new Direct3D renderer is being written for DirextX8. This will also be for 1.0. - MazeD has been removed due to lack of maintenance. We are now concentrating more on external editors (like Blender, QuarK, WorldCraft, ...) and improving the importing/converting tools to work with other formats. The Quark editor in particular is being rewritten with Crystal Space in mind (and even using the Crystal Space framework). - The GGI canvas as been removed due to lack of maintenance. - The MGL2D canvas as been removed due to lack of maintenance. - If you have an application using CS 0.18 then converting this to 0.90 will be a hell of a job. The API between 0.18 and 0.90 changed dramatically. We have a document included which explains 99% of these changes but doing the conversion is still complicated. We promise this will NOT happen anymore after 0.90! I'd also like to remind people that it is possible to donate money to the Crystal Space project.