Version 1.9.1 (January 1, 2010)
- New methods for setting effect parameters from scripts:
- New script method for retrieving 3D light position:
- When using the "maintain aspect ratio" feature in full-screen, mouse
pointer is confined within the visible area and it no longer hides
underneath the black borders.
- FIX: Crash when using Game.NumItems before any other inventory-related
- FIX: Occasional crash when frequently changing talking sprite of an
- FIX: Black frames briefly displayed in the beginning of theora video
Version 1.9.0 beta (September 26, 2009)
- Support for advanced materials defined by effect files (i.e. shaders).
- New methods: Game.EnableScriptProfiling() and
Game.DisableScriptProfiling() for gathering script execution time
- SceneEdit and ProjectMan are now using DirectX 9.
- FIX: FadeOut methods were changing the color of black bars when using
aspect ratio correction.
- FIX: Game.SetMousePos() and actor.CreateParticleEmitterBone() were
broken when using aspect ratio correction.
Version 1.8.11 (September 4, 2009) - maintenance release
- New method window.CreateEntityContainer().
- Method entity.PlayTheora() now allows you to specify
starting time for video playback.
- FIX: Hidden geometry misplaced in scenes with parallax scrolling.
- FIX: Wrong mouse position when using Game.MouseX / Game.MouseY /
Game.LockMouseRect() together with aspect ratio correction.
- FIX: WindowEdit not storing the FadeColor property.
- FIX: Calling Game.EndDlgBranch() when there was no active dialogue
branch crashed the engine.
- FIX: Aligning static control content to the bottom edge didn't work.
- FIX: Minor bug in String Table Manager.
Version 1.8.10 (Februrary 14, 2009)
- New property actor3D.AmbientLightColor for overriding
ambient lighting for individual actors.
Version 1.8.9 beta (December 20, 2008)
- FIX: Aspect ratio settings were ignored if the settings dialog has been
disabled by the user.
- FIX: When searching for "backup resolution" (when the requested
full-screen resolution is not available) monitor aspect ratio is taken into
- FIX: Settings dialog was always showing if optimal or backup resolution
has been auto-selected.
- FIX: Rare crash in pathfinding for 3D actors.
Version 1.8.8 beta (November 15, 2008)
- WME now uses nearest higher resolution for full-screen if the originally
requested resolution isn't available.
- The "Use desktop resolution" in game settings dialog can be enabled or
disabled in project settings.
- Updated Theora video library to version 1.0.
- FIX: Previous beta silently failed if the requested full-screen
resolution wasn't available.
Version 1.8.7 beta (October 26, 2008)
- Experimental support for maintaining optimal aspect ratio when running normal resolution game on a widescreen monitor and vice versa.
- New script property Game.SaveDirectory for querying the directory where saved games are stored.
- FIX: 3D actors sometimes briefly displaying wrong pose when transitioning between animations.
- FIX: 3D actors not resetting talking animation when talking on other channel than 0.
- FIX: DropToFloor property incorrectly affecting 3D actor attachments moving them to unexpected positions.
- FIX: Nested GUI windows displaying in wrong position if their parent window is moved.
Version 1.8.6 (April 6, 2008)
- 3D characters now can contain "private blocked regions" for simple
collision detection between actors (only works for scenes with 2D
- Added an option to include the D3DX library with compiled game (for
games using Direct3D 9).
- The crash reporter is now disabled if WME is being debugged (useful for
- The Game.PlayVideo() method is now marked as deprecated in favor of
- FIX: The editor control now works in UTF8 mode and with right-to-left
- FIX: Sprite.Reset() method now also stops all sounds being played by the
- FIX: Playing Theora video inside a GUI window (using an embedded entity)
resulted in misplaced video.
- FIX: Some minor bugfixes.
Version 1.8.5 (March 16, 2008)
- New scripting methods (see the documentation for more details):
actor3d.GetBonePosition3D() - for querying 2D and 3D position
of a specified bone.
- actor3d.CreateParticleEmitterBone() - for creating
particle emitter connected to a specified bone.
- actor3d.SetTheoraTexture() - for assigning a Theora
video as a texture.
actor3d.RemoveIgnoredLight() - for specifying lights that
should/shouldn't affect the 3D actor.
- The CreateParticleEmitter() method of actors and
entities now allows you to specify that the particle emitter will follow its
- SpriteEdit now allows you to enable vertical/horizontal mirroring of
- SpriteEdit now provides an option to keep streamed animations in memory
after they stream in.
- In WindowEdit you can no longer select hidden controls with mouse in the
- WindowEdit now allows you to set the "Caption" property for editors.
- The "compatibility mode" (aka DirectDraw mode) has been dropped. WME
games now require 3D accelerated video card.
- New PAINT_WHOLE_CELL property is now available in bitmap font
definitions to allow proper character overlapping. The SPACE_WIDTH property
is now documented.
- FIX: Particle emitters assigned to 3D actors didn't always work.
- FIX: Crash on terminating script with child threads still running.
- FIX: Images used instead of sprites were needlessly loaded twice from
Version 1.8.4 (February 17, 2008) - internal release
Version 1.8.3 (February 9, 2008) - yet another maintenance release
- Updated libVorbis to the latest version.
- FIX: Response boxes sometime briefly displaying text using system font.
- FIX: Yet another attempt to fix the actor skipping when using certain
combinations of GoTo and TurnTo methods.
- FIX: Added a missing "Caption" property to buttons in WindowEdit.
- FIX: Removed forgotten debug log messages in ProjectMan.
Version 1.8.2 (January 13, 2008) - maintenance release
- New Scene.ScrollToAsync() method omitted in previous
- New Game.AutorunDisabled property to enable/disable
Windows CD AutoRun feature while the game is running.
- FIX: Random crashes when using custom fonts for dialogue responses.
- FIX: actor3D.GoTo() method causing actor jumping to a target position
under certain conditions.
- FIX: The editor control no longer "eats" key presses it cannot handle
(such as function keys).
Version 1.8.1 (November 4, 2007) - maintenance release
- WME compiler now recognizes the #region and #endregion directives for
better visual script organization. WME Integrator can now add support for
these directives (users of UltraEdit/UEStudio please re-generate integration
- FIX: WindowEdit was not saving scripts attached to entity containers.
- FIX: Display driver crash in ProjectMan when rapidly changing scene
- FIX: 3D actors sometimes getting stuck in the corner when 2D pathfinding
- FIX: Engine crash when the user used = instead of == for comparison.
- FIX: Engine crash when changing scene while GetResponse() was active.
- FIX: Occasional crash in 3D scenes while changing to another scene.
- FIX: Inventory item cursors not animating when "combined cursor" is
- FIX: Wrong paths generated by SceneEdit immediately after adding a new
package to the project.
Version 1.8 (September 23, 2007)
- WME is now available in two versions, Direct3D 8 and Direct3D 9. You can
select which version of the runtime should be used in project settings in ProjectMan.
- New option "Hardware T&L" in ProjectMan to enable hardware accelerated
transform and lighting for 3D models.
- New WindowEdit tool for editing windows, inventory boxes and response
- Windows Vista integration support. WME games can now be
integrated in Vista's Game Explorer. The changes are too numerous to be
listed here. Please see the "Windows Vista support" chapter in the
documentation for a detailed description.
- Changes to animation handling for 3D characters:
- The StopAnim() method now accepts an optional transition time.
- There is a new actor3D.AnimStopTransitionTime
property for specifying the time it takes to transition back to default
pose once animation ends.
- Non-looping animations played using the PlayAnimChannel() method no
longer get stuck at final frame.
- New WME crash reporting library which can upload crash details to a
database or send it by email. Please upload crash reports so that common
crash causes can be analyzed and fixed.
- Optimized rendering speed of tiled images, bitmap fonts and particles.
- New format for 2D actors definition file. It allows you to define any
number of named animation sets. The animation sets can be then switched at
runtime using the new actor.IdleAnimName, actor.WalkAnimName,
actor.TalkAnimName, actor.TurnLeftAnimName and
properties. Additionally you can load new animation sets at runtime using
the actor.MergeAnims() method and unload them using the
actor.UnloadAnim() method. The actor.PlayAnim() method now
accepts either a script filename or an animation set name. Basically all
this is an effort to make 2D actors handling more flexible and more similar
to the 3D actors model.
- Direct keyboard movement for 3D characters now also works for scenes
with 2D blocked regions.
- New "Require sound" option in ProjectMan. If enabled the game will not
run without a sound card (can be used for games which heavily rely on sound
- String tables now accept space as a separator, not only tabs.
- WME Integrator now also supports UEStudio.
- The numpad + and - keys in SceneEdit now also work for adding waypoints,
not only region vertices.
- Changed the way method calls are terminated (see
this forum thread for a detailed description). Since this is a
potentially breaking change, it's possible to restore the previous behavior
using the "Compatibility" property in ProjectMan.
- New debugging options in ProjectMan. You can now specify that you
want to include the crash reporting library with the compiled games and that
you want the FPS display / debug mode to be enabled for the compiled games.
It's useful for building alpha/beta versions of the game.
- New "copy as is" file filter in ProjectMan, which specifies that certain
file types aren't included in game packages, but rather copied to the output
directory. Useful for TrueType fonts and AVI videos.
- ProjectMan now displays short help for all the project options.
- New property Game.MaxActiveLights which returns the
maximum number of lights supported by video card.
- New property Game.HardwareTL to check whether the game
is using hardware transform and lighting.
- New property Game.StartupScene and a corresponding
setting in ProjectMan. The standard template now takes advantage of this
property instead of hardcoding the filename of the scene.
- New Scene event SceneShutdown which is triggered just
before the scene is about to be changed.
- New method Scene.GetLightColor() for querying the color
of a 3D light.
- New Game.GetFileChecksum() method for calculating a
checksum (CRC32) of a specified file (useful for copy protection schemes).
- New scene methods and properties for querying lights and 3D nodes:
- New method for storing the saved game thumbnail (i.e. you can now
specify the exact moment when to take the screenshot if you need to, instead
of letting the engine do it automatically) - Game.StoreSaveThumbnail().
Similarly, the Game.DeleteSaveThumbnail() can be used to
release the stored thumbnail.
- New 3D actor methods for checking if an animation is playing: actor3D.IsAnimPlaying(),
- New 3D actor methods for specifying animation transition time for
various animation pairs: actor3D.SetAnimTransitionTime(),
- New 3D actor property for specifying which channel to use for talking
- New global functions for working with the HSL color model (Hue,
Saturation, Luminance): MakeHSL(), GetHValue(),
GetSValue(), GetLValue() (requested for
easier changing of light intensity).
- The video subtitle files (.sub) can now use the "localizable" form of
text ("/string_id/actual text") which means you can localize video subtitles
using the string table, just like any other in-game text.
- The Game.PlayVideo() and Game.PlayTheora() methods now allow you to
explicitly specify a video subtitles file.
- ProjectMan now provides two actions for files: Open and Edit.
Double-click defaults to "Open". These actions use the Windows Explorer file
- ProjectMan now allows you to compile a single package, so that you don't
need to recompile the entire project after making minor changes. Right-click
a package in ProjectMan and choose the "Compile this package" command.
- FIX: Custom scene properties were not reset on scene transitions.
- FIX: Compiled game packages were sometimes referencing more files than
how many they actually contained.
- FIX: The check-boxes in the settings dialog no longer disappear when
pressing the Alt key in XP/Vista.
- FIX: When using multiple particle sprites the particle emitter was
always choosing only one of them.
- FIX: The engine no longer issues absolute path warnings when working
with personal saved games stored in "Documents and and Settings" folder.
- FIX: TrueType fonts are now only registered for WME, not for all
- FIX: Fixed many hard-to-replicate crash bugs reported by users using the
new crash reporting feature. Keep the reports coming!
Version 1.7.3 (June 2, 2007)
- New methods Scene.EnableFog() and
for enabling fog for 3D characters.
- SceneEdit now displays the hot-spot placement for
entities to provide a better visual clue.
- Tweaked handling of 3D geometry for scenes with a custom
- WME Integrator can now generate
GeSHi PHP script.
- Removed the troubleshooting options from the startup dialog.
- Several documentation fixes.
- FIX: StickToRegion() method remained active even after
changing into another scene.
- FIX: Volume setting for theora playback. Game.PlayTheora()
uses global SFX volume, Entity.PlayTheora() inherits volume of its parent
- FIX: Memory leak in String.Split().
- FIX: Changing script order in ProjectMan didn't work
- FIX: Sprite.AddFrame() was broken.
- FIX: Alpha color for entity containers didn't always
Version 1.7.2 (March 11, 2007)
- WME now comes bundled with a customized
SciTE editor for
script and definition files editing.
- New WME Integrator tool for for integrating WME with external
script editors (supported editors:
- New script methods for dynamic creation/deletion of scene layers:
Scene.AddLayer(), Scene.InsertLayer(), Scene.DeleteLayer().
- New script methods for dynamic scene nodes creation/deletion:
Layer.AddEntity(), Layer.InsertEntity(), Layer.DeleteEntity(),
Layer.AddRegion(), Layer.Insert.Region(), Layer.DeleteRegion().
Layer.Width and Layer.Height properties are no longer read-only
and can be changed at runtime.
- It's now possible to set ambient light color in SceneEdit (only affects 3D
characters). It can also be changed programmatically using the
- New Window.Transparent property for making "click-through" windows.
- New project directory in ProjectMan now defaults to "My Documents" instead
of "Program Files" to be more Vista-friendly.
- FIX: Some .geometry files weren't properly loaded.
- FIX: Plugin selection window in ProjectMan was broken.
- FIX: Setting package priority now also affects game being run from
ProjectMan, not only compiled game.
- FIX: Obect.SetFont(null) now removes the assigned font and no longer
attempts to load a file called 'null'.
Version 1.7.1 (February 11, 2007) - maintenance release
- New scripting methods for iterating free scene nodes (Scene.GetFreeNode(),
- New scripting methods for dynamic creation/modification of region entities
Region.AddPoint(), Region.InsertPoint(), Region.SetPoint(),
- Sprite attachments. It is now possible to attach an entity to other
entity or actor. This is primarily intended for creating simple "blob"
shadows for 2D actors. New methods and attributes: Actor.AddAttachment(),
- New Game.SuppressScriptErrors attribute which suppresses the
"Script runtime error" messages on screen.
- It is now possible to block-select multiple lines in String Table Manages
using Shift+Click and deselect using Ctrl+Shift+Click.
- Debugging console now allows you to add "watches", i.e. to only monitor
- Debugging console now allows you to inspect properties of native game
- 3D actors now use the idle animation for talking if the specified talk
animation doesn't exist.
- FIX: Crash analysis tool was broken in version 1.7.
- FIX: Memory leak when loading .X models.
- FIX: Crash when saving game on secondary monitor with save thumbnails
Version 1.7 (January 21, 2007)
- Stencil shadow support for 3D characters.
- Stencil shadows are projected onto hidden scene geometry. For that
reason, more detailed geometry is necessary. It is now possible to include
meshes only for the shadow casting purposes in the geometry 3DS file. See
the "3D Characters -> Principles and requirements" chapter in the docs for
updated hidden geometry discussion.
- 3D actors can now reference a separate low-poly model for stencil shadow
generation purposes (see the "3D actor definition file" in the docs).
- It's possible to set shadow detail level on scene-per-scene base directly
in SceneEdit (you can only enable stencil shadows in some scenes if you need
- New attributes and methods: Game.MaxShadowType,
- There is a new chapter called "Shadows" in the docs which describes all
the supported shadow types, and their pros and cons.
Debugging console. The console allows the developer to inspect running
scripts and the values of script variables at runtime. It also allows setting
breakpoints to pause game flow at specified script lines. See the "Debugging
console" chapter in the documentation for more details.
String Table Manager. A new tool for extracting game texts and
managing the string table for localization purposes. See the "String Table
Manager" chapter in the documentation for more details.
Note: Both Debugging console and String Table Manager require
Microsoft .NET Framework 2.0 installed. It can be downloaded
- Changed the behavior of scene scrolling for 2.5D scenes. WME now assumes the
camera overviews the entire scene (previous versions assumed camera only
overviewed the top-left part of the scene). The original behavior can be
restored by checking the "Scene scrolling pre-1.7" checkbox in SceneEdit.
- X models now support the "AnimTicksPerSecond" attribute exported by some
- Added right-to-left reading order support for the game settings dialog
(see the "Localization support" chapter in the docs).
- Upgraded to the latest version of Theora decoder, which now uses MMX
instructions to improve performance.
- New scripting methods and attributes:
- Game.TalkSkipButton -
specifies which mouse button can be used to skip talk lines (left, right,
- Game.ClearResponses() - clears any responses previously added by
- specifies whether a scene change is currently in progress.
Game.LockMouseRect() - locks mouse pointer movement to a specified
rectangle on screen.
- Actor3D.AnimTransitionTime - default
time for smooth animation transitions.
- to prevent actors from moving by just one pixel.
- maximum number of particle batches generated by the particle emitter.
Emitter.EmitEvent - allows the particle emitter to trigger a script
event whenever a new batch of particles is generated.
Button.TextAlign - omitted in previous versions.
Actor3D.MergeAnims() - to load 3D character animations from X file at
- Actor3D.UnloadAnim() - to release animations from
- New global function Debug() which pauses game execution and invokes
the debugging console.
- Spacebar in SceneEdit toggles visibility of a selected node (useful for
fine-tuning overlay placement with keyboard).
- ProjectMan doesn't show hidden files by default (can be re-enabled in
- In windowed mode, WME now remembers and restores the previous window
- Low-res shadow model can now be used for flat and stencil shadows to improve
- When placing a 3D actor in SceneEdit, you can select which animation is
played by the actor (Actor -> Choose animation).
- New license. WME is now distributed as
donationware. No separate commercial license is required.
- New WME logo (thanks to Malasieno), new WME website design (thanks to odnorf).
- FIX: Bounding box for 3D characters was only growing and it was never
restored to its original size.
- FIX: Animation events for 3D characters are no longer skipped on low
- FIX: Camera roll value is now properly read from 3DS files generated by 3D
- FIX: Memory leak in Actor3D.SetTexture().
- FIX: Game.HideLoadingIcon() was causing script stack corruption.
- FIX: Alpha values lower then 8 are no longer ignored.
- FIX: Alpha blending modes were causing graphical artifacts on 3D actors.
- FIX: Passing 'float' values from plugins didn't work.
Version 1.6.1 (May 20, 2006)
- Response box definition can now specify vertical alignment of responses.
- BUGFIX: The tools no longer crash after changing hardware settings.
- BUGFIX: Theora video playback no longer crashes when "no sound" option is
- BUGFIX: The tools no longer issue the absolute-path warning when opening
file for editing.
- BUGFIX: Some .X models were rendered with mismatched textures.
Version 1.6 (May 13, 2006)
- 3D actors are now using the Microsoft X model format. The 3D actor
definition files have changed, so did the scripting support. The old format
is still supported for backward compatibility, but it's now deprecated. See
the "3D characters support" chapter in the documentation for more details
and for migration hints. Some of the notable improvements to the new 3D
- Smooth transitions between animations.
ability to change actor's texture at runtime, you can also use WME animated
sprites for textures.
- The attachments are now independent scriptable
New standard animations, TurnLeft and TurnRight.
scenes can now be setup to use 2D-based pathfinding, i.e. you can use
the same way of designing blocked areas and waypoints as you would use for
2D actors; see the "Additional 3D options" chapter in the documentation for
- New DrawBackfaces attribute for 3D actors which
specifies whether the 3D model should display polygons facing away from the
- New particle generator system. See the "Particle effects" chapter
in the documentation for more details. There is a new "wme_particles" demo
project with several predefined particle effects available.
- Accessibility support. WME now provides options for improving
accessibility for visually-impaired players. These include sending written
text to text-to-speech synthesizer, manually highlighting active areas on
screen using keyboard shortcuts and pausing the game at any time. There are
also some new scripting methods and attributes to support accessibility. See
the Accessibility chapter in the documentation for a detailed
- Multi-monitor support improvements. WME window now opens on the
correct monitor in both windowed and full-screen mode. The mouse pointer is
locked on the correct monitor in full-screen mode. WME tools now use the
right video device depending on which monitor they are displayed.
- WME is now more bullet-proof to common developer mistakes. Some of
the engine/tools crashes caused by developer mistakes have been handled
(syntax errors in definition files etc.). Missing images and sprites are now
replaced by a generic "invalid image" picture making them immediately
obvious to the developer. WME now issues a log-file warning if the game
references some file using an absolute path, which will cause problems after
compiling the game and running it on a different computer.
- The startup settings window has been redesigned to accommodate new
options. Note: The standard string table now contains new localizable
strings. Please update the string table of your game.
- New BlendMode attribute for actors, entities and particle emitters,
which allows you to set the drawing mode (normal, additive blending,
- New Game.LastResponseOrig attribute, which returns the last
selected dialogue response in it's original form, i.e. before it got
localized (useful for games with automatic voice-overs).
- New RightDoubleClick event.
- If you are using multiple inventories, each inventory remembers its scroll
offset, so when switching from one inventory to another the original scroll
offset is restored.
- New Game.InventoryScrollOffset attribute for setting and querying
current scroll offset of the inventory box.
- All inventory items are now accessible using the new Game.TotalNumItems
attribute and Game.QueryItem() method.
- New Game.SmartItemCursor property to only highlight the mouse
pointer with selected item if the object can handle the item.
- New Game.SetSceneViewport() and Scene.SetViewport() methods
for changing the scene viewport at runtime.
- New Game.SoundBufferSize attribute for setting the size of sound
buffer used for streamed sounds/music.
- New Game.SuspendedRendering attribute to temporarily disable screen
refreshes. Useful when you need to run multiple script updates in one frame.
- Entity.PlayTheora() method for entities now takes Entity.Scale into
account, video is scaled accordingly.
- ProjectMan no longer tries to check for WME updates if there's no active
- The debugging settings file formerly named dcgf.ini has been renamed to
- WME installation folder now contains the script language reference in XML
format. Useful for third-party tools.
- BUGFIX: Custom camera FOV is correctly restored when loading a saved game.
- BUGFIX: Changes to save/load to prevent memory leak causing long save/load
times under certain conditions.
- BUGFIX: The GUI buttons no longer display mouse-hover effects when game
isn't in interactive state.
- BUGFIX: Inventory items animations didn't work correctly after saving game
and loading it after restarting Windows.
- BUGFIX: 3D actors' direction/angle became broken after using the keyboard
- BUGFIX: Item.GetHoverSprite() and Item.GetSprite() methods were broken.
- BUGFIX: Division by decimal numbers lesser than 1.0 no longer causes
"Division by zero" error.
Version 1.5.2 (October 9, 2005)
- The Game.AddResponse*() methods now accept an optional font
filename to be used for a given response.
- WME now automatically uses speech sounds if their filename matches the
string table ID of a given speech line, no need to explicitly reference
speech files in scripts. New Game.AddSpeechDir() and
for setting directories to look for speech files in.
- Improvements to the plugins API; New IWmeSubFrame class which
allows plugins to modify sprites on pixel level. New methods for creating
scripting objects from within plugins and for easier setting value
- BUGFIX: Crash on exit when using custom TTF fonts.
- Many, many mistakes in the documentation have been fixed (thanks to odnorf).
Version 1.5 (July 23, 2005)
- Support for Theora video. WME can now play videos in
Ogg Theora format which
brings many advantages over the AVI video playback. There is a new
Game.PlayTheora() method, and additionally the scene entities are also
able to play Theora videos, which means you can easily incorporate streaming
video elements directly into game scenes. Please see the "Using Theora"
chapter in the documentation for more details. Special thanks to #wme
channel regulars for their help with Theora testing and encoding.
- Support for advanced plugins. In addition to simple DLL library
calls from scripts WME now provides a standardized programming interface for
plugin development. This allows experienced programmers to develop extension
modules for the engine. Please see the "Plugin development" section in the
documentation for more details.
- Additional options for 3D scenes. SceneEdit now offers several
additional options when designing scenes with hidden 3D geometry. Developers
are now able to set clipping planes and waypoints placement, which should
help to troubleshoot common problems with 3D characters.
- The Game.PlayVideo() and Game.PlayTheora() methods now offer
an optional parameter specifying whether the background music should be
muted while the video is playing.
- New Game.Frozen attribute for checking current game state.
- New Game.TextRTL attribute which should allow displaying
bi-directional text (Hebrew and Arabic) while using TrueType fonts.
- New Game.Direct3DDevice and Game.DirectDrawInterface
attributes to allow plugins accessing directly the underlying DirectX
interfaces used by WME.
- The project settings in ProjectMan now include the ability to set which
plugins should be distributed with the game.
- BUGFIX: Occasional crashes when using TrueType fonts.
- BUGFIX: Incorrect text wrapping and alpha color when using TrueType fonts.
- BUGFIX: The "ActorLeave" events were sometimes incorrectly triggered when
entering a new scene.
Version 1.4.1 (May 23, 2005) - hotfix
- New LoadSound() method which allows to pre-cache a sound file so
that any subsequent PlaySound calls don't slow the game down (useful for
frequent playing of the same sound).
- FIX: The engine didn't play short sounds (bug introduced in version 1.4).
Version 1.4 (May 17, 2005)
- Support for advanced sound effects (echo and reverb). All the game objects
now provide three methods, SoundFXNone(), SoundFXEcho() and
SoundFXReverb(). These methods affect any sounds played by the object.
- Support for TrueType fonts. WME can now render any in-game texts using
TrueType fonts. See the "Fonts" chapter in the documentation for a detailed
description of this functionality.
- Support for Unicode string tables. WME can now read string tables with
Unicode characters (encoded in UTF8 format). This allows games to be
translated to a wide variety of languages, including Asian languages. Note
that you have to use TrueType fonts to display texts in these languages. See
the "Localization" chapter in the documentation for further details.
- New Actor.SetSprite() method which allows you to temporarily change
- The PlaySound() method now accepts an optional parameter specifying
a loop-start point for looping sounds (similarly to loop-start for music).
- The Game.Reset() method now reloads inventory items definitions,
which means even deleted items get restored after resetting the game. There
is also a new Game.LoadItems() method for loading/merging a new item
- Entity container controls now provide a Freezable attribute which
specifies if the contained entity is frozen when game enters a frozen state.
- The Game.DisplayLoadingIcon() now provides an optional parameter
which specifies if the loading icon should stay on screen until
Game.HideLoadingIcon() is called. This allows you to display a loading
icon even on scene transitions.
- New diagnostic method Game.DumpTextureStats() which writes texture
memory usage status to a text file.
- Wme.exe now exports two external functions to allow StarForce copy
protection to be attached (experimental).
- FIX: Several mistakes and broken links in documentation were removed.
- FIX: Some MS3D animations weren't properly animated.
- FIX: The tools crashed on startup if DirectX 8.0 or later wasn't installed
(they still crash but now they display an error message before)
- FIX: The Game.MusicCrossfade() method uses the current music volume as its
target volume, not 100%.
- FIX: Reloading actor from file didn't invalidate the Game.MainObject
attribute which caused crashes on Win9x systems.
- FIX: Actor.RemoveMesh() no longer crashes the engine.
- FIX: The engine occasionally crashed after loading a saved game if save
thumbnails were enabled.
- FIX: Streaming animations didn't work correctly with JPG images.
- FIX: The .Length attribute was returning nonsensical values under certain
Version 1.3.2 (December 27, 2004)
- The startup settings window is now always displayed, until the player
checks "don't show this window again"
- settings.exe file is now copied to the output directory; it allows players
to re-enable the settings window
- WME now displays user-friendly error messages if the target computer
doesn't meet game requirements (outdated DirectX version or a missing 3D
- SceneEdit allows to manually override camera field-of-view for scenes with
3D geometry (necessary for Cinema 4D generated 3ds files)
- new methods for direct keyboard control for 3D characters; see the 3D
actor scripting reference for details, also the 3D characters demo has been
updated to demonstrate keyboard control
- string-table items can now reference other string-table entries; it's
useful if you need multiple entries to reference the same text
- the name for the savegame directory can now be configured in ProjectMan
- if the savegame directory isn't writable WME automatically switches to
player's "Documents and settings" directory
- scripts with infinite loops can now also receive events; you no longer
need to divide them in two scripts
- new File and Directory scripting objects allowing scripts to
work with files and directories (see the docs for details)
- new MemBuffer scripting object allowing scripts to pass complex
structures to and from DLL plugins
- game objects no-longer receive the MouseEntry and MouseLeave events when
the game is in non-interactive mode (this behavior can be overridden using
- new Game.Accelerated attribute which allows scripts to determine if
the game takes advantage of 3D acceleration
- new Game.LoadResponseBox() and Game.LoadInventoryBox()
methods which allow you to change response/inventory box design at runtime
- entities stored in entity containers can be scaled
- new Game.DisplayLoadingIcon() method to display a
"work-in-progress" icon while some long-time operation is in progress
- new Game.ClearScriptCache() method useful when you generate scripts
- new String.Split() method for working with lists
- BUGFIX: characters should no longer get stuck in place while walking
- BUGFIX: SceneEdit no longer crashes when you select a 3ds file without any
- several other bugs introduced in 1.3 were fixed
Version 1.3 (November 30, 2004)
- experimental support for real-time 3D characters; this new
functionality is too complex to be described here so please take a look at
the "3D characters support" chapter in the documentation; if you have any
comments or suggestions, post them
- new technology demo demonstrating the 3D characters
- new Game.SetWaitCursor() method and other methods for querying and
setting the non-interactive cursor
- new GetImage() family of methods for GUI controls
- the tools no longer change global volume at startup
- several bugfixes
Version 1.2, build 044 (July 7, 2004)
- loading/saving screen - can be defined in ProjectMan or using the
Game.SetLoadingScreen() and Game.SetSavingScreen() methods
- new Game.ScreenshotEx() method which allows to save scaled
screenshot with a fixed filename
- new const keyword for defining constant variables - similar to
global, but constant variables are not affected by resetting the game
- new Item.AmountString attribute which allows you to display any
text label beside the inventory item
- added a "none" option when setting the walk-to direction in SceneEdit
- FIX: mouse pointer no longer goes off-screen when running the game in a
- FIX: occasional crash when changing scene after loading a saved game
- FIX: fixed several mistakes in the documentation
- FIX: WME no longer checks for removable drives at startup which caused
problems with network-mapped volumes
Version 1.2, build 043 (April 25, 2004)
- The Game.PlayMusic() now has an optional parameter specifying the
start point for music looping.
- New Game.GetMusic() method which returns the filename of currently
- New Actor.IsWalking() method.
- Dynamic object creation. Game, Scene and Window objects now allow dynamic
creation of entities, inventory items and controls.
- New AlphaColor attribute for Windows. You can set color and
transparency for the entire window and its content.
- Scriptable sprites. Sprites now can have a script attached,
controlling sprite, frame and sub-frame attributes and animation flow at
- Multi-channel music. WME now supports up to five music channels.
including cross-fading between two playing channels.
- Animated fonts. Font image is no longer limited to a static bitmap,
now it also accepts sprites.
- The inventory items are now fully scriptable objects, they can even talk
(yes! you can now create a talking frog in the inventory ;)
- The inventory items now can display an amount.
- New Game.PrevSceneFilename attribute.
- Actors and entities now can have their own private inventories.
- New Game.DeleteItem() method, which removes an inventory item from
the game permanently.
- New Scene.IsScolling() method.
- Save/load progress indicator (configurable in ProjectMan)
- Regions are now receiving ActorEntry and ActorLeave events.
- New Game.Reset() method which clears global variables, scene and
response states and inventories.
- New Window.PauseMusic attribute which specifies if a system
exclusive window pauses music playback.
- New Game.OpenDocument() method which opens a document file in an
associated Windows program.
- New Game.WindowedMode attribute.
- New Game.GetResponsesWindow() method.
- You can now define a "walk to" point for scene objects in SceneEdit. This
point works in conjunction with the new Actor.GoToObject() method.
- SceneEdit now automatically generates scripts for newly added scene
- Scene states now include last sprites, cursors and alpha color of scene
objects between two scene visits.
- New Game.SystemFadeOut() and Game.SystemFadeIn() methods,
working even in system exclusive mode.
- Some other new attributes, methods and lots of minor changes, see the
documentation for further details.
- Updated documentation.
- Updated WME demo.
- BUGFIX: Compiling multiple packages sometimes didn't work correctly.
- BUGFIX: Scaled actors didn't correctly adjust vertical speed according to
- BUGFIX: Paused sounds are now correctly restored when the game leaves
system exclusive mode.
- BUGFIX: The FadeOut method starts from a current fade value, not from
- BUGFIX: Crash bug in iconic responses.
Version 1.1, build 039 (January 18, 2004)
- New methods and attributes for actors and entities:
SetFont(), GetFont(), ScaleX, ScaleY, Rotate,
- New attributes for scene: OffsetX, OffsetY
- New Game.LoadStringTable() method for reloading the
string table at runtime
- New methods for window controls: MoveToTop(),
MoveToBottom(); HeightToFit() for static controls
- (see the scripting reference for detailed description of
the new methods and attributes)
- New low level game events BeforeSave and
- The ability to display save thumbnails in grayscale
- The ability to bind one package file directly to the game
- Very basic support for alpha transparency in the
- Script execution is now faster
- BUGFIX: storing objects in arrays didn't work correctly
- BUGFIX: running methods were not terminated correctly
after the object has been destroyed
- BUGFIX: the Math object is now correctly restored when
- ...and other minor changes and bugfixes
Version 1.1, build 037 (November 16, 2003)
- Support for JPG file format
- Support for thumbnails for saved games
- New Game.Screenshot() method for taking a screenshot of the current
- User defined methods can now override the built-in method provided by the
- New object.CanHandleMethod() method
- New window.LoadFromFile() method for dynamic changing of window
- It's now possible to set vertical alignment for the static controls
- Support for .talk files for synchronizing speech and animations + .talk
file preview in ProjectMan
- Support for font files created using the
- Updated the WME demo to support save thumbnails
- BUGFIX: compiled game can now handle mixed slashed in filenames
- BUGFIX: entity.SetSprite immediately followed by entity.Talk sometimes
crashed the engine
- BUGFIX: 32bit BMP files were sometimes handled incorrectly
Version 1.1, build 035 (September 16, 2003)
- significant scripting language enhancement: you can now define custom
methods for engine objects and also your own custom objects (see the "Custom
methods and objects" chapter in the documentation for details)
- Jerrot's math plug-in is now integral part of the engine (see the Math
object description in the documentation for details)
- the ability to set startup scene in ProjectMan - either select a scene in
the properties pane, or right-click a scene file in the project tree and
select "Set as startup scene"; this setting will override first
Game.ChangeScene call and will load the specified scene instead (only works
if debug mode is enabled)
- new Game.IsMusicPlaying() method
- new StickToRegion() method for actors/entities
- new scrolling modifying attributes for scenes
- new RelativeScale attribute for actors/entities
- new SubtitlesPosRelative, SubtitlesPosX and SubtitlesPosY
attributes for actors/entities
- (see the documentation for detailed description of the new attributes and
- bugfix: the inventory item / scene entity bindings sometimes didn't work
- bugfix: event triggering from animations sometimes didn't work correctly
Version 1.1, build 033 (August 17, 2003)
- new Scale attribute for actors and entities
- the ability to associate scene entities and inventory items (entities are
automatically shown/hidden when the item is taken/dropped)
- new IMAGE_HOVER component for inventory items (the image to be displayed
when mouse cursor is over the item)
- new "Check for updates" function in ProjectMan (either manual or
- when generating packages, ProjectMan optionally copies the engine runtime
to the packages folder
- ProjectMan is now able to import a custom icon into the engine runtime
(not available on Windows 95/98/Me)
- Numpad+ and Numpad- keyboard shortcuts to add/remove region vertices and
waypoints in SceneEdit
- total animation time is shown in SpriteEdit
- vast internal changes to allow the new editor scheme
- updated documentation released (still not complete though...)
Version 1.0, build 031 (July 10, 2003)
- fixed several bugs introduced in build 030 ;-)
Version 1.0, build 030 (July 06, 2003)
- bugfix: window.GoSystemExclusive() has been incorrectly freezing window's
- bugfix: nested switch commands were resulting in an infinite loop
(thus hanging the engine)
- bugfix: Scene.SkipTo(actor) method has been setting the vertical scene
scrolling position incorrectly when called from a scene init script
- new Game.GetSoundLength(SoundFilename) method which returns a
length of a given sound in milliseconds
- new Game.FPS attribute (read-only) which returns the current
framerate (in frames per second)
Version 1.0, build 028 (June 08, 2003)
- support for PNG graphics format
- new PlaySoundEvent(SoundFilename, EventName) method which triggers
an event after the sound finishes
- new Game.GetNumResponses() which queries the number of responses
left in the response box
- new Game.GetCurrentDlgBranch() which returns the name of the
dialogue branch currently executing (or null)
- new AlphaColor attribute for actors and entities which overrides
the scene shading color
- new CloseUp attribute for scene layers; close-up layers make all
underlying scene layers non-interactive
- the engine displays names of the current and previous scene when running
in debug mode
- the help file can be called directly from the tools
- SpriteEdit: now it's possible to copy alpha color and transparent color to
- some of the ProjectMan dialog windows were redesigned to allow for an
- bugfix: SpriteEdit offers a correct folder when adding new frames
- bugfix: some template files were referencing wrong fonts
- bugfix: it wasn't possible to delete currently playing sound files in
- bugfix: automatic sound panning wasn't working for the "sound-only"
- bugfix: speech subtitles were misplaced in case of a very long string
Version 1.0, build 025 (April 21, 2003)
- (experimental) localization support for ProjectMan and the engine runtime
- bugfix: the initial settings window was always displayed
- bugfix: Game.PrevScene now returns an empty string if it's a first scene
- bugfix: corrected the alphabet misspellings in ProjectMan :-)
- bugfix: Scene:GetRegionAt now searches the regions from top to bottom
- bugfix: SceneEdit now preserves the scene viewport correctly
Version 1.0, build 024 (April 11, 2003) - bugfix release
- fixed bug in the script compiler; if there were nested loops, the break
command was sometimes exiting a wrong loop
- added the ability to set subtitles speed (either in ProjectMan or in
script using the Game.SubtitlesSpeed attribute
- (experimental support for sprite rotation)
Version 1.0, build 022 (April 05, 2003)
- dialogue system enhancements
- simple DLL library interface for scripts
- scripting language enhancements (switch statement and Array
- several buxfixes
Version 1.0, build 020 (March 22, 2003)
- you can define a rectangular area on screen where the scene will be
displayed - the scene viewport (i.e. scenes no longer need to cover the
whole screen); it's useful for fixed interface elements
- the engine is now able to remember which scene nodes were active/inactive
when the player leaves the scene and this state will be restored
automatically after revisiting the scene (i.e. you no longer need to script
this behavior manually); just check the "Remember nodes state" check-box in
- scene entities have a new "Ignore items" property (in SceneEdit); if you
set this property, the entities will act as non-interactive when the player
attemts to use an inventory item on them - it's useful for example for the
- the GUI windows now can contain entites; this makes the whole GUI
subsystem much more flexible; it allows you to create "intelligent" windows,
such as items close-ups or a Runaway style inventory
Version 1.0, build 019 (March 11, 2003)
- fixed fatal bug in script compiler
- fixed the "Basic project" template
- new troubleshooting options
- the ability to load a background image in SpriteEdit
- new script methods: Game.FadeOut, Game.FadeIn, Scene.FadeOut, Scene.FadeIn
- accelerated renderer optimizations
- improved pathfinding
Version 1.0, build 012 (February 24, 2003)
- improved compatibility with certain video cards (including the 3dfx Voodoo
adapters) in both accelerated and compatibility mode
- support for TGA graphics format (the TGA files can contain an alpha
- new low level events "MouseEntry" and "MouseLeave", supported by actors,
entities and GUI elements
- *LOTS* of bugfixes (many thanks to everyone reporting bugs and