HeroEngine Quartz

From HEWIKI
(Difference between revisions)
Jump to: navigation, search
(Corrections)
(HeroBlade Editor and Player Client)
 
(39 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
* [[HeroEngine Quartz (Older Revisions)|Quartz.b: 2.5.13838]]
 
* [[HeroEngine Quartz (Older Revisions)|Quartz.b: 2.5.13838]]
 
* [[HeroEngine Quartz (Older Revisions)|Quartz.c: 2.5.13888]]
 
* [[HeroEngine Quartz (Older Revisions)|Quartz.c: 2.5.13888]]
* [[HeroEngine Quartz|Quartz.d: 2.5.TBD]]
+
* [[HeroEngine Quartz|Quartz.d: 2.5.17365]]
 +
* [[HeroEngine Quartz|Quartz.e: 2.5.17601]]
 +
* [[HeroEngine Quartz|Quartz.f: 2.5.17940]]
 +
* [[HeroEngine Quartz|Quartz.g: 2.5.17976]]
 +
* [[HeroEngine Quartz|Quartz.h: 2.6.18042]]
 +
* [[HeroEngine Quartz|Quartz.i: 2.6.18077]]
 +
* [[HeroEngine Quartz|Quartz.j: 2.6.18103]]
 +
* [[HeroEngine Quartz|Quartz.k: 2.6.18186]]
 
<br>
 
<br>
  
Line 14: Line 21:
 
Quartz is a major inter-release update to [[HeroEngine Sapphire]].  This release includes a number of major feature, functionality, and performance changes and improvements.
 
Quartz is a major inter-release update to [[HeroEngine Sapphire]].  This release includes a number of major feature, functionality, and performance changes and improvements.
  
This page contains information and links on new features, changes, and fixes in the current HeroEngine 2.5 Quartz.d release.  Information on prior releases can be found at [[HeroEngine Quartz (Older Revisions)]].
+
This page contains information and links on new features, changes, and fixes in the current HeroEngine 2.5 Quartz.d or later release.  Information on prior releases can be found at [[HeroEngine Quartz (Older Revisions)]].
  
 
<br>
 
<br>
Line 43: Line 50:
  
 
<br>
 
<br>
DirectMusic is supported only on Vista and Windows 7.  DirectMusic will be removed completely in a [[HeroEngine Amethyst|major, future release]].
+
DirectMusic has been removed.  This should not be an issue, as only the legacy Hero's Journey Reference worlds were using this legacy APIA discussion of how Hero's Journey was updated from DirectMusic to [[FMOD Studio]] can be found on the [[FMOD Studio|FMOD Studio page]].
  
If you are starting a new project, or have not started audio work on an existing project, we recommend using the new FMOD Studio; instead of the older FMOD Ex which has been discontinued by FMOD developer Firelight.
+
If you are starting a new project, or have not started audio work on an existing project, we recommend using the new [[FMOD Studio]], instead of the older FMOD Ex which has been discontinued by FMOD developer Firelight.
 +
 
 +
[[FMOD Studio]] not only supports project-based files, but also supports a full-range of options for WAV, MP3, and XMA audio files as well.
  
 
<br>
 
<br>
Line 61: Line 70:
 
===Middleware===
 
===Middleware===
 
*New: FMOD Studio 1.05.14
 
*New: FMOD Studio 1.05.14
*Updated: granny 2.9.29.0
 
 
*Updated: FMOD Ex 4.44.39
 
*Updated: FMOD Ex 4.44.39
 
*Updated: Freetype 2.5.3
 
*Updated: Freetype 2.5.3
Line 67: Line 75:
 
*Updated: SQLite 3.8.6  
 
*Updated: SQLite 3.8.6  
 
*Updated: boost 1.55.0
 
*Updated: boost 1.55.0
 +
*Updated: granny 2.9.34.0 (Quartz.i)
 
<br>
 
<br>
  
Line 72: Line 81:
 
*Requires: Microsoft Visual Studio 2013
 
*Requires: Microsoft Visual Studio 2013
 
*Replaced: STLport with Microsoft / Dinkum STL
 
*Replaced: STLport with Microsoft / Dinkum STL
*Removed: Syncfusion
+
*Replaced: Syncfusion with portable C#
*Removed: DirectMusic
+
*Replaced: DirectMusic with FMOD Studio
 
<br>
 
<br>
  
Line 140: Line 149:
 
**The distance to the shadow caster is calculated as the distance from the active camera view to the edge of the bounding radius of the shadow caster
 
**The distance to the shadow caster is calculated as the distance from the active camera view to the edge of the bounding radius of the shadow caster
  
 +
<br>
 +
 +
=== Audio / Sound External Function Changes ===
 +
 +
All of the HeroScript external functions for [[Sound functions|playing audio clips]] have been updated to use non-project files (e.g.: WAV, MP3, XMA) through [[FMOD Studio]] .
 +
 +
*StopSound
 +
*PlaySound
 +
*PlaySoundWithCallback
 +
*Play3DSound
 +
*Play3DSoundWithCallback
 +
*GetSoundVolume
 +
*SetSoundVolume
 +
 +
More information on these functions can be found on the [[Sound functions]] page.
 +
 +
<br>
 +
For completeness, FMOD Ex versions of these functions have also been created.  However, please keep in mind that their functionality is very limited compared to what's available through FMOD Studio.
 +
 +
*FModExStopSound
 +
*FModExPlaySound
 +
*FModExPlaySoundWithCallback
 +
*FModExPlay3DSound
 +
*FModExPlay3DSoundWithCallback
 +
*FModExGetSoundVolume
 +
*FModExSetSoundVolume
 
<br>
 
<br>
  
Line 148: Line 183:
 
Z is hardcoded to 0 as this function only builds a heading vector, and doesn’t have an up vector to use to calculate the roll.  
 
Z is hardcoded to 0 as this function only builds a heading vector, and doesn’t have an up vector to use to calculate the roll.  
 
Previous documentation indicated that this function returned a valid Z/roll value, which is not correct  
 
Previous documentation indicated that this function returned a valid Z/roll value, which is not correct  
 +
 +
<br>
 +
 +
=== Quartz.E Enhancements & Corrections ===
 +
*fix: HSL external function StopSound could crash due to invalid data
 +
*fix: bug in HSL compiler which caused PARTIALMATCH to be incorrectly interpreted and potentially fail
 +
 
<br>
 
<br>
  
Line 175: Line 217:
 
*new: heroscript history window completely rewritten. new buttons to view, diff revision vs current, and diff two revisions. comments are displayed at the bottom for the selected file
 
*new: heroscript history window completely rewritten. new buttons to view, diff revision vs current, and diff two revisions. comments are displayed at the bottom for the selected file
 
*new: login UI now allows list of worlds to be sorted by clicking on the column headers
 
*new: login UI now allows list of worlds to be sorted by clicking on the column headers
 +
*new: so that they are better seen and acted on by the user, validation-related informational, warning, and error messages are being converted over to pop-up messages, in addition to just a console or error window message
 +
<br>
 +
 +
=== Quartz.e New Features  ===
 +
*new: material instance overrides: no illumination, no fog, ambient only, full glow, glow color, modulation, glow intensity multiplier
 +
*new: dom editor filter terms are propagated on tab change if the old tab has a filter term, and the new tab does not
 +
*new: dom editor uses a splitter between the datatype definition list and the display / editing in order to provide more flexibility in space usage
 +
*new: per material shader glow intensity multiplier, and glow color modulator
 +
*new: material instance ui has options to display texture thumbnails as rgba, rgb-only (no alpha), or alpha channel only
 +
*new: although not exposed through the UI yet, now that glow mask and full glow are exposed through shader effect flags, any shader can use them in order to support either effect
 +
<br>
 +
 +
=== Quartz.H New features ===
 +
*New: Copy/Paste works in the server field replication destination inputboxes.
 +
*New: Middle mouse clicking on a tab in the HeroBlade closes that tab.
 +
*New: Copy/Paste works with server class replication destinations.
 +
<br>
 +
 +
=== Quartz.I New features ===
 +
*New: Updated Granny Version 2.9.34.0
 +
*New: Updated Max and Maya exporters and art depot installers for new granny version; Also added support for Max/Maya 2016.
 +
<br>
 +
 +
=== Quartz.J New features ===
 +
*New: New billing configuration for use of test wallets in game.
 +
<br>
 +
 +
=== Quartz.k New Features  ===
 +
*new: scene statistics can now be saved to a local file or copied to the clipboard in csv format
 +
*new: HSL function GetSceneStatistics returns the scene statistics data in csv format, so you can save it or whatever
 +
*new: Added filter timer to DOMEditorTab with events handled by DomEditorPanel; filtering occurs 250ms after last filter textbox update.
 +
*new: Filtering DOM definitions is much faster and no longer iterates over datagridview rows, using bound data instead.
 +
*new: Selecting fields is now much faster and no longer manually populates comboboxes, using bound data instead.
 +
*new: Detail UI updates are slightly faster and no longer iterate over datagridviewrows, using bound data instead.
 +
*new: Better visual indication of filter progress for very large data sets.
 
<br>
 
<br>
  
Line 197: Line 274:
 
*change: a number of tabbed containers including panel docking, heroscript editor, asset library, and others now display tabs in multiple rows if there are too many to fit on a single line
 
*change: a number of tabbed containers including panel docking, heroscript editor, asset library, and others now display tabs in multiple rows if there are too many to fit on a single line
 
*change: added usability message to terrain brush pattern texture selection to indicate that it's only enabled when the brush is set to perlin or texture
 
*change: added usability message to terrain brush pattern texture selection to indicate that it's only enabled when the brush is set to perlin or texture
 +
*change: as heightmap sizes larger than 64 are non-optimal for culling, seamless, and other performance reasons, the user is warned and prompted to continue if they attempt to use a value greater than 64
 +
*change: there’s no reason not to allow heightmap regridding / merging down to 2 (instead of 8)
 +
*change: since we recommend below max 64 heightmap regrid, default is now 32 (instead of 64)
 +
<br>
 +
 +
=== Quartz.e Enhancements  ===
 +
*change: minor reorganization of the dom editor to place “read only”, refresh, and “confirm changes” together in a more logical grouping instead of being scattered around the ui
 +
*change: removed global texture filter setting. all heightmap and mesh rendering will default to anisotropic
 +
*change: texture filtering is now per material
 +
*change: default texture filter (texfilter) to anisotropic (value: 3)
 +
*change: dom editor panels are now dockable
 +
*change/ fix: remove all the duplicate legacy dom architecture, which will improve performance, simplify the code, and address update issues
 +
*change: dom editor read-only mode switch applies to both dom’s instead of just one
 +
*change: dom editor class field allows user to enter field name and validate against list, instead of just picking from list
 +
<br>
 +
 +
=== Quartz.k Enhancements  ===
 +
*change: scene statistics display refactored
 +
*change: scene statistics copy to clipboard also follows the csv file format
 +
*change: Timer fields created via the DOM Editor now default to a write strategy of 'Never' (used to be 'Lazy').
 +
*change: Dpvs is no longer part of the default installation
 +
*change: split statistics panel into separate Memory Usage and Scene Statistics panels
 
<br>
 
<br>
  
Line 404: Line 503:
 
*fix: heroscript editor would not prompt you that a script was modified and unsaved when you attempted to close it. cleaned up “close script” logic
 
*fix: heroscript editor would not prompt you that a script was modified and unsaved when you attempted to close it. cleaned up “close script” logic
 
*fix: simplified “new script” dialog return logic
 
*fix: simplified “new script” dialog return logic
 +
*fix: unsupported or non-working features for Fmod Ex and FMod Studio, including: seamless transitions, heroscript integration, prop buckets, and behaviors
 +
*fix: re-organized terrain panel brush/ import page to be more sensible
 +
*fix: material comparison would incorrectly return false when trying to parse non-heromaterial fields. this could cause an erroneous comparison
 +
<br>
 +
 +
=== Quartz.e Corrections  ===
 +
*fix: add bulletproofing to fix crash attempting to find missing or incorrectly named track mask in skeleton (8578, 8579)
 +
*fix: panels could be updated even if they were not the current, visible panel. this could cause a performance hit
 +
*fix: several crashes due to empty dynamic texture bank material or bank
 +
*fix: lights in the default/ everywhere room now effect all rooms, instead of just the default/ everywhere room
 +
*fix: the shader associated with a material is re-selected after material override changes in order to pick-up any effecting changes
 +
*fix: incorrect logic handling hair shaders would prevent general shader selection logic from working correctly
 +
*fix: material override alpha type handling called the wrong function, which left the material in an indeterminate state
 +
*fix: lights didn’t correctly illuminate meshes due to incorrectly modulating in alpha value as scalar.
 +
*fix: gui control image texturefilter was not setting the correct mip filter when enabled
 +
*fix: crash handling named package groups in dom editor. cleaned up npg definition so it derives from standard dom datatype definition
 +
*fix: class archetype should never be editable after initial creation
 +
*fix: copying a dom class was incorrectly using the source dom for id values
 +
*fix: heroscript editor - opening a file group and thereby closing open scripts could cause an exception and crash
 +
*fix: it was possible for texture filtering to be incorrect
 +
*fix: rewrote material instance string handling to make it more robust
 +
*fix: material instance editor alpha list validation issue
 +
*fix: multiple small bugs with material instance overrides
 +
*fix: lights didn’t correctly illuminate meshes due to incorrectly modulating in alpha value as scalar.
 +
*fix: replaced property panel, undo panel splitter controls with split containers to fix UI issues
 +
*fix: bone rotation regression due to abstracting third party animation system
 +
*fix: make the gui mouse alpha test texture format error more informative
 +
*fix: texels from lit meshes with final alpha values <= 8 are discarded. this prevents some strange lighting issues due to poor / interpolated alpha and/ or other engine options which can push alpha slightly above zero when it should be invisible
 +
*fix: material instance alpha type listbox selection was easily confused
 +
*fix: lod 2.0 broke asset library icon creation due to inadvertently overlapping delimiter set.  asset library messages now uses a different delimiter
 +
*fix: dom editor filtering should be faster, removing progress bar
 +
*fix: tab order in dom and dream manager ui's
 +
*fix: sorting a dom datatype grid by clicking on the column headers could cause the listed data to reset
 +
*fix: class archetype defaults to data
 +
*fix: when using a glow mask, the diffuse texture (mask in w channel) is loaded to a separate point sampler. we assume the mask is linear color, and not default gamma corrected color
 +
*fix: glow mask materials fade out at the same rate as other non-alpha materials
 +
*fix: area instance group didn’t correctly initialize multiple data members, potentially leading to incorrect behavior and/ or a crash
 +
*fix: area spec didn’t correctly initialize multiple data members, potentially leading to incorrect behavior and/ or a crash
 +
*fix: effect spec didn’t correctly set last time lighting was updated, so it was possible for lighting to be incorrect for the effect
 +
*fix: gauntlet lightweight node class vars were not correctly initialized, which could cause incorrect behavior or a crash when the node is torn down
 +
*fix: camera had uninitialized variable which could initially cause incorrect panning
 +
*fix: rooms may not have been updated due to uninitialized variable
 +
*fix: mouse over detection for a waypoint node could be incorrect until it was rendered the first time
 +
*fix: heightmap slope limiter rendering could be initially incorrect due to uninitialized variable
 +
*fix: some logging functions didn’t cleanup correctly, which could lead to weird behavior or crashes
 +
*fix: physics dynamics interpolation was passing similar but not identical, underived structure to lerp function. for safety there’s now a separate function to lerp both data structures
 +
*fix: dynamic model skin texture could be incorrect due to uninitialized index value
 +
*fix: dynamic texture layer could be incorrect due to uninitialized index value
 +
*fix: dynamic parts could crash due to invalid iterator
 +
*fix: facegen could cause a crash due to invalid value cast due to signed cast to unsigned
 +
*fix: environment scheme group could get into a weird state due to invalid data
 +
*fix: forcing a key binding would signal it failed even though it succeeded because the success value wasn’t actually returned
 +
*fix: some resource requests could fail because the signed guid (indicating local or remote) was converted to an unsigned value
 +
*fix: server service nodes didn’t correctly initialize their crash indicator flag, which could result in believing it had crashed when it hadn’t
 +
*fix: misc uninitialized variables are now correctly initialized
 +
*fix: misc C++ conformance and performance improvements
 +
*fix: material instance ui specular channel in normal map didn’t always work correctly due to failure to reset effect on change
 +
*fix: material instance ui options are enabled or disabled based on texture(s) being correctly set
 +
*fix: due to multi-pass lighting, some effects such as glow were run for each light instead of once during the ambient environment light pass
 +
*fix: moderately reduced the number of shader effect permutations by moving glow from conditional compiles to flags. this is a potentially big performance improvement due to the smaller number of shaders
 +
*fix: enabled heightmap “vertex color only” on a heightmap with a texture would cause a crash
 +
*fix: multiple systems now set and restore their rendering state to prevent breaking other systems
 +
*fix: render state is explicitly restored after rendering hair
 +
*fix: unneeded legacy stencil setup resulted in bad rendering state
 +
*fix: regular translucent rendering path interfered with not quite so regular dynamic detail node translucent rendering path
 +
<br>
 +
 +
=== Quartz.F Corrections  ===
 +
*fix: updated physics warning strings to correctly parse HSL node ids
 +
*fix: client side replication destinations can be set correctly though the DOM Editor
 +
*fix: corrected copy to client/server issue when copying dom definitions
 +
*fix: The property panel for editing GUIs and Emitters shows correctly
 +
*fix: Corrected a crash when saving dom editor information
 +
*fix: correct bug with GetScreenSpacePositionOfHBNode
 +
<br>
 +
 +
=== Quartz.G Corrections ===
 +
*fix: Field Definitions are listed correctly in the Server DOM Editor
 +
*fix: The DOM Editor now enforces a minimum size before a scroll bar appears to prevent controls from being cut off on lower resolutions.
 +
*fix: corrected an issue with invalid local repository path in loadLocalRepositoryData when loading files from the LRC.
 +
*fix: corrected tab order when creating a dom field.
 +
*fix: The client destination in the Sever DOM Editor for class field replication lists the correct fields.
 +
*fix: the property panel will now get focus after adding a control to a GUI while editing it.
 +
*fix: Corrected bug with glow options when multisampling was turned on.
 +
<br>
 +
 +
=== Quartz.H Corrections ===
 +
*Fix: The last item in a DOM tab is no longer cut off along with the scrollbar.
 +
*Fix: Organizer entry descriptions are persisted correctly.
 +
*Fix: Editing field replication destinations recognizes changes more consistently.
 +
*Fix: Clearing the client/server replication destination for a field will allow you remove replication settings for a field.
 +
*Fix: Class replication destinations will recognize they have pending edits more reliably.
 +
*Fix: The definition list for the dom editor panel will correctly resize when being filtered.
 +
*Fix: New areas will always be added to the area organizer correctly.
 +
<br>
 +
 +
=== Quartz.I Corrections ===
 +
*Fix: Corrected GUI9Slice to always render with the correct alpha color.
 +
<br>
 +
 +
=== Quartz.J Corrections ===
 +
*Fix: Updating logic for resizing the DOM to be quicker with a large number of values.
 +
*Fix: Corrected an issue when attempting to travel during area-preloading.
 +
<br>
 +
 +
=== Quartz.k Corrections ===
 +
*fix: scene statistics no longer flash or change display layout due to update
 +
*fix: client scene statistic generation is now a simple area,name,value tuple, instead of an over-engineered mess
 +
*fix: some client scene statistic data was eaten due to the previously over-engineered packing and unpacking
 +
*fix: dPVS scene class data wasn't correctly initialized, which could result in invalid behavior
 +
*fix: performance issue in dPVS due to matrix copy instead of coercion
 +
*fix: GUIControl tooltips now properly show/hide themselves when framerate is very high.
 +
*fix: custom model flag was set on clone source model, not cloned destination model. this could cause a crash on exit
 +
*fix: tint mask was incorrectly converted from sRGB to linear gamma
 +
*fix:remove magic multiplier in tint that caused all colors to shift to light, and light colors to blow out
 +
*fix: convert tint colors from sRGB to linear colors to correct color
 +
*fix: potential crash in compositing manager due to null handle
 +
*fix: physics actor data wasn't correctly initialized under all circumstances, leading to potential weird behavior or crash
 +
*fix: time variable parameter which is used by most nodes could cause a divide by zero resulting in incorrect behavior or crash
 +
*fix: trail nodes, environment schemes, and other systems could cause weird behavior or a crash by normalizing zero length vectors
 +
*fix: Position/size/alignment of 'Confirm Changes' checkbox in DOMEditorPanel.
 +
*fix: additional field validation in dream manager story creation
 +
*fix: adding a script link to a dream manager story didn’t work correctly - the list of open scripts would be blank
 
<br>
 
<br>
  
Line 543: Line 765:
 
*fix: If you drag a directory to the root of the repo, it actually creates the directory there instead of duplicating the root and then creating the directory under that
 
*fix: If you drag a directory to the root of the repo, it actually creates the directory there instead of duplicating the root and then creating the directory under that
 
*fix: repository view logic for displaying context menu with multiple files selected was incorrect. now, if any selected file is marked as deleted, all the files in the set are treated as deleted in order to eliminate spurious or confusing warnings or errors
 
*fix: repository view logic for displaying context menu with multiple files selected was incorrect. now, if any selected file is marked as deleted, all the files in the set are treated as deleted in order to eliminate spurious or confusing warnings or errors
 +
*fix: transfers are cleared when changing repositories
 +
<br>
 +
 +
=== Quartz.E Corrections  ===
 +
*fix: potential exception in repository browser due to attempting to save null repository info to registry if you log into a world you've never logged into and immediately exit
 
<br>
 
<br>
  
Line 553: Line 780:
 
*New: ConfigInt values to control if the serverscreamer messages are on and if you want them to go to the world chat channel.  
 
*New: ConfigInt values to control if the serverscreamer messages are on and if you want them to go to the world chat channel.  
 
*new: seamless and non-seamless travel request timeouts are now configurable via the universe config parameter 'AreaMoveRequestTimeoutInSeconds'
 
*new: seamless and non-seamless travel request timeouts are now configurable via the universe config parameter 'AreaMoveRequestTimeoutInSeconds'
<br>
 
 
=== Enhancements  ===
 
 
<br>
 
<br>
  
Line 565: Line 789:
 
*fix: Seamless travel no longer causes player root nodes to hang forever in limbo if the client fails to ready itself before the destination server times out the move request.
 
*fix: Seamless travel no longer causes player root nodes to hang forever in limbo if the client fails to ready itself before the destination server times out the move request.
 
*fix: some DOM coordinator variables were not correctly initialized, which could cause a crash
 
*fix: some DOM coordinator variables were not correctly initialized, which could cause a crash
 +
<br>
 +
 +
=== Quartz.E Corrections  ===
 +
*fix: REQUEST_ROOT_LOAD could cause a world server crash due to bad iterator
 +
*fix: repository server addResourceData didn’t actually null the resource data pointer after freeing the data, which would cause anyone who subsequently tried to use it to get bad data and/ or crash
 +
*fix: live push server shutdown could crash due to dereferencing iterator after it was erased
 +
*fix: bug in HSL compiler which caused PARTIALMATCH to be incorrectly interpreted and potentially fail
 +
*fix: server push api interface correctly resets from database connection failure
 +
<br>
 +
 +
=== Quartz.k Corrections ===
 +
*fix: Corrected client originating script errors to the server no longer leak the user account name in the error. Now displays the account hash instead.
 +
*fix: Corrected additional instances of user account name leaking into server screamer script errors from client initiated calls.
 
<br>
 
<br>
  
Line 573: Line 810:
 
*new: form manager saves and restores positions and sizes of all moveable dialogs. values are stored in the registry at HKCU/Software/HeroEngine/Windows/...
 
*new: form manager saves and restores positions and sizes of all moveable dialogs. values are stored in the registry at HKCU/Software/HeroEngine/Windows/...
 
*new: will not let you shutdown or terminate processes named 'FIREUP_DAEMON'  
 
*new: will not let you shutdown or terminate processes named 'FIREUP_DAEMON'  
 +
*New: Log to file option in MCC menu. Clicking the button will open a file selector dialog. Clicking the button a second time will stop logging. Files selected will be created or appened to.
 
<br>  
 
<br>  
  
 
=== Enhancements  ===
 
=== Enhancements  ===
 
*change: menu options and buttons will be locked down based on authorizations.  
 
*change: menu options and buttons will be locked down based on authorizations.  
 +
*Change: MCC now colors shutdown , crashed, and disconnected processes differently so a user can tell easily what world is having issues. Red = crashed/problem with process or subprocess, Grey = all subprocesses shutdown, Violet = disconnected. This also unifies all colors into easy look up tables with priorities for tree views so new states and color changes are easier to add.
 
<br>
 
<br>
  
Line 590: Line 829:
 
=== New Features  ===
 
=== New Features  ===
 
*new: WorldPush gives more feedback when applying non-area selected changes.<br>  
 
*new: WorldPush gives more feedback when applying non-area selected changes.<br>  
 
=== Enhancements  ===
 
<br>
 
 
=== Corrections  ===
 
 
<br>
 
<br>
 
[[Category:Version_notes]]
 
[[Category:Version_notes]]

Latest revision as of 03:12, 26 April 2016


Contents

Release: HeroEngine 2.5

Codename: Quartz

Internal Branch Versions


Release Dates: March 2014 - Present

Quartz is a major inter-release update to HeroEngine Sapphire. This release includes a number of major feature, functionality, and performance changes and improvements.

This page contains information and links on new features, changes, and fixes in the current HeroEngine 2.5 Quartz.d or later release. Information on prior releases can be found at HeroEngine Quartz (Older Revisions).


Obtaining the Release


Supported Operating Systems

Windows Vista is now the minimum supported client operating system. 64-bit (x64) versions of Windows 8.1 or Windows 10 are recommended.

In a future, major release, HeroEngine clients will require a 64-bit (x64) client operating system. This will increase client performance, and allow the client to access and utilize more memory than the current 32 bit (x86) executable client.

The HeroEngine Art Pipeline 2015.1 requires a 64-bit (x64) operating system.


Major Feature Summary

The following is a list of major features expected to be included in this release and is not a guarantee of the availability of the feature in the final release.


DirectMusic has been removed. This should not be an issue, as only the legacy Hero's Journey Reference worlds were using this legacy API. A discussion of how Hero's Journey was updated from DirectMusic to FMOD Studio can be found on the FMOD Studio page.

If you are starting a new project, or have not started audio work on an existing project, we recommend using the new FMOD Studio, instead of the older FMOD Ex which has been discontinued by FMOD developer Firelight.

FMOD Studio not only supports project-based files, but also supports a full-range of options for WAV, MP3, and XMA audio files as well.


Art Pipeline


Please note that the HeroEngine Art Pipeline 2015.1 requires a 64-bit (x64) operating system.


Middleware


Build System


Deployment/Patching/Installation Infrastructure


Localization

All client and server GUI's are now localizable.


Updated Korean language strings strings are included in the release.


Breaking GUI Editor / GUI XML Changes

Some existing GUI XML files may have been missing texture coordinates, or may have had incorrect texture coordinates for some textures. This is seen as incorrect rendering of textured GUI elements in the new release. Opening the affected GUI in the GUI Editor, fixing the texture coordinates, and re-saving will fix the problem.


Some existing GUI controls may have been rendered without the correct textureFilter setting taken into account. A GUI control with a crisp and sharp texture should have the textureFilter set to FALSE. Setting textureFilter to TRUE will cause the GUI control with a texture to linearly filter the texture which can be used to remove jaggy lines from images used in the GUI.



HeroScript Language (HSL), DOM, Database, and Foundation Framework

New Functions


GetGraphicsOptionValue / SetGraphicsOptionValue Changes


Audio / Sound External Function Changes

All of the HeroScript external functions for playing audio clips have been updated to use non-project files (e.g.: WAV, MP3, XMA) through FMOD Studio .

More information on these functions can be found on the Sound functions page.


For completeness, FMOD Ex versions of these functions have also been created. However, please keep in mind that their functionality is very limited compared to what's available through FMOD Studio.


Enhancements & Corrections

Returns: X = Pitch, Y = Heading, Z = 0, in degrees. Z is hardcoded to 0 as this function only builds a heading vector, and doesn’t have an up vector to use to calculate the roll. Previous documentation indicated that this function returned a valid Z/roll value, which is not correct


Quartz.E Enhancements & Corrections


HeroBlade Editor and Player Client

New Features


Quartz.e New Features


Quartz.H New features


Quartz.I New features


Quartz.J New features


Quartz.k New Features


Enhancements


Quartz.e Enhancements


Quartz.k Enhancements


Corrections


Quartz.e Corrections


Quartz.F Corrections


Quartz.G Corrections


Quartz.H Corrections


Quartz.I Corrections


Quartz.J Corrections


Quartz.k Corrections


Player Client

This section includes Player Client specific changes.  General client changes are listed above under HeroBlade

New Features


Enhancements


Corrections


Repository Browser

Please note there is an implicit 2 GB size limit on uploaded file size, and 4 GB size limit on downloaded file size. In practice, and due to memory addressing limitations, the 32-bit (x86) Repository Browser is limited to maximum upload sizes of approximately 512 MB - 1 GB, and slightly larger maximum download sizes. In a future release, the 64-bit (x64) Repository Browser is able to upload and download the maximum supported file sizes.

New Features


Enhancements


For performance reasons, you cannot drag & drop files from the remote repository window to Windows Explorer. If necessary, drag & drop the files from the remote repository window directly into the local directory in the local directory window.

Corrections


Quartz.E Corrections


Server Processes


New Features


Corrections


Quartz.E Corrections


Quartz.k Corrections


Master Control Console


New Features


Enhancements


Corrections


Server Utilities


New Features


Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox