DI-Guy Applications Version 10
DI-Guy API 10
Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
Version 10.0.10
- Impact processing on characters now considers mind wakeup callbacks when deciding how the impact affects the character, in addition to the straight callbacks that are considered now.
- Added functions:
- Added the following diguyCharacter callbacks that report when an agent is being push around by other characters of vehicles.
Version 10.0.8
- Added merging of regions during scenario merge.
- Fixed merging of crowds to include merging of crowd behavior regions.
- Added diguyScenario::CALLBACK_ID_PLAYBACK_MODE_CHANGED.
- Added diguy_set_diguy_base_dir_path() function.
- Added remove_on_scenario_load argument to most add_default_*_callback() functions; allows for "permanent" callbacks to be added that persist through scenario loads. The default is 0, meaning remove the callback when a scenario is loaded.
Version 10.0.6
- Fixed visual issues of skinned appearances when the character is scaled or is using a motion LOD greater than 1.
- Fixed issue where default scenario callbacks were not being called.
- Added functions:
Version 10.0.5
- Fixed hard crashes with on-screen labels outside of the ogl pipeline.
- Fixed issues with octtree creation and visibility checks.
- Fix for vc8 mdd examples using lua.
- Added missing header file for DI-Guy Bench Marking example.
- Added infrastructure for hooking up callbacks so visibility tests can work in the SDK. See the following functions:
Version 10.0.4
Version 10.0.3
- Changed diguyScenario::set_default_lod_ranges() to accept "all" for the character type. Passing "all" will set the default LOD ranges for all character types, not just one specific one.
- Added the following functions to DI-Guy Graphics API for more flexibility in handling graphics LODs.
Version 10.0.1v911
Version 10.0.0
- Added support for character "type maps". Type maps add extra data to characters that make it easier to decide which character type and appearance best match the desired role for characters to be added to the scenario. See the class diguyCharacterTypeMap, and information about the "Appearance Wizard" for DI-Guy Scenario.
- Added the following functions to diguyCharacter API:
- diguyCharacter::get_nearest_character_type_map()
- The DI-Guy Graphics API example directories osg_12_examples and osg_22_examples have been removed. They have been replaced with osg_2_examples.
- The osg_2_examples reference implementation now has support for skinned appearances. It uses the DI-Guy built-in geometry loader instead of OSG's, as DI-Guy has some specific requirements for loaded skinned geometry.
- diguyScenario::add_callback() and diguyScenario::add_callback_script() have been modified with an addition argument that specifies whether the callback should remain after a new scenario has been loaded. The previous behavior was for the callback to not be removed, which could cause problems. Users will now need to explicitly request that the callback remain.
Version 9.1.5
Version 9.1.4
- Added the following functions to diguyCharacter API:
- The way that weapon sounds are handled has been changed.
Previously weapon sounds were largely determined by the
character's default weapon sound setting, as set by
set_default_weapon_sound(). Weapon sounds (and other data) are
now set automatically based on the munition type(s) of the weapon
the character is carrying. The default munition type sound can
be overridden by calling set_weapon_sound_override(). Note that
existing, deprecated calls to set_default_weapon_sound() will
have the same effect as calling set_weapon_sound_override().
- The following functions have been deprecated:
- diguyCharacter::set_default_weapon_sound()
- diguyCharacter::get_default_weapon_sound()
- diguyCharacter::set_default_weapon_sound_gain()
- diguyCharacter::get_default_weapon_sound_gain()
- The above deprecated functions are replaced by:
- Added the following diguyCharacter callbacks to make it easier to tie events to editing characters in the UI.
- Added diguyViewPainter class that allows the drawing of lines and other primitives in DI-Guy Scenario 3D view windows. For access to this object call diguyApp::get_painter().
- Added diguyScenario::CALLBACK_ID_POST_DRAW, allowing the scripting engine a chance to draw in the 3D view in DI-Guy Scenario. Characters with minds are also given the opportunity to draw; see the default luaCharacter script.
Version 9.1.2
- Added diguyImpact::get_impact_type() and diguyImpact::get_impact_type_string() which provide information about how the impact was generated. New accessors for querying normal information are also available.
- Added new Lua Scripting module:
- The Lua module has all the functionality of the current Perl module.
- Lua is popular in the game development industry for it's speed and efficiency. Lua script execution is much less performance intensive than a similar Perl script.
- Lua is the basis for the new DI-Guy AI Mind framework.
- Scripts are no longer limited in length (was 32K).
- Deprecated functions:
- Added the following diguyCharacter callbacks to make it easier to tie events to editing characters in the UI.
Version 9.1.1
- Added the following function to diguyCharacter API:
- Added the following functions to diguyCharacter API for getting and setting character variables with a compact function name:
- Sound Module Improvements:
- Fixed problem with the OpenFlight geometry loader. Light point records were causing the loader to fail.
- Added two new diguyCharacter callback ids:
- Added new plugin function, post_reset(). Allows plugins to do reset operations at the end of a scenario reset, instead of only at the beginning.
Version 9.1.0
DI-Guy Scenario 10
Note that most changes to the DI-Guy API also apply to DI-Guy Scenario.
Version 10.0.2
- Fixed the appearance of state functions in the code browser.
Version 10.0.0
- Added the "Appearance Wizard" to places where character type and appearance can be selected. The Appearance Wizard provides an interactive UI for selecting desired attributes of the character to be created, such as category, age, sex, race, military branch, carried object, etc.
- Character types and appearances are now marked as "Recommended" and "Not Recommended". Many older character types and appearances have been nominally replaced with newer versions which should be preferred over the older ones. By default DI-Guy Scenario will show only the preferred ones, but can be changed to show all of them. Scenarios that currently use now not-recommended character types and appearances will still work as before.
Version 9.1.3
- Improvements to autocomplete, including DIGUY_* constants as well as dynamic analysis of lua objects.
Version 9.1.2
- Added new documentation viewer, accessible under the help menu.
Version 9.1.1
- When selecting which agents' parameters are going to be edited, multi-select can now be used.
- Replaced Scenario Elements, Character Elements, View Settings, Event Handlers, and DI-Guy AI Elements windows with a single revamped Scenario Elements window that has collapsible tab groups.
- Removed experimental, incomplete "Merge Blitz" capability.
Version 9.1.0
- Script editing now uses an editing component based on Scintilla, this provides syntax highlighting/coloring, line numbering, basic auto-complete, and code folding. Currently supported control keys:
- Ctrl '{' or Ctrl '}' - jump to matching brace
- Ctrl f - find dialog
- F3 - find again
- Added a number of ui improvements:
- Beads now display the time they occur instead of just an index.
- The Action Spreadsheet is available in the character elements page.
- A number of element types can now be sorted in their selector view at the top of the page. Most widgets can be sorted by index and name. Some add the ability to be sorted by time, appearance, character type, etc.
- The path page has a sorted list of all beads on a path.
DI-Guy AI 10
Version 10.0.4
- Added new AI_Populate SDK example; demonstrates populating the environment with lua minds based Agents via the SDK.
Version 10.0.3
- Improved behavior of paintbrush far from origin and at different heights.
- Added bright red log/package indicator on lua syntax errors.
- Improved behavior of code browser recompile button, pops up log window on syntax errors.
Version 10.0.2
- Fixed hard crash in path planner when pursuing with no behavior region set.
- Fixed a number of bugs with agents colliding with props.
- Fixed bug with crowd awareness code far from the origin.
Version 9.1.4
- Significant improvements to A* path planning performance, 10x speed up in most cases.
Version 9.1.3
- Improvements to path planning API, added the following functions to diguyCharacter API for navigating the world
Version 9.1.2
- New Lua based mind framework:
- New Lua Mind Editor in UI
- The crowd/people blitzers can now create characters with minds.
- Added the following functions to diguyCharacter API:
- Added diguyCharacter::CALLBACK_ID_AGENT_VEHICLE_COLLISION; this callback is triggered on a vehicle when a vehicle hits an agent.
- Added diguyRegion, an API wrapper for painted meshes. Retrievable with the function diguyScenario::find_region().
- Vehicle bounds are now smoothed when the vehicle changes speed.
- Added simple gazing model into agent focus behavior.
- Added Idle Behavior, agent will stop moving and be responsive to focus and simple requests but won't spontaneously move.
- Added diguyCharacter::agent_begin_behavior() allows starting a behavior by name. Typically some of the more elaborate functions are preferred, but this can be useful for idling and such.
- Changes to None behavior. Agent will attempt to do less and clear out some transient state to make the behavior of the behavior more consistent.
Version 9.1.1
- The following diguyCrowd callbacks are deprecated, and have been replaced with diguyCharacter equivalents.
- diguyCrowd::CALLBACK_ID_NEW_FOCUS_CHARACTER
- diguyCrowd::CALLBACK_ID_ATTACKER_NO_VISIBLE_TARGETS
- diguyCrowd::CALLBACK_ID_ATTACKER_OUT_OF_TARGETS
- diguyCrowd::CALLBACK_ID_PURSUED_CHARACTER_REACHED
- diguyCrowd::CALLBACK_ID_WANDER_TARGET_REACHED
- diguyCrowd::agents_flee_crowd()
- Added the following diguyCharacter callbacks to make it easier to detect important events in agent behavior.
- DI-Guy AI agents can now flee from multiple characters, groups, and locations instead of just one.
- Functions diguyCharacter::agent_set_current_params_from_profile() and diguyCrowd::set_current_params_from_profile() have a new argument, retain_focus_objects. Setting this to 1 allows the specified to be loaded without changing the agents' current focus character or group.
DI-Guy Motion Editor
- Added support for filtering the action table editor, eases editing of large action tables.
- Added code to reverse motions.
- Grabbing a pose on a Linear Offset should interpolate properly.
- Motion arc list and action table motion list are now in sync.
DI-Guy Character Viewer 10
Version 10.0.0
- Added "Appearance Wizard" button to make selecting an appropriate character type and appearance easier.
DI-Guy for Vega Prime 10
Version 10.0.4
- Initial release compiling with vp 3.0.
Version 9.1.2
- Added support for turning on DI-Guy AI from vpDiguySettings UI. DI-Guy AI functionality is limited inside of Vega Prime
- Added support for turning on Lua scripting module from the the UI.
- Fixed long standing issue with character's having link offsets applied multiple times. (Also in 9.0.4)
DI-Guy Networking
Version 9.1.6
- Fire PDUs position should now be the muzzle of the gun, the entity type should match the munition type fired, and the velocity should be the normalized direction of the muzzle.
- Fixed issue where agents on non-flat terrains were sending erroneous z values.