Release Notes for Build 110 and Release Notes for Build 129: Difference between pages

From C4 Engine Wiki
(Difference between pages)
Jump to navigation Jump to search
(Created page with "__NOTOC__ '''Release date:''' July 5, 2005 * Made some adjustments so that the projects will build correctly on the Mac using Xcode 2.0. * The main project now compiles and links successfully under Dev-cpp. However, there are still issues preventing the game module and tools from being linked to the main executable. * Removed the requirement that the <code>GL_ARB_fragment_program_shadow</code> extension be available in order to get the ARB1 shader path. The Mac and...")
 
(Created page with "__NOTOC__ '''Release date:''' November 3, 2006 * Designed and implemented an animation blending system. The <code>Entity</code> class can now own a tree of Animator objects that calculate transforms for the node hierarchy rooted at the entity node. Each animator has its own target root node so that it can be assigned to a subtree of the whole entity. Animators can calculate transforms in any way they wish, and the final transforms output by the root animator are ultimat...")
 
Line 1: Line 1:
__NOTOC__
__NOTOC__
'''Release date:''' July 5, 2005
'''Release date:''' November 3, 2006


* Made some adjustments so that the projects will build correctly on the Mac using Xcode 2.0.  
* Designed and implemented an animation blending system. The <code>Entity</code> class can now own a tree of Animator objects that calculate transforms for the node hierarchy rooted at the entity node. Each animator has its own target root node so that it can be assigned to a subtree of the whole entity. Animators can calculate transforms in any way they wish, and the final transforms output by the root animator are ultimately applied by the <code>Entity</code> class.


* The main project now compiles and links successfully under Dev-cpp. However, there are still issues preventing the game module and tools from being linked to the main executable.  
* '''NOTE:''' Some parts of the animation blending system have been intentionally removed from this release because they are being redesigned. The complete system will be included with the next release.


* Removed the requirement that the <code>GL_ARB_fragment_program_shadow</code> extension be available in order to get the ARB1 shader path. The Mac and some notebook graphics drivers don't expose this and it forced the engine into the NV20 path.  
* Implemented horizon maps. It is now possible, while importing a normal map, to generate two auxiliary textures that contain data about how bumps cast shadows onto themselves. When the "Generate horizon maps" check box is selected in the Texture Importer dialog, two additional textures with suffixes <code>-h1</code> and <code>-h2</code> are created along with the normal map. Once these exist, horizon mapping can be enabled for a material by selecting the "Apply horizon maps" check box in the General pane of the Material Manager. Horizon maps can only be applied when a single normal map is present in a material, and they use the same texture coordinates as the normal map.


* Added a safety mechanism to the string table resource so that attempting to retrieve a string whose identifier doesn't exist causes the string "<missing>" to be returned.  
* There is a new setting in the Graphics Options dialog that enables or disables horizon mapping globally.


* Added support for 24-bit TGA files in the Texture Importer tool. It will now accept 16-bit, 24-bit, and 32-bit images, either compressed or uncompressed.  
* Removed the two-sided and alpha test flags from the <code>GeometryObject</code> class. These rendering flags can now only be set in a material.


* Removed an experimental deferred lighting effect. Not enough bang for the buck.
* Added a new type of particle that can be used for ribbon/trail effects. When the <code>kParticlePolyboard</code> constant is specified as a particle's style, then the <code>PolyParticle</code> structure must be the base structure used in the particle pool. It contains a tangent direction, a texture coordinate, and a flag indicating whether the particle is the last in a single polyboard. If it is not the last, then the polyboard continues to the next particle in the system. If it is the last, then the next particle begins a new polyboard. The radius of a particle controls the width of the polyboard.
 
* Several big changes have been made to the Message Manager. The <code>PlayerMgr</code> class has been removed from the engine and replaced with a system based on events that are passed to handler functions in the <code>Application</code> class.
 
* Two new general classes have been defined for distributing information to client machines in a multiplayer game. The <code>StateSender</code> class is used to send initial state when a new client joins a game, and the <code>SnapshotSender</code> class is used to send state at fixed intervals during gameplay.
 
* Added a new script function to the <code>PanelController</code> that activates panel items. This runs the scripts attached to the panel items as if the player had clicked on them.
 
* Removed the <code>PositionMarker</code> class and renamed the <code>LocationMarker</code> class to <code>LocatorMarker</code>. All position markers will be converted to locator markers automatically. There was really no need to have two different marker types that essentially mean the same thing.
 
* In the Game Module, the player's weapon is now visible in the first-person view. Both the weapon and the flashlight are now hooked up to a special mount node that the attached to the character. The player's hands do not yet grasp the weapon correctly—we are planning to use IK in a future release to keep the hands in the right place. There are a couple of additional minor issues: projectiles do not yet fire directly out of the weapons, and motion blur around the border of the weapon is not acceptable when the background is in motion. These will both be addressed in a future release.
 
* The geometry building code now splits vertices along edges that are too sharp to share normals. The Collada Importer now preserves the normal vectors on all imported geometry.
 
* The Collada Importer now recognizes the custom bump map settings written by 3DS Max.
 
* The Graphics Manager will now attempt to auto-configure some rendering options. On lower-end graphics chips, some options will be turned off automatically the first time the engine is run.
 
* Fixed a problem in which some geometries in a zone may not be lit properly if the zone is visible through multiple portals simultaneously and a particular light region doesn't intersect all of the camera regions.
 
* Made some small changes to the material manager layout. The two-sided flag, alpha test flag, and texture blend mode menu have been moved to a new Options pane. New settings for enabling horizon mapping in a material are also in the Options pane.
 
* Made several updates to the Texture Importer tool. You can now specify a different output name in the import dialog. The <code>itexture</code> command can now take command line parameters to specify import settings. If any parameters are specified, then the import dialog is not displayed. This allows batch texture imports to be performed by storing a bunch of <code>itexture</code> commands in a <code>cfg</code> file and executing it (with the exec command). See the [[Texture Importer]] page for a description of the command line parameters.
 
* Added a check box to the Texture Viewer tool that lets you turn alpha blending on and off.
 
* Fixed a minor glitch that would cause the in-air propulsion to be too high for the first frame during which the player is falling. This caused a noticeable burst of acceleration on slower machines when you did something like walk off the edge of a platform.

Latest revision as of 09:39, 15 July 2023

Release date: November 3, 2006

  • Designed and implemented an animation blending system. The Entity class can now own a tree of Animator objects that calculate transforms for the node hierarchy rooted at the entity node. Each animator has its own target root node so that it can be assigned to a subtree of the whole entity. Animators can calculate transforms in any way they wish, and the final transforms output by the root animator are ultimately applied by the Entity class.
  • NOTE: Some parts of the animation blending system have been intentionally removed from this release because they are being redesigned. The complete system will be included with the next release.
  • Implemented horizon maps. It is now possible, while importing a normal map, to generate two auxiliary textures that contain data about how bumps cast shadows onto themselves. When the "Generate horizon maps" check box is selected in the Texture Importer dialog, two additional textures with suffixes -h1 and -h2 are created along with the normal map. Once these exist, horizon mapping can be enabled for a material by selecting the "Apply horizon maps" check box in the General pane of the Material Manager. Horizon maps can only be applied when a single normal map is present in a material, and they use the same texture coordinates as the normal map.
  • There is a new setting in the Graphics Options dialog that enables or disables horizon mapping globally.
  • Removed the two-sided and alpha test flags from the GeometryObject class. These rendering flags can now only be set in a material.
  • Added a new type of particle that can be used for ribbon/trail effects. When the kParticlePolyboard constant is specified as a particle's style, then the PolyParticle structure must be the base structure used in the particle pool. It contains a tangent direction, a texture coordinate, and a flag indicating whether the particle is the last in a single polyboard. If it is not the last, then the polyboard continues to the next particle in the system. If it is the last, then the next particle begins a new polyboard. The radius of a particle controls the width of the polyboard.
  • Several big changes have been made to the Message Manager. The PlayerMgr class has been removed from the engine and replaced with a system based on events that are passed to handler functions in the Application class.
  • Two new general classes have been defined for distributing information to client machines in a multiplayer game. The StateSender class is used to send initial state when a new client joins a game, and the SnapshotSender class is used to send state at fixed intervals during gameplay.
  • Added a new script function to the PanelController that activates panel items. This runs the scripts attached to the panel items as if the player had clicked on them.
  • Removed the PositionMarker class and renamed the LocationMarker class to LocatorMarker. All position markers will be converted to locator markers automatically. There was really no need to have two different marker types that essentially mean the same thing.
  • In the Game Module, the player's weapon is now visible in the first-person view. Both the weapon and the flashlight are now hooked up to a special mount node that the attached to the character. The player's hands do not yet grasp the weapon correctly—we are planning to use IK in a future release to keep the hands in the right place. There are a couple of additional minor issues: projectiles do not yet fire directly out of the weapons, and motion blur around the border of the weapon is not acceptable when the background is in motion. These will both be addressed in a future release.
  • The geometry building code now splits vertices along edges that are too sharp to share normals. The Collada Importer now preserves the normal vectors on all imported geometry.
  • The Collada Importer now recognizes the custom bump map settings written by 3DS Max.
  • The Graphics Manager will now attempt to auto-configure some rendering options. On lower-end graphics chips, some options will be turned off automatically the first time the engine is run.
  • Fixed a problem in which some geometries in a zone may not be lit properly if the zone is visible through multiple portals simultaneously and a particular light region doesn't intersect all of the camera regions.
  • Made some small changes to the material manager layout. The two-sided flag, alpha test flag, and texture blend mode menu have been moved to a new Options pane. New settings for enabling horizon mapping in a material are also in the Options pane.
  • Made several updates to the Texture Importer tool. You can now specify a different output name in the import dialog. The itexture command can now take command line parameters to specify import settings. If any parameters are specified, then the import dialog is not displayed. This allows batch texture imports to be performed by storing a bunch of itexture commands in a cfg file and executing it (with the exec command). See the Texture Importer page for a description of the command line parameters.
  • Added a check box to the Texture Viewer tool that lets you turn alpha blending on and off.
  • Fixed a minor glitch that would cause the in-air propulsion to be too high for the first frame during which the player is falling. This caused a noticeable burst of acceleration on slower machines when you did something like walk off the edge of a platform.