Dear folks,
the latest
Ca3DE 8.03 (March 2008) version has just been
released!
An incredible amount of development work has been spent since the last major
release in July 2007, adding all the features listed below. They include
support for map scripting, better collision detection, many enhancements to the
Ca3DE World Editor CaWE, much improved in-game console handling, and much
more.
I'm very grateful to all the wonderful people who helped with testing and
debugging the release candidates that have irregularly been published since
December, and I'm proud that this piece of work is finally available for public
download.
The download is available at the
Ca3DE Download
section.
As always, have fun with the new release, and if you find any problems with it,
please let me know!
The changelog for this release is posted immediately below. It's only a
high-level overview of all the changes since last July, but it's still quite
big.
Changelog
The changes since the previous release (7.07, July 2007) broadly fall into
three categories:
- the introduction of Map Scripting combined with a new Clip System for
collision detection,
- enhancements to the Ca3DE World Editor "CaWE",
- everything else.
Map Scripting and the
ClipSys
The introduction of map scripting went hand in hand with a thorough revision of
the Ca3DE clip and collision detection code, as well as
many
accompanying code design enhancements.
- Finally separated the clip world from the render
world: Before, collision detection was performed as a by-product
of the render system. Now there is a clear separation of the two concepts
that exist in parallel (the clip and render worlds).
- Exemplary reimplemented the "ladder" game code in terms of the new clip
system.
- Created explicit collision models for all static
detail models in this release as demonstrated in the second part of the
tutorial at http://www.ca3d-engine.de/flash/Placing_a_Model.htm
and updated the map files accordingly.
- Added a fully scripted two-part slide door to the
TechDemo map for demonstration.
- Introduced the new "mover" (EntFuncMoverT), "trigger"
(EntTriggerT) and "doors" (EntFuncDoorT)
entity classes that use and demonstrate further aspects of both the new
scripting and clip systems. Plenty of door instances have been placed into
the TechDemo map.
- Improved the "connection" between 3D world GUI scripts and
map-scripts, so that GUI scripts can access and manipulate
entities easily. This is also demonstrated in the TechDemo map with the
light source near the "emergency exit".
- Map scripting provides coroutine management, so that
functions like wait(), waitFrame() and
thread() are possible. See viewtopic.php?f=4&t=365
for more details.
Enhancements to CaWE
Thanks to the efforts of Jörn Koch, CaWE has undergone many improvements:
- The two old dialogs "Patch Surface" and "Edit Face Props" were merged
into one: the "Surface Properties" dialog, which included
a thorough conceptual revision and rewrite almost from scratch. See
http://www.ca3d-engine.de/wiki/mapping:
... tfaceprops for the result.
- Completed and augmented documentation about all tools,
dialogs and menu items, as well as several step-by-step flash tutorials
about crucial topics.
- Much simplified the setup and configuration dialog. CaWE essentially
works "out of the box" now, no complicated and error-prone
initial setup required any more.
- Game (MOD) configurations now work automatically,
too.
-
3D cameras are now displayed in the 2D views even when
the Camera tool is not active. This makes precise 3D camera movement
and orientation more intuitive.
- Maps can now be compiled from within CaWE with custom
options to the compile tools.
- Several improvements to the 2D and 3D rendering of
objects (e.g. bounds texts stay within view, mouse cursor depicts a small
"+" when cloning objects, Bezier patches, etc.)
- The Material Browser dialog has been cleaned up and
finally shows more essential material attributes.
- The number of Bezier patch subdivisions can now be
controlled explicitly, and for new Bezier patches, "endcaps" can optionally
be created with them.
-
Game definition files that describe all entity classes
of a MOD are now Lua scripts.
- Added a first, experimental incarnation of the new "Entity
Inspector" dialog, which is going to replace the old "Object
Properties" and "Entity Report" dialogs in the next release. Documentation
is already available here.
Other Improvements
All other improvements do not fall into one of the two broad categories above,
but are not the less important:
- Upgraded to wxWidgets 2.8 (latest revision from SVN
branch).
- Revised the in-game command console once more: The
"convars" and "confuncs" of the C++ code are now much better integrated
into the underlying Lua state. This enables the full power of Lua at the
Ca3DE in-game console, makes processing a config.lua file
(with e.g. user default settings) trivial, includes a powerful TAB
command-line completion feature, etc. See viewtopic.php?p=2467#p2467
for more details.
- Introduced many new console variables and
function in the sequence, type list() for a full list and
see viewtopic.php?f=6&t=374
for an example.
- CaLight can now create lightmaps for entities other
than worldspawn.
- Cleanup of old client and server code. The server
("remote") console feature has been entirely rewritten. It's now based on
connection-less network packets. The client has been adapted accordingly as
well, it now also acts as a client for connection-less server
communications! Both the client and server side got the appropriate
password handling facilities added.
- The game (MOD) code now accesses the Ca3D-Engine world representation
via the proper C++ interface "GameWorldI", an abstract
base class. This clarifies the code design significantly.
- Added support for the new Microsoft Visual C++ 9
(2008) compiler.
- Server-controlled NPC (non-player character) entities
now get their graphics position interpolated for
stutter-free movement.
- Addressed and fixed a huge number of other issues and bugs.