Wintermute Engine

Wintermute Engine (WME) is a set of software tools and a runtime interpreter (game engine) primarily designed for creating and running graphical adventure games.

History
Wintermute Engine (WME) was designed and programmed by Czech programmer Jan Nedoma, who goes by the nickname Mnemonic on the WME forums. The name "Wintermute" is a reference to William Gibson's novel Neuromancer. The first public beta version was released on January 12, 2003. The engine was developed with several updates released every year, though irregularly due to the small development team.

Since 2013 the Winter Mute Lite Engine is hosted on Bitbucket and released under a MIT License. Development continues on the repository, latest additions adding Android support.

Features
The game engine provides most of the features necessary for creating classic 2D graphical adventure games. Although originally built as a 2D graphics engine, with a built-in script interpreter for implementing game logic, the Wintermute Engine provides support for the combination of real-time 3D characters and 2D backgrounds, a combination sometimes known as "2.5D", that has become the de facto standard for modern adventure games (for example Syberia, Still Life), and survival horror games.


 * Resolution and Color Depth - Unlike many similar systems the engine supports virtually any resolution: from 320x200 retro-style to high-res 1024x768 modern looking ones or higher. Both 16bit and 32bit color depths are supported. Colour depth can be also configured by the player at run time - the engine handles the conversion automatically.
 * Rendering subsystem - WME can use hardware 3D acceleration (from any modern graphics card) to provide fast 2D graphics in high resolutions. It also includes graphical effects such as transparency, alpha blending and antialiasing (on old computers, WME is able to run in a "compatibility mode", which doesn't require a 3D accelerator, but disables the advanced graphics effects).
 * File Formats - In addition to supporting common file formats WME also supports alpha channels for PNG and TGA. However it does not support the MP3 format (due to licensing issues) but uses the Ogg Vorbis format instead, arguably providing better compression and sound quality. Furthermore, the engine is able to play videos in Ogg Theora and AVI format, including automatic subtitles display (in the SUB format).
 * Scripting - WME provides a flexible object-oriented scripting language that supports a set of methods and attributes to allow you an easy access to the internal engine workings. You can also create your own custom objects and override and customize built-in methods. It uses a C-like syntax, similar to C++, C#, Java or PHP.
 * Parallax scrolling - Multi-layered parallax scrolling for the scenes is natively supported by the engine and scene tool. Unlike most other comparable software no additional scripting is required to implement it.
 * Packages - A game can be compiled into one or more packages which contain all the game resources in a compressed form. This enables, for example, a developer to distribute a separate speech pack, or to release individual game episodes as packages. Packages can have various priorities, to release a patch for a game for example.
 * 3D characters - WME can render 3D characters in real time. While originally supporting only the MilkShape 3D format, it now supports the more universal DirectX format ".X".
 * GUIs - It is possible, using standard controls, to build a complex user interface for a game, such as load/save windows, settings windows, an inventory window, etc. All the controls are fully "skinnable".
 * Localization - A game can be translated into other languages, and isn't limited to text. Localization packages containing localized string table, fonts, graphics, or sounds are possible.
 * Accessibility Support - WME provides several options to improve accessibility for vision-impaired players:
 * Written text can be sent to a text-to-speech synthesizer
 * Active areas on screen can be highlighted using keyboard shortcuts, making them easier to find for people with visual disabilities.
 * The player can pause the game at any time to be able to read text or examine the scene.

There is also an active community that, while small, is growing in size and is willing to help newcomers with coding or recommendations. Community-created free book of tutorials went online in summer 2008.

Game design process
Wintermute Engine follows the object-oriented design philosophy. The game developers use the engine tools for building various game objects (actors, scenes, windows etc.) and assembling them together. Every game object is defined by its appearance (graphics, animations, captions, fonts) and by a script, which defines the underlying logic of a given game object and its responses to game events. All those game definitions are then interpreted by the engine runtime interpreter, which is otherwise completely independent on any actual game implementation.

License
Starting with version 1.7, Wintermute Engine is distributed as donationware, meaning that it is completely free to use for both commercial and non-commercial purposes, but if the users find it useful, they are encouraged to make a donation to support its further development. Starting with version 1.8.9, source code of the engine and some of the supporting tools has been released under the LGPL license. It currently is available under an MIT License.

The source code of the portable Wintermute Lite 2D engine has been released under an MIT License and is hosted on a Bitbucket repository. While the Wintermute Lite engine is free of charge also for commercial use, licensing of the included BASS sound library is required. It is also Donationware, as the author asks for donations for continued development. Later the author released also Wintermute 1.x and Wintermute 2 to bitbucket under MIT. ScummVM integrated the WME lite engine into their framework as part of GSoC 2012 and 2013 student works.

Previous releases were free to use for non-commercial purposes, but required a separate paid commercial license. The flexible nature, and relative inexpense, of the licence for even large commercial projects has made the Wintermute Engine a popular tool among independent commercial game developers.