Multiverse Developer Newsletter 3.1

Multiverse Developer Newsletter


Volume III, Issue 1


In this edition:

Corey's Column: No Rest for the Weary

For Multiverse, the first few months of the year are a steady parade of conferences that we sponsor, present at, or otherwise attend. Being at the intersection of what are currently seen as separate industries—virtual worlds, video games, serious games, enterprise training, and so on—our first-quarter calendar includes such big events as the Game Developers Conference, South by Southwest, and Virtual Worlds New York. I affectionately refer to it as "the Q1 Trade Show Death March."

But tired though we are, it was a great quarter for Multiverse and many of our developers. In February, GDC (pictured below) gave us the opportunity to show off the best set of Multiverse worlds yet: radically different games that served very different niches, from shooters to RPGs to social-dance games.

And capping off the trade-show parade was the New York virtual world show a couple weeks back, where we showed off our revolutionary Flash MMO technology. Having a Flash-based virtual world or MMO backed by the full power of the Multiverse servers—with their scalability, gameplay systems, and customizability—is great news on its own. But what really drew attention was showing a single world viewed in both 2D (Flash) and 3D (the Multiverse World browser). Having two users interact with each other—one through a high-end gaming PC and the other through a mobile device, and neither one knows or cares how the other is accessing the world—is truly revolutionary. This opens up some really interesting possibilities: games that start as 2D, but are built into 3D as they become more popular; 3D worlds that offer a lighter set of interaction for 2D users, but use the 2D experience as a "funnel" to bring new users into 3D, and so on.

And what's coming up is even bigger and better. You'll see below that the next release of the platform adds built-in VOIP and instancing. A few months after that, you'll see version 2.0 of our platform with integrated billing, the new toolset framework, and everything you'll need to launch a fully commercial game.

So, it's a good thing we're not going anywhere for a few months. Trade shows are fun, but we've got real work to do!

--Corey
Executive Producer, Multiverse

Discuss this article in the forums

Platform Roadmap and Upcoming Releases

You've asked us to keep you apprised of our work on the Multiverse Platform, and our plans and release targets as they evolve. In response, we recently updated the Multiverse Platform Roadmap that outlines the features and improvements we are planning for the next few releases. There are lots of exciting things coming up, so check it out to get an idea of where the platform is headed!

The next release will be the version 1.5 platform release, projected for release in May. We previously referred to this release as version 1.2, but because we incorporated a number of additional major features we decided to call it 1.5. This release will include the following major features:

  • Server Instancing: Supporting instanced world areas. See the Instancing Functional Specification for details.
  • Voice Chat: Client and server support for "VOIP" voice chat system. This feature will be the baseline "free" voice chat feature built-in to the platform. See the Tech Corner in this issue for complete details. As we recently announced, developers who want even more extensive voice features such as buddy lists, presence, speaking indicators and management tools, voice fonts, and voice mail can also use Vivox with their Multiverse world. Contact us for details.
  • Vista support: Improved Client install support via escalation. Eliminates need for the end user to "run as Administrator."
  • MARS Skill System: New functionality to enable PC "training," and related features.
  • MARS Group System: New server plug-in (that runs in the combat server process) to control grouping, and corresponding MARS Scripting Library APIs and a sample implementation with scripts and UI widgets.
  • Performance improvements: Changes that significantly improve client frame-rate.
  • In-progress groundwork: These items are areas we are working on that will not be visible in this release, but are major features that require significant preparation. We list them here just to give a sense of what we're working on. This includes foundation work for the Multiverse Toolbox. In this release, you'll still be using the existing tool set, but this groundwork will enable the subsequent tools preview release, and foundation work for physics system integration.

Some time after the 1.5 release, we will provide a special Tools Preview Release. This release will provide a "sneak peek" of the brand new Multiverse Toolbox, a completely new tools architecture that will catapult the Multiverse tools suite into a whole new realm of capabilities.

The Multiverse Toolbox is:

  • A "graphical developer command center" that integrates all the Multiverse GUI tools.
  • A set of open APIs that both Multiverse tools and third-party tool developers use.

For details, see Multiverse Toolbox Preview on the Multiverse Developer Wiki.


Discuss this article in the forums

Take the Multiverse Developer Survey!

As part of our ongoing effort to stay in touch with what you are doing, your needs, desires, and goals, we have created the 2008 Multiverse Developer Survey. Please take a few minutes to take this brief online survey so that we can better understand you and your goals. The results will also help us in our business planning.

Most of you answered some questions when you originally registered as a Multiverse developer. However, some time has probably passed since then, and as well all know, things change quickly in this industry; so we want to be sure we have the latest and greatest information from our highly valued developers / partners....YOU!

Please take the survey and share your thoughts, plans, needs, and wishes with us, so we can help you succeed!

Discuss this article in the forums

Guest Column: Creating Multiverse Avatars with DAZ Studio

By Mike Sutton (aka Lightnin Boy Snook)

Multiverse is working With DAZ Productions, Mogware, and other third- party tools providers to develop integrated tools for the Multiverse platform. In the meantime, developer Lightnin Boy Snook shows some techniques for using DAZ Studio today to create character models for your Multiverse world.

Hi, I'm independent Multiverse developer Mike Sutton (aka "LightninBoySnook"). You may already know me from the Multiverse Developer Forums, where I'm a regular poster. Lately, I've been exploring how to use DAZ Studio to create, modify, and animate Multiverse character models.

DAZ Studio is a free tool set that you can use to pose characters, build animations, play with attachments and clothes for characters, and to some extent modify their appearance through deforming them. DAZ Studio is similar to Poser although it is not as feature-rich. Since it is free, it is a natural for a small development shop or hobbyist.

I wrote two tutorials on the Multiverse Developer Wiki showing how to use DAZ Studio with the Multiverse Conversion Tools to create and modify avatars, and add animations and clothes to Multiverse avatars. These tutorials cover both avatars and animations that come with DAZ Studio and those that you can buy in their 3D model marketplace. Also, the articles show you how to bring in an .obj file that has been rigged and skinned in Poser, move it to DAZ, add animations, and then export it to Multiverse.

Read the complete articles on the Developer Wiki:

This documentation is part of a Mindies (Metaverse Independent Developers) content pipeline for characters that I am developing that will automate character creation, rigging, skinning, animation, and clothes using DAZ along with a custom extension of the built-in Multiverse character factory. I'm planning an alpha release of this toolkit at the end of May. This also is when I'm planning on the production release of the Blender To Multiverse Static Model Pipeline (Blend2MV) and Sketch Up To Multiverse Static Model Pipeline (SU2MV). The Second Life To Multiverse (SL2MV) content pipeline will no longer be available due to Second Life's Terms of Service.

Discuss this article in the forums

Multiverse Voice Chat System

By David Stryker
Multiverse Principal Engineer

As previously mentioned, the upcoming 1.5 release of the Multiverse Platform will include free voice chat technology integrated into both the Multiverse World Browser and the Multiverse servers. The highly flexible implementation supports:

  • Positional voice for large groups of users.
  • Non-positional voice ideal for raid groups.
  • Non-positional "broadcast" for presentations where a small number of speakers can be heard by a large number of listeners.

The Multiverse voice server is a new server plug-in that can handle hundreds of users per server CPU. The client uses the open-source Speex codec, providing a range of quality levels and corresponding bit rates. The Speex codec provides excellent voice activity detection, which means that voice data flows to the server only when the user is actually speaking.

Both client and server voice chat features are layered, with the lowest layers being very general, and higher levels making more specific implementation choices. In most cases, you will want to use the high-level interfaces, but if you need more customization, the low-level interfaces are available.

The Client Voice Manager

The version 1.5 sample asset repository (Sampleworld) includes a voice chat configuration dialog box:

You can use this dialog box "as is" to enable basic voice chat configuration, or customize it for your world. Users display the voice chat dialog box by typing ctrl-V; then they can use the controls in the dialog box to:

  • Enable or disable voice chat.
  • Select the microphone and playback devices.
  • Set input and playback volume levels.
  • Set "push-to-talk," which requires the user to press a specific key to talk, useful to eliminate background noise interference.
  • Turn on "test mode" to perform loopback voice testing of volume levels.

At the lowest level, the voice client provides client API functions to control the underlying Voice Manager. These functions include:

  • Starting, stopping, and on-the-fly reconfiguration of the VoiceManager.
  • Getting the list of microphone and playback devices and getting and setting their volumes.
  • Blacklisting speakers and determining if a speaker is blacklisted.
  • Turning push-to-talk on and off; and getting a list of recent speakers.

The Voice Manager accepts a large number of parameters that control how speech is encoded and decoded. In most cases, you can use the default values. You can reconfigure the Voice Manager on-the-fly with minimal interruption in voice traffic.

Connecting to the Voice Server Plug-in

Each client using voice chat maintains a connection directly to a voice server plug-in, instead of going through the proxy server; this minimizes delays. The client starts by sending an Extension Message to the proxy asking for the IP address and port number of the voice plug-in that will service that client. The client then connects to that voice plug-in, sending in the OID of the user and the OID of the voice group the client wishes to join.

The Multiverse voice system does mixing on the client, not the server, because most of the time there are a small number of voice group members speaking (typically just one), and because mixing on the server would adversely affect scalability. So if several members of the group are speaking (in the case of positional voice, within range of the user), several voice streams are sent to the client.

Voice Groups

You can customize the voice server plug-in by extending one of the voice group classes. You create voice groups as required, and convey their group OIDs to clients so the clients can join the world groups. You must also perform access control to allow into a group only those clients that are supposed to be in it. At the lowest level, the Multiverse voice server supports a very general interface called VoiceGroup, giving you wide discretion in mapping speakers to listeners. The BasicVoiceGroup class is a basic implementation of the interface. Two subclasses of BasicVoiceGroup provide the general functionality sufficient for most worlds:

  • NonpositionalVoiceGroup, for a non-positional voice group, in which sound volume is independent of the position of the users. At any instant all users hear the same collection of speakers. Use non-positional voice groups for presentations, raid groups, guild chat, and so on.
  • PositionalVoiceGroup, for a positional voice group, in which group membership for a given user is based on the other users nearby, and sound volume falls off with distance. For positional voice groups, hearing is not necessarily symmetric, in that it's possible for a speaker you can't hear to hear you. For example, use a positional voice group for chatting to nearby players on a dance floor.

Complete documentation on the VoiceGroup interface is available on the Multiverse Developer Wiki (though still under development until we release version 1.5).

Discuss this article in the forums

New on the Wiki

In addition to the previously-mentioned DAZ tutorials, and the Platform Roadmap, there many new articles in the wiki. If you want to peek at the progress on the upcoming 1.5 release, you can check out the Platform Release 1.5 page, but keep in mind that these documents are "works in progress" and they don't apply to the current release!

We also recently revised the Quick Links page to incorporate the standard navigation boxes instead of being a custom page. We found that the wiki was growing and changing so fast that it was hard to keep the Quick Links page up-to-date. Since we almost always update the navigation boxes, it makes sense to leverage them for a one-page "index" of all the major articles on the wiki.

Developer BrianFairOaks recently wrote a three-part tutorial called Creating a Stance Command that explains how to code a command to enable users to change their character's "stances" to walk, run, sit, duck, crouch, crawl, and so on. In addition to affecting the avatar's movement speed, such a stance can also affect its "stats" and status.

Here are some other new articles of interest. These articles apply to the current 1.1 Multiverse Platform release, as well as to subsequent releases:

Found in the Forums:

"There is no "correct" way to build an MMORPG. A game's similarity to the mainstream is not a measure of its quality. Concerns that game X will fail because it lacks feature Y possessed by really-popular-game Z are tenuous at best."

FrequencyPattern, Multiverse Developers Forums