We've spent the time since the prior March 2008 release with incredibly intense and focused development work, and again we have been able to implement many great changes and improvements to the Ca3D-Engine:
While the user experience has much been enhanced, the true focus of this release is clearly on the interesting new features for game developers. Examples include the new powerful tools in the map editor CaWE, the new Sound System, and the much enhanced support for 2D and 3D GUI scripting - see the change log below for more details.
Beginning with this release, we ship separate packages for Windows and Linux platforms again. This way we can better take into account platform-specific features as well as gain more flexibility in testing and release cycles.
This release contains the C++ example source code of the DeathMatch MOD and all script source code. We're currently preparing Ca3DE source code licenses with low-cost options for students and indies.
We're very grateful to all the wonderful people who helped with testing and debugging the release candidates, and we're proud that this piece of work is finally available for public download!
The download is available at the Ca3DE Download section. Have fun!
World Editor (CaWE) related
- Wrote a new (and much better!) Entity Inspector dialog that replaces and subsumes the old "Entity Report" and "Object Properties" dialogs.
The Entity Inspector is a comfortable and powerful scene-graph view of a map that allows users to browse and edit the properties of entities (one or multiple at a time) easily. It is explained and documented in-depth in the CaWE documentation, chapter The Entity Inspector Dialog.
- Added a new importer for loading VMF files (the Half-Life 2 map file format) directly into CaWE.
- Added a new Terrain Editing tool for editing the shape of terrains directly in CaWE! The terrains can be shaped by an array of powerful subtools with real-time preview in the 2D and 3D views.
- The terrain shaping tools include Raise, Lower, Flatten, Fill, Ablate, Blur, Sharpen, Noise, and Road.
- Terrains are kept internally with very high 16 BPP (sub-millimeter) precision.
- Terrains can be imported from and exported to high-precision Terragen and PGM (portable graymap) file formats or from/to 8 BPP precision image formats PNG, BMP and JPG.
- High-quality implementation makes sure that you can continue edit operations in the 3D view even when getting "behind mountains".
- The "Road" tool is incredibly clever and useful for making all kinds of paths with smooth slopes.
- Real-time preview and direct working in CaWE's native 2D and 3D map views. The 2D views have multiple color schemes for encoding height values (grayscales, rainbow pattern, "gray stairs").
- Documentation about the new Terrain Editing tool is at chapter The Edit Terrain Tool.
- Introduced the "Command Pattern" (a very important internal enhancement) for all map operations in CaWE. This implied a complete rewrite of the Ca3DE Undo/Redo system. For the user, this results in a more flexible and reliable editor application, and is the prerequisite for future changes such as simultaneous multi-user online editing.
- Enhanced Morph Tool. The usage of the indispensable Morph Tool has been refined and it has fully been integrated into the new Undo/Redo system.
New Ca3DE Sound System
- We provide implementations both for OpenAL as well as FMOD. The OpenAL implementation is the default now, and is great for independent developers, as it doesn't imply additional licensing fees. The FMOD implementation is kept for reference and as an alternative and fall-back sound system.
- The OpenAL implementation always employs the optimal solution for actual 2D and 3D sound output on all platforms, e.g. by software rendering, DirectSound on Windows, ALSA on Linux, native hardware drivers, etc. This also makes it the best choice for sound output under Windows Vista.
- Supported file formats include MP3 (.mp3), Ogg Vorbis (.ogg), Wave (.wav) and raw audio.
- Resource management makes sure that limited resources like samples and hardware channels are automatically shared and reused whenever possible and appropriate.
- Optional Sound Shaders, the analogue to Material Shaders for graphics, are available for the convenient description of the properties of sounds.
- The newly introduced Speaker Entity makes it easy to place spatial sound sources in maps, including the definition of special effects like the Doppler effect or cone-shaped sound volumes.
New Main Menu and GUI System
Consequently, as a second step, we wrote the new Main Menu GUI on top of the new GUI System features. The Main Menu provides a much better user experience than before, with menu background music, map preview images and real-time player model previews.
The Main Menu also demonstrates clearly the most important features of the GUI System, e.g. its great extensibility and flexibility by scripting with script code that is lightweight and easy to read, and its applicability to 2D and 3D (in-game) GUIs.
The new Main Menu GUI entirely replaces the Ca3DE Options dialog from previous releases. Moreover, we've started work on a GUI editor that makes creating new GUIs even simpler and more intuitive.
Other important changes
- Enhanced the Radiosity lighting computations for higher quality lighting results that are richer in contrast. See this news post for more details.
- Enhanced the Type System. The Type System is an important component in scripting support, and is available now for both entities (map scripts) and windows (GUI scripts). Game developers can now easily extend the class hierarchies, inclusive automatic binding to the scripting language (including in turn script class inheritance) thanks to the TypeSys.
- Moving light sources are interpolated now, which eliminates flickering shadows.
- Improved the fault handling and tolerance in the Network subsystem.
- Memory consumption reduction code that significantly reduces memory requirements and improves performance on systems with 1 GB RAM or less has been implemented.
- New math class templates cf::math::PlueckerT<T> and cf::math::RotationT<T> were introduced for advanced computations especially wrt. collision detection and model placement.
Changes already begun for the next release
- Support for vegetation (tree, bushes and similar plants), especially for the TechDemo island.
- A GUI editor for making GUIs even easier.
- Support for the COLLADA model file format.
- Better support for models in general.