|
|
Multiverse Developer Newsletter
Volume I, Issue 2, March 2006
News!
- Something for Everyone
- SpeedTree: The Roots of Virtual Forestry
- Tech Corner: Multiverse Agnostic Rule Set (MARS)
- Recent News About Multiverse
- Wrapup: GDC and Alpha Tools
|
http://www.multiverse.net
|
|
 |
Something for Everyone
I'm always suspicious when I
hear someone claim that one size fits all.
Some people have asked us,
though, if that's what we're building with Multiverse--a single product that's
somehow supposed to solve all the problems of very different professions:
programmers, modelers, designers, et cetera.
The quick answer is no.
Multiverse isn't a single uber-product that everyone uses. A technology platform
has many pieces, and they're built for different users. In our case, The
Multiverse Platform includes, among other things, a client-server infrastructure
(only programmers will customize that), world-creation tools (suitable for
designers), and a model-viewer (built for 3D asset creators). Over the coming
months, we'll be unveiling many other tools and components to our technology,
including the Developer Marketplace web site.
We're especially excited
about the Developer Marketplace because it will be THE place where game-makers
of all professions come together, buying and selling assets and expertise. It
will really enable people of all different professions to participate in the
Multiverse revolution, and do it without having to assemble an entire full-time
team. For instance, if you just want to work out of your own home, making 3D
models for other people's games, you can do that. If you are a group of
engineers without any modelers, you'll find what you need at the Developer
Marketplace.
Guiding us in building the Developer Marketplace is one of
the lessons that we learned at companies like Netscape: any good platform
needs--and must support--an ecosystem of developers. In Multiverse's case,
that's not just programmers, not just modelers, but everyone. If you have
expertise that can help make a great game, it's our job to provide a path for
you to do that. I can't wait to see the Developer Marketplace filled not just
with 3D models but other assets (sounds, UI packs, AI scripts, etc.), including
third-party plug-ins and utilities. Are you a programmer who doesn't like the
Multiverse quest-creation program? Make one of your own--open-source it or
sell it at the Developer Marketplace. When I first played Ultima Online, I was
impressed by all of the fantastically useful tools that people outside of the
development team built. Those were all consumer utilities, but that's a symbol
of what we want to see for developers on the Multiverse platform: people using
their unique skills to make the development experience even better. We've made
the higher layers of our technology not only incredibly flexible, but also
transparent (i.e., well documented); you'll be able to build new functionality
and even stand-alone applications to work with our technology.
This
issue of the newsletter includes a fairly technical discussion from Tom
Weinstein about plug-ins, specifically our default combat system. If you're a
modeler, you may find it of minimal use, but then, YOU get to take a look at the
alpha release of our initial set of tools, coming in just a few days. And
designers can look forward to our new white paper, which gives a high-level
overview of the platform, and how some of the pieces work together.
So
while "One size fits all" is bunk, we hope you'll agree with us that "Something
for everyone" is pretty interesting.
--Corey
Corey
Bridges Executive Producer, Multiverse
Join the
discussion in the Multiverse
forum | |
 |
SpeedTree: The Roots of Virtual
Forestry
SpeedTree makes trees, and
shrubs, and weeds and bushes, in many sizes, shapes, and variations - for game
and virtual spaces. And ten of those trees (four selected via forum polling)
will be made available to Multiverse design teams for non-commercial use. The
"starter set" will enable deep forests (of a single theme) as well as diverse
vegetation clumps as well. Check them out here:
http://speedtree.com/tree_browser/index.htm
The
Tree List: Venus Tree, Sugar Pine, Beech, American Boxwood, Azalea, Curly
Palm, Fraser Fir, Red Delicious Apple Tree, Umbrella Thorn, Weeping Willow
(pictured here)
Join the
discussion in the Multiverse
forum | |
 |
Tech
Corner: Multiverse Agnostic Rule Set (MARS)
To introduce myself, I'm Tom
Weinstein, the Multiverse Lead Server Engineer. I'll be writing this month's
Tech Corner, discussing the details of a key component of the Multiverse
technology. It's written by an engineer for engineers, but non-technical folks
might also find a bit of useful information here.
The subject of this
entry is the MARS abilities system, which provides a flexible overall system for
implementing special abilities for players and mobs.
First, a little
background. The Multiverse Agnostic Rule Set (MARS) is our system of plug-ins
for the Multiverse server that provides a complete set of basic game play
components. Developers can begin crafting their game on top of the MARS system,
and then extending or replacing each subsystem as they need to. MARS provides
integrated services such as inventory management, combat, quests, skills, and
abilities. The MARS abilities system is a flexible framework that lets you
create special abilities with a variety of effects and attach them to mobs,
objects or quests. The result is a complete toolset for specifying game content.
In this system, an ability is an action that can be performed by a mob
or player. Each action goes through a series of states in the process of
activation. Abilities typically trigger effects at various points in their
activation process and apply them to the caster or the target of the ability.
An effect is an immediate or persistent action that is applied to a
target. Effects perform operations on the target when they are applied or
removed. Persistent effects may also have a periodic operation that is performed
as a sequence of pulses over the duration of the Effect. For example, a
DamageEffect could do damage when it is applied, to simulate a direct attack, or
if it were a poison it could do damage periodically over time.
Other examples of effects include:
- HealEffect: Heals the target of damage.
- StunEffect: Stuns the target, interrupting any current action and preventing it
from moving or performing any actions while it is in effect.
- StatEffect: Modifies the stats of the target while it is active on the target.
- TeachAbilityEffect: This is a special type of effect that teaches a mob or
player a new ability.
- MultiEffect: This effect composites several other
effects and applies or removes them as a unit.
When a mob or player
activates an ability, it first enters the "activating" state. After an
activation time, it switches to the "channeling" state where it periodically
applies an effect to the target. In either of these states, the ability may be
interrupted by actions directed at the caster or cancelled by the caster. These
states may also be skipped, depending on how the ability is configured. At the
end of the channeling state, the ability will enter either the "active" state if
the ability is persistent, or the "completed" state, if not. Either of these
states free the caster to perform another action.
Another important way
abilities may be configured is with the addition of cooldowns. A cooldown is a
temporary property attached to the caster of an ability when the ability is
activated. The ability will not be ready for activation again until all of the
cooldowns that it depends on have expired from the caster.
By
configuring them in various ways, the game developer can generate abilities that
behave very differently. For example, one ability designed for melee fighters
might activate instantly but have a long cooldown. A spell ability might have a
long casting time but no channeling phase or cooldown. A ritualistic spell could
have a long activating time followed by a channeling phase with effects that are
applied periodically as the spell is channeled.
Abilities may be added
to mobs or players to allow them to use those abilities. They may also be added
to items, allowing players to activate the abilities by clicking on the item
from their inventory. Quests may also trigger mobs to use abilities on players.
Here's a simple JavaScript script (you can also script in python, or
write code behaviors in java, which is what the servers are written in) that
creates a healing ability to be used on a potion:
effect = new HealEffect("heal effect");
effect.setMinInstantHeal(20);
effect.setMaxInstantHeal(20);
Mars.EffectManager.register(effect.getName(), effect);
ability = new EffectAbility("heal potion");
ability.setTargetType(MarsAbility.TargetType.SELF);
ability.setActivationEffect(Mars.EffectManager.get("heal effect"));
ability.addCooldown(new Cooldown("GLOBAL", 1500));
ability.addCooldown(new Cooldown("POTION", 120000));
Mars.AbilityManager.register(ability.getName(), ability);
And here is where we define the item:
item = new ItemTemplate("Healing Potion", "INV_spell_potion");
item.setActivateHook(new AbilityActivateHook("heal potion"));
item.setBoolProperty("consumable", true);
item.setPersistenceFlag(true);
item.spawn();
Mars.ItemTemplateManager.register(item.getName (), item);
Here is
another example, a simple script to create a stun spell that stuns the target
for 7 seconds:
effect = new StunEffect("stun effect");
effect.setDuration(7000);
Mars.EffectManager.register (effect.getName(), effect);
ability = new EffectAbility("stun");
ability.setActivationEnergyCost(10);
ability.setMaxRange(10000);
ability.setTargetType(MarsAbility.TargetType.ENEMY);
ability.setActivationEffect (Mars.EffectManager.get("stun effect"));
ability.addCooldown(new Cooldown("GLOBAL", 1500));
Mars.AbilityManager.register(ability.getName(), ability);
There's a
lot more to the abilities system than I have room to cover here, but I hope this
will give you a feeling for the types of things you can do with it. MARS is a
complete game creation system that is flexible, extensible, and easy to use. It
is a starting place for you to build an exciting and rich new world.
Join the
discussion in the Multiverse
forum | |
 |
Wrapup: GDC and Alpha Tools
GDC was exciting
and very successful. We finally had the chance to show a few of the things we've
been working on and talk to some of the folks we've been working with. We also
made a bunch of new pals--developers and potential partners who are excited
about what we're up to. You can check out an online version of our booth Datasheet. Also, it was a great show for the gaming industry as a
whole, with inspiring and thoughtful discussion about where games are headed,
where we want to go, and how we all everyone wants to put a ton of creativity
back into their designs. Sort of like the discussions on our forums,
actually...
OK - the news you've been waiting for: the alpha version of
the first set of developer tools will be available in the next few days. We're
eager to get them to you, but we wanted to incorporate the feedback we received
at GDC. As you know, we're giving these tools to you pretty early in their
development so that you you can give us early feedback.
Join the
discussion in the Multiverse
forum | |
|
|
Found in the
Forums:
"But think back on your best games, and I'm sure you'll remember
that they were the ones where the story was exciting and interesting, where the
roleplay was intense, where you almost felt like you were right there, sword or
wand in hand, right?
My belief is that the best, more crucial aspect of
any roleplaying game is story - the ability for a character to interact with the
gameworld, other players, and GMs (in pen and paper, anyway) to create a
meaningful story that has a lasting impact on the game world, even if that
impact is in a small way."
KevinMC
Join the
discussion in the Multiverse Developers
Forum.
|