Electron toolset
Encyclopedia
The Electron toolset was developed by Obsidian Entertainment
Obsidian Entertainment
Obsidian Entertainment is an American video game developer founded in 2003 after the disestablishment of Interplay Productions' Black Isle Studios, for PC and console systems...

 and is included in the computer role-playing game Neverwinter Nights 2
Neverwinter Nights 2
Neverwinter Nights 2 is a computer role-playing game developed by Obsidian Entertainment and published by Atari. It is the sequel to BioWare's Neverwinter Nights, based on the Dungeons & Dragons pencil and paper fantasy role-playing game...

. It allows people to design their own adventures (known as a module) and distribute them for others who own the game to play. It is an evolution of the Aurora toolset
Aurora toolset
The Aurora toolset is a set of software tools developed by BioWare for use with the Aurora Engine, the game engine first used in BioWare's 2002 computer role-playing game Neverwinter Nights...

 which was created by BioWare
BioWare
BioWare is a Canadian video game developer founded in February 1995 by newly graduated medical doctors Ray Muzyka, Greg Zeschuk, and Augustine Yip. BioWare is currently owned by American company Electronic Arts...

 and used for the original Neverwinter Nights
Neverwinter Nights
Neverwinter Nights , produced by BioWare and published by Infogrames , is a third-person perspective computer role-playing game that is based on third edition Dungeons & Dragons and Forgotten Realms rules. It was originally to be published by Interplay Entertainment, but the publisher's financial...

 game and was completely re-written using the C# programming language.

Modules created with the toolset can only be loaded with either the client application or the server application provided and can be used for single-player, multi-player or persistent world
Persistent world
A persistent world is a virtual world that continues to exist even after a user exits the world and that user-made changes to its state are, to some extent, permanent...

s. However, while modules can be created for persistent worlds, it was never intended for this purpose and is not directly supported by Obsidian. The module itself is stored in a proprietary .mod format which was created for the original and has not significantly changed since then.

Toolset Components

The toolset itself consists of a set of components, each of which are responsible for creating or managing a different aspect of the adventure

Visual Terrain Editor

A visual editor which allows you to create heightmap
Heightmap
In computer graphics, a heightmap or heightfield is a raster image used to store values, such as surface elevation data, for display in 3D computer graphics...

s for exterior areas or tile-based maps for interior areas of the game world. With this editor you are able to place and configure all of the visual objects that can be seen in the game including:
  • Items: Objects which can be held and used by player character
    Player character
    A player character or playable character is a character in a video game or role playing game who is controlled or controllable by a player, and is typically a protagonist of the story told in the course of the game. A player character is a persona of the player who controls it. Player characters...

    s and creatures
  • Creatures: Beings which the character can interact with or enter into combat with
  • Doors: Objects used for blocking passage to other areas
  • Placeables: Objects which characters can interact with or which are used to enhance the appearance of an area
  • Triggers: Invisible polygons which run scripts when characters cross their border (including traps)
  • Encounters: Invisible polygons which spawn
    Spawning (computer gaming)
    In video games, spawning is the live creation of a character or item. Respawning is the recreation of an entity after its death or destruction....

     creatures when characters cross their border
  • Sounds: Invisible objects which cause a sound to be heard when characters are within the specified range
  • Waypoints: Invisible objects used as place markers for important locations within an area (Can be used by scripts)
  • Static Cameras: Yet to be defined
  • Lights: Additional lighting sources
  • Trees: Tree objects which are rendered using SpeedTree
    SpeedTree
    SpeedTree is a group of vegetation programming and modeling software products developed and sold by Interactive Data Visualization, Inc. that generates virtual foliage for animations and in real time for video games and simulations...

  • Placed Effects: Places particle effects
  • Environment Objects: Yet to be defined

Script Editor

A source code editor
Source code editor
A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment ....

 used to write scripts
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...

 using the NWScript
NWScript
NWScript is the scripting language developed by BioWare for the computer role-playing game Neverwinter Nights. It is based on the C programming language and is implemented in the Aurora toolset...

 language. These scripts can be used to control aspects of the adventure, react to events
Event-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...

 which occur during play, facilitate actions during conversations and handle requests in the form of callbacks
Callback (computer science)
In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine defined in a higher-level layer....

 from the user interface.

Almost all objects within the game, including areas and the module itself have a series of events. For each of these events a script can be designated to fire when this event occurs, thus allowing the designer to take appropriate action in response to what is happening in the adventure.

Examples of these events include:
  • OnHeartbeat: A script which periodically fires on areas, modules and creatures which can be used to check state. This event is used sparingly due to the frequency of which it is run and the load it places on the server
  • OnEnter/OnExit: A script which fires when a character or creature enters or leaves an area or trigger
  • OnAttacked/OnDamaged: A script which fires when a placeable, door or creature is attacked or damaged by something
  • OnDeath: A script which fires when a placeable, door or creature is destroyed
  • OnSpellCastAt: A script which fires when a placeable, door or creature has a spell cast at it
  • OnConversation: A script which fires when a character attempts to start a conversation with the target

Conversation Editor

A Tree view
Tree view
A tree view or an outline view is a graphical user interface element that presents a hierarchical view of information. Each item can have a number of subitems...

 editor used to write dialogs which occur between a player and either an NPC or a placeable/item. Each node of conversation can run a conditional script to determine if it should be displayed, and a second script once a node has been selected as a response from the character.

The conversation editor has several features including:
  • Placeholders which are used to replace character specific information at the time the conversation takes place. (i.e. The placeholder boy/girl is replaced with the gender of the character who starts the conversation, firstname is replaced with the characters first name, etc.)
  • Tokens which must be set via script prior to being displayed. These allow for anything to be substituted at the time of the conversation.
  • Colours which can be used to indicate different accents or inflections during the conversation. These can indicate an action which is taking place, indicate tone or volume (i.e. whispering) or reflect something that is seen instead of actually being spoken.

Object Editor

A tabbed
Tab (GUI)
In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...

 property editor allowing for the creation of items, placeables, creatures and other objects that can be found in the adventure. Each of these objects have a specific set of categorized properties which can be modified and the result saved as a blueprint with a unique Resource Reference (known as a resref). Instances of these blueprints can then be placed in the game world via the Visual Terrain Editor or spawned into the game using scripts from the Script Editor and have their properties modified.

The format for the categorized properties is very similar to the property boxes used in current Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 products such as Visual Studio.

Features

As well as the above mentioned components, the toolset also has several other features which are of note

Configuration Files

The core ruleset used by the Electron toolset is a modified version of the Dungeons and Dragons 3.5 edition role-playing game
Role-playing game
A role-playing game is a game in which players assume the roles of characters in a fictional setting. Players take responsibility for acting out these roles within a narrative, either through literal acting, or through a process of structured decision-making or character development...

 rules. It contains a lot of configuration information as well as provides rules on how to add to those concepts which have already been identified (i.e. races, classes, spells, etc.). The toolset manages a significant portion of this information in text-based .2da (2-Dimensional Array) files which can be manually edited externally and which are loaded by the toolset during start up.

Note: A problem existed with the original engine where information contained in these files was required during character creation and required some of these files to be copied onto the local machine in order for this process to function correctly for the players. It is not yet known if this problem will also exist in the new game.

Plug-in Architecture

Developers of the Electron toolset have indicated that a plugin architecture and API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 will be used. No detailed information or specification has been provided at this stage to indicate what exactly this consists of or how it can be used by developers.

Improvements over the Aurora toolset

The Electron toolset provides several improvements over its predecessor the Aurora toolset, which included:
  • Toolset Interface
    • Ability to switch between multiple windows (MDI
      Multiple document interface
      Graphical computer applications with a multiple document interface are those whose windows reside under a single parent window , as opposed to all windows being separate from each other . Such systems often allow child windows to embed other windows inside them as well, creating complex nested...

      ) instead of only working on a single modal window (SDI
      Single document interface
      In graphical user interfaces, a single document interface or SDI is a method of organizing graphical user interface applications into individual windows that the operating system's window manager handles separately. Each window contains its own menu or tool bar, and does not have a "background"...

      )
    • Improved use of tabs
    • Improved visualisation of information by using grids
      Grid view
      A grid view or a datagrid is a graphical user interface element that presents a tabular view of data. A typical grid view also supports some or all of the following:* Clicking a column header to change the sort order of the grid...

    • Ability to theme
      Theme (computing)
      In computing, a theme is a preset package containing graphical appearance details, used to customize the look and feel of an operating system, widget set or window manager....

       the toolset windows
    • Ability to dock
      Dock (computing)
      The Dock is a prominent feature of the graphical user interface of the Mac OS X operating system. It is used to launch applications and switch between running applications...

       windows
    • Reduction in memory leak
      Memory leak
      A memory leak, in computer science , occurs when a computer program consumes memory but is unable to release it back to the operating system. In object-oriented programming, a memory leak happens when an object is stored in memory but cannot be accessed by the running code...

      s due to advanced garbage collection
      Garbage collection (computer science)
      In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

       provided by C#
  • Visual Terrain Editor
    • Exterior areas now use height maps instead of being tile-based
    • Placeables can now be grouped
  • Conversation Editor
    • Improved how functions are handled for nodes of conversations to accept parameters
      Parameter (computer science)
      In computer programming, a parameter is a special kind of variable, used in a subroutine to refer to one of the pieces of data provided as input to the subroutine. These pieces of data are called arguments...

    • Use of grid to display conversations to greatly improve visualisation of information
    • Limited ability to import conversations from the Aurora toolset (Confirmation still required on how this will work)
  • Script Editor
    • Included all scripting functions which were released with patches
      Patch (computing)
      A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...

       for the original game even after development had commensed on the new one
    • Visual feedback provided to give you the signature of functions during scripting
    • Limited Ability to import scripts from the Aurora toolset (Confirmation still required on how obsolete functions will be handled)
    • Inclusion of Intellisense
      IntelliSense
      IntelliSense is Microsoft's implementation of autocompletion, best known for its use in the Microsoft Visual Studio integrated development environment...

      2 for intuitive scripting

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK