Developer Resources

Developers are at the heart of the Wonderland community. Using the Java Programming Language, developers can extend both the Wonderland server and the client. Almost all extensions can be created as modules (similar to plugins in other systems). For example, a developer can add a 3D application such as a molecule simulation or a megaphone. Standard programming tools such as Java Swing are used to create multi-user 2D applications.  Start with the tutorials on the Documentation Wiki to learn how to get started building fun, interactive collaborative tools.

Wonderland API diagram

Open Source Pieces

Open Wonderland is partitioned into several separate open source projects:

  • Wonderland contains the main Wonderland code, including the core of the Wonderland client and server, as well as the web administration server. The main Wonderland project also contains a number of "core modules" that provide key functionality including avatars, shared applications, world editing and security.
  • Wonderland Modules is a repository for Wonderland extension modules.  These include stable modules built in to the release, such as the audio recorder and sticky notes. They also include experimental modules provided by the Wonderland core team and the community. Many of these modules are also available from the Module Warehouse.
  • The MTGame Graphics Engine is a high-performance graphics engine that extends jMonkeyEngine (see below).  MTGame adds multi-threading capabilities for improved graphics performance on today's hardware.
  • Avatars uses MTGame to generate realistic-looking 3D characters from Collada files.
  • jVoiceBridge is a pure-Java audio mixing platform. jVoiceBridge includes a SIP-based audio mixing server and a companion software phone. It supports mixing high-fidelity, stereo audio at up to CD quality. It also supports spatialized 3D audio for in-world positioning.

Foundation Technologies

In addition, Wonderland depends heavily on the following other open source efforts:

  • Project Darkstar is a platform for scalable communications and persistence in games. The Wonderland server includes a Darkstar service that manages all client and world state while interacting with Wonderland.
  • Glassfish v3 is a highly scalable, open source web server. The Wonderland server is based on an embedded instance of the Glassfish server. Wonderland web applications include web-based management of the server and worlds, a content repository for hosting all world data, and an integrated single-sign on system used to maintain identity across Wonderland services.
  • jMonkeyEngine is a modern 3D game engine written entirely in Java. JME provides core graphics APIs, including graphics primitive and shader support. The Wonderland graphics system is based on these core APIs, with some extensions from MTGame to support multithreading.

Examples of Modules

Here are some examples of extensions and modules already developed by members of the open source community.

Sticky Notes and Task Sticky Notes

Users can insert either plain sticky notes or task sticky notes to use for note taking, brainstorming and other interactive activites.

insertsticky

 

Internationalization / Localization in multiple languages:

In true community spirit, after one community developer internationalized the Wonderland software, multiple other volunteers stepped in to localize the software in their native language. So far we have localizations for British English, French, German, and Simple Chinese.

Localized avatar dialog

Clickable Link

The Clickable Link capability is another handy contribution. From an object's property sheet, users can add this capability.

Add Capabilities Dialog for Clickable Link

Once added, simply enter a URL to create a link that will appear in an external browser window. Here's an example of applying the Clickable Link capability to a building and bringing up information about that building.

Riverway Pioneer Park with Clickable Link