created   description           contact

                                Dubit LTD The Half Roundhouse, Wellington Road, Leeds, LS12 1DR
                                T +44 113 394 7920 F +44 113 298 7337 E matthew.warneford@dubitlimited.com
The Dubit Platform
Social Gaming Worlds
What is the purpose of virtual worlds? When I want to             deducing. However, this doesn’t have to mean that the
connect with friends I use Facebook, to catch up with my          game is turn-based, nor does it even have to be about
sister I use IM, to find a developer I reach out to my             conflict: the player who intently studies patterns of traffic
LinkedIn network, to buy a present I go to Amazon. But if         in Sim City in order to decide where to build a new road
I’m bored and want to meet new people I go into a virtual         is also strategically immersed in the game.
world. You can still find a business contact through the        • Narrative immersion in games is much the same as it
medium, but it’s not what it’s best suited to.                   is in books or movies. A player gets immersed in a
                                                                  narrative when he or she starts to care about the
So lets consider a few of properties that have defined the         characters and wants to know how the story is going to
virtual world landscape: World of Warcraft; Eve Online;           end.
Second Life; Habbo Hotel; and Club Penguin. While all
these worlds are different in so many ways (complexity,        World of Warcraft is high on all three categories but can
depth, and game mechanics, to name but a few), if we           hardly be considered casual; the very concept of casual
peel back the layers we find some very similar emotional        gaming is that the players do not have the time to invest in
dynamics: empowerment, mastery, belonging, and                 activities like leveling.
                                                                                 Casual worlds, on the other hand, have
It’s this potential to connect on so many                                          pulled back the traditional MMO
levels that makes virtual worlds, as a                                              dynamics to create a simple game
medium, so compelling. Just like TV is a                                            suitable for the mainstream casual
medium, print is a medium; virtual worlds are                                     market. These are much like a wendy
a medium. Just like the success of a film is                                      house and a games cupboard combined
determined by its message or its narrative and                                   into one: players dress up, make believe,
not by the cinema itself; virtual worlds are the                             and play games!
same: no matter how great the medium the content
is king.                                                                    But, when we take away too much of the
                                                                            gaming dynamics we're left with little to keep
When we set out to create the Dubit Platform                                  the player engaged. So we set out to create a
we knew virtual worlds would be huge, and set                                  suite of technologies that would enable a fast
the simple goals of figuring out what                                            paced experience, strategy and, most
great content looks like in a casual                                                importantly, narrative.
world, and how to make that
content quickly.                                                                      Narrative is a hugely casual experience
                                                                                           and perfectly suited to casual worlds.
All Rise                                                                                   Narrative draws the player into the

Content is King                                                                            world; it doesn't need to be XBOX
                                                                                      360 graphics or the best driving game
There are three types of immersion:
                                                               if the narrative is engaging.
• Tactical immersion is immersion in the moment-by-
   moment act of playing the game, and is typically found      We created three technologies: GAML Engine, Core
   in fast action games. It’s what people call being “in the   Components and Multiuser Server.
   zone” or “in the groove.” It’s physical and immediate.
   When you’re tactically immersed in a game, your higher      The GAML Engine is really the key to solving the content
   brain functions are largely shut down and you become a      problem.      GAML stands for Game Application Markup
   pair of eyes directly communicating with your fingers.       Language, and is our proprietary programming language

• Strategic immersion is a cerebral kind of involvement        for creating multiplayer gaming experiences inside the
  with the game. It’s about seeking a path to victory, or at   virtual world; ranging from quests and collectables, to
   least to optimise a situation. The highest, most abstract   platformers and shooters.
   form of strategic immersion is experienced by chess
                                                               The GAML Engine solves the content problem by making it
   masters, who concentrate on finding the right move
                                                               super simple to construct the gaming content; we hide
   among a vast number of possibilities. When you’re
                                                               away the complexity of programing in a real-time, multiuser
   strategically immersed, you’re observing, calculating,
                                                               world behind a simple XML markup.              Instead of slaving
                           over hot code for weeks, creatives can whip up a new appear on everyone else's; the MU Server routes
                           quest in a matter of minutes.                                   messages between players.       The server integrates with
                                                                                           GAML so that we can quickly solve the difficult problems of
                           The Core Components are the collection of features that concurrency by giving the server authority over the game.
                           a world needs but are not selling points: they're not For example, the server decides which player got to a
                           reasons for players to choose one world over another, power-up first; two players might think they got to the
                           rather, these are the fundamentals that support the world, power-up, but only the server knows who really got there.
                           such as the registration process and the buddy list.
                                                                                 The Server has been battle-hardened in live deployment,
                           We know that players are much more interested in the supporting well over 10,000 concurrent users and tested
                           world’s theme, games, avatars, narrative, quests, and to over 40,000.
                           environments, than exactly how the buddy list works. The
                           Core Components reduce development time so we can The table at the bottom of this page summarises the
                           get a world to market quicker and allow the team focus on platform features and which of our technologies power
                           what makes the world fun and unique.                            them. The features are explored in detail later in the
                           The MU Server is the technology that makes it possible
                           for players to send a message on their computer and

                            Project Features                          Platform Components                         Technology
                            The features and functions that are       These features are typically found in all   Dubit Platform technology.
                            unique to each world. These are           casual gaming worlds and are
                            created for your world, and are what      packaged together in the Platform
                            make your world fun and engaging.         Core Components.

      Authentication                                                  ‣ Guest Access                              ‣ Network Global User Account
   User authentication                                                ‣ U14 Registration
           and security                                               ‣ Salted & Hashed Passwords

                World       ‣ Environments                            ‣ Keyboard control                          ‣ 2.5D Rendering Engine (Side on,
     Chat environment                                                 ‣ Mouse control                               isometric, & plan camera
            design and                                                ‣ Pathfinding                                  projection)
       implementation                                                 ‣ Private chat environments                 ‣ Real 3D Rendering Engine
                                                                      ‣ Instanced environments                    ‣ Physics & Collision Engine

                Social      ‣ Avatar actions                          ‣ Chat message builder                      ‣ MU Server
  Communication and         ‣ Tags                                    ‣ Profanity filter (White & black list)
       user interaction                                               ‣ Emoticons
                                                                      ‣ Friends list
                                                                      ‣ Ignore list
                                                                      ‣ User profile

              Gaming        ‣ Mini games                              ‣ Inventory                                 ‣ GAML
Single, multiplayer, and    ‣ Quests, treasure hunts, NPC, etc        ‣ Experience points                         ‣ GAML Object Persistence
         group games        ‣ Collectables                            ‣ Player attributes (health, speed, etc)    ‣ Instant Match

            Economy                                                   ‣ Free Points                               ‣ One Wallet
  Virtual economy and                                                 ‣ Paid Credits
      digital item sales                                              ‣ Micropayments
                                                                      ‣ Subscriptions
                                                                      ‣ Pro accounts

     Personalization        ‣ Avatars                                 ‣ Store                                     ‣ Image Baking
 Identity and bragging      ‣ Clothes                                 ‣ Wardrobe
            Platform 2.0
            Cloud Computing & Shared Services
             The Dubit Platform 2.0 takes the already proven                  The Platform 2.0 will launch in June 09 as a hosted service
             technology and looks to reduce the total cost to launch a        that scales dynamically with demand and therefore
             world and address two friction points that are holding back      reduces upfront infrastructure costs and monthly recurring
             both the reach and monetisation of casual worlds:                costs.

             • The cost of creating, configuring, and maintaining              In addition to the hosted infrastructure the 2.0 Platform will
               a server infrastructure It is not unusual to spend in          connect partner worlds through a global passport and
                  excess of £100,000 building out the cluster in addition     payment gateway; parents need only give approval once,
                  to monthly rack space, bandwidth, and support.              can subscribe in one click, and can manage all
             • The friction caused by the parental approval                   transactions through a single location.
               process Parents are asked to give permission for their
                  under 14 year olds to play, but the amount of effort        Following shortly after, the 2.1 release, sees the
                  required on behalf of the parent significantly reduces the   introduction of the visual GAML editor; writing GAML is
                  conversion of visitor to user.                              easier than writing code, but not having to write any GAML
             • Few parents subscribe their child to more than                 at all is even easier! The GAML editor will enable anyone
               one world Again, there is a lot of friction in the             to create content (quests, NPCs, games, and so on)
                  subscription process, which is further compounded by        through simple a drag and drop interface. When making
                  having to manage multiple subscriptions and topped off      interesting worlds is this simple they become much
                  by concern that their child will become bored before the    cheaper to create and easier to update.
                  end of the subscription.
             • The cost of creating and updating the in world                 These concepts are illustrated in the diagram below, and
               content Just like a regular website, the content in a          explored in more detail later in the document. The blue
                  virtual world needs to change regularly to avoid            boxes are the core Dubit Platform technologies and the
                  becoming stale.                                             green indicates project specific customisations.

                      Partner Project                  Partner Project                    Partner Project
World Home &

Website                   Dubit Platform Global Passport Registration & Login

                        GAML Quests, Games,              GAML Quests, Games,                GAML Quests, Games,
                        Collectables, & More             Collectables, & More               Collectables, & More

Project Specific
                                                                                                                              Front-end World

                            GAML Engine,                     GAML Engine,                      GAML Engine,
                            Coarse Grained                   Coarse Grained                    Coarse Grained

                            Components, etc                  Components, etc                   Components, etc

 Project Features,
 Games & Quests

                          Multiuser Nexus                  Multiuser Nexus                   Multiuser Nexus
                          Cluster                          Cluster                           Cluster
                                                                                                                              Back-end Infra-

Project specific

                          Global User              One Wallet             Image Baking            Friend Finder
                          Account                   1
                                                   Gateway                1                         1
Shared Cloud
                            Dubit Technology                Partner customizations
The diagram shows three partner projects as vertical silos        Each partner increases the perceived value of the network
sitting on top of the shared cloud infrastructure.       While    for both users and parents, which in turn improves the
each project shares the Global User Account, One Wallet,          conversion of visitor to user, and through to subscriber.
and Image Baking services, the gaming experiences and             Our research with parents shows they would like to give
aesthetics are very different between worlds.                     their child access to one network of worlds, with a unified
                                                                  parental management console, rather than have to keep
Underneath the visual differences there are a number of           track of a collection of different worlds.      Similarly, they
core features that are functionally the same; a contact list      don't want to spend time investigating the privacy and
does not need to be different from world to world. These          security policies of each world their child wants to play; as
core features are the Coarse Grained Components that are          a network, they can investigate once and not worry again.
skinned for each project.
                                                                  We know that kids will participate in multiple worlds, much
While the gameplay differences can be huge, the worlds            like they watch different cartoons. With a single user
still use the same collision, rendering, questing, and            account, once converted through the parental approval
conversation engines. It’s the custom GAML per project            process, users can participate in other partner worlds with
that makes each gaming experience different; the engines          zero barriers.    This freedom to move between worlds
are the same.                                                     means that each partner who joins the network improves
                                                                  the network for the users, which in turn attracts more
For a typical project over 90% of the code is Dubit
                                                                  users.    They're not just joining one world, they're joining
Platform; the remaining sub 10% are the customisations
                                                                  multiple worlds in one go, and each partner benefits from
that make each world fun and unique.
                                                                  the growth in traffic. Its like a digital shopping mall!
Support of Platform 1.0 is being phased out in preparation
                                                                  Similarly, subscribers’ payment details are stored so that
for the launch of version 2.0 in June 09.
                                                                  subsequent subscriptions and transactions can be
                                                                  completed with an almost frictionless single click. Parents
Network                                                           still need to subscribe to each world, but they do not need
One Wallet & Global Passport                                      to enter their credit card each time. Every partner that joins
Worlds are social spaces where young users are able to            creates a more attractive destination for new visitors. This
give out personally identifiable information. For their own        positive network externality benefits the group with an ever
    safety, users below 14 are required to obtain parental        larger potential pool of users and a reduced the net friction
                consent to play in a world.     However, the      to spending.
                      process of obtaining parental consent
                        is a substantial barrier that             One Wallet
                           dramatically reduces the               The wallet is a single location to manage subscriptions and
                           conversion of visitors to users. A     micropayments for each partner world.         Card details are
                            second high friction point is the     stored in the wallet; purchases of points, subscriptions,
                              conversion of user to               and physical goods can be made with one click.
                               subscriber.     Our research       Micropayments are supported through an intermediary
                              shows that very few users are       currency; players purchase credits that are then spent on
                              subscribed to more than one         digital items.     Credits cannot be transfered between
                             world; not only is it difficult to    worlds.
                            convince a parent to enter their
                       credit card details but when they
                                                                  Rather than ask the user to register with parental consent
                   have,     they worry about forgetting to
                                                                  for each world the user registers once with the Passport.
          cancel the subscription.
                                                                  The passport stores global information that does not
                There is a lot of money being left on the table   change from world to world, including email, name, and
                 precisely because these two issues create        parental consent. On entering a world for the first time the
                 so much     friction. Both can be addressed      user creates an account with the world: this usually
                  by bringing worlds together as a network        includes building an avatar and possible world specific
                   with a single payment gateway and              information, for example,”favorite football team”.
                    global user account.
                                                                                            monitor the load on the infrastructure in real-time and bring
                            Infrastructure                                                  more computing power online as required.
                            Shared and scalable
                            Building out a server infrastructure is an expensive process    The final benefit is the shared cost of maintaining the
                            but also very inefficient. The infrastructure needs to keep      infrastructure.   A single technology license fee does not
                            apace of growth but also have sufficient excess capacity         cover the development cost of the technology, nor the
                            for traffic spikes.    Judge the excess capacity incorrectly     ongoing development. In this way, the license fee is very
                            and the system could crash under the load, losing all the       good value given the number of programming hours it
                            new visitors and the goodwill of existing users.         Yet,   gives access to.         The maintenance of the server
                            throughout most of the day the infrastructure is well below     infrastructure is similar; the cost of maintenance is shared
                            capacity and only becomes loaded for the peak hours. In         by the partners on the Platform.
                            other words, the infrastructure needs to be bigger than
                            required to cope with spikes, but goes largely underutilised    Friend Finder
                            throughout the day.                                             Unlocking untapped growth
                                                                                            With these three features - one wallet, global passport,
                            Consequently, the cost of creating and running the
                                                                                            and hosted infrastructure - we unlock the capacity to
                            infrastructure is high: it’s not uncommon to spend over
                                                                                            address one more friction point that will, when overcome,
                            £100,000 on infrastructure for launch, in addition to
                                                                                            unlock a huge amount viral growth for the Platform
                            monthly bandwidth and maintenance.
                            The Platform 2.0 is a hosted service that dramatically
                                                                                            Our research shows that kids prefer to play games with
                            reduces the upfront and monthly hosting costs, by
                                                                                            their friends, and yet it’s difficult for a group of kids to join
                            dynamically growing and shrinking the server cluster in
                                                                                            each other in a virtual world; they need to coordinate what
                                                             respond to demand.       As
                                                                                            time to meet, which server, which room, and what their
                                                             the traffic increases the
                                                                                            names will be. This process is further complicated in a big
                                                             system can bring a new
                                                                                            world like Cartoon Network's Mini Match because there
                                                             node online in less than 5
                                                                                            are many instances of the same room and no guarantee
                                                             minutes, once the traffic
                                                                                            that two players will be in the same instance, and if they’re
                                                             spike has passed those
                                                                                            registering for the first time they can’t predict their
                                                             same nodes can be
                                                                                            username in advance.       The most common way kids get
                                                             decommissioned.         The
                                                                                            round this problem is by coordinating over instant
                                                             effect is that hosting costs
                                                             stay inline with the load on
                                                             the system and grow
                                                                                            If this process can be made simple, so frictionless that
                                                             quickly to support big
                                                                                            players could invite their friends into a world with only one
                                                             traffic spikes.
                                                                                            click, we have unlocked the single biggest social graph.
                                                                                            Our research shows that 70% of 14 year olds use instant
                                                             For launch the hosting can
                                                                                            messaging networks, which means 70% of 14 year olds
                                                             be as little as $500 per
                                                                                            are contactable through instant messaging networks,
                                                             month, significantly less
                                                                                            whenever their computer is on. The percentage of young
                                                             than buying and building
                                                                                            people using instant messaging networks also increases
                                                             out     a    dedicated
                                                                                            with age.

                                                                                            All this potential will be unlocked by bringing the partner
                                                             While each Platform
                                                                                            worlds onto a single hosted platform with a single global
                                                             partner's world is very
                                                                                            passport. We're calling the feature that allows the players
                                                             different, and their data is
                                                                                            to invite their friends on different IM networks 'Friend
                                                             stored separately, they all
                                                                                            Finder'. The screenshot to the right shows an early alpha
                                                             run off the same Dubit
                                                                                            release. The Friend Finder will go live shortly after the 2.0
                                                             Platform infrastructure and
                                                                                            release in June, and is explored in more detail in the
                                                             services.    We're able to
                                                                                            Platform Roadmap later in the document.

Alpha release of the Friend Finder client
Shifting markets & down economies
This section explores some of the benefits of the Dubit          users are interacting with the product: which features they
Platform and its potential uses.                                like, where they get stuck, and when they leave. Realtime
                                                                usage data drives a tight feedback loop enabling partners
Connecting with a shifting market                               to rapidly iterate towards success.
Young people are spending more of their leisure time
online, playing games and chatting with friends and are         The Platform reduces production costs and increases
watching significantly less TV. We're seeing young people        speed to market because the core world features are
move online and we believe that the Dubit Platform is an        already developed and the GAML enables rapid creation of
opportunity for media owners to connect with their              content within the world.
                                                                Direct relationship with the customer
Retain control                                                  There are well-understood and proven examples of how to
Developing a scalable and entertaining multiuser world is       generate significant revenues from virtual worlds.      In a
technically challenging, however, the same programmers          contracting economy, where advertising budgets are being
who create the world are rarely the best game and content       cut - and in some cases advertising to children under
designers.                                                      question - our platform offers the    potential to generate
                                                                direct from consumer revenue. We have modeled out a
The Tool Kit gives the content creation to the creatives        number of scenarios showing the different revenue drivers
wherever they can be found: it doesn’t need to be just our      and the potential in our Return on Investment white paper,
creatives.   Your existing team of creatives, story writers     contact matthew@dubitlimited.com for more details.
and editors can use the GAML Content Editor to create
narratives and games within the virtual world.                  Viral
                                                                Our integration with presence networks empowers players
Capital efficient                                                to invite their friends into any platform world. The invited
Partner worlds are built on top of our infrastructure and       friend does not need to install any applications or register
coarse grained components meaning that over 90% of the          to use the server: a powerful one-click viral distribution
development work is already complete.            The powerful   channel.
GAML libraries enable rapid creation of in world gaming
content.                                                        Speed to market
                                                                For a typical world developed from scratch we find that
As such, it’s a format for cost effectively launching new IPs   over 70% of the production effort is taken up writing code,
that can subsequently be developed into larger online and       the remaining 30% is producing artwork for rooms and
offline properties.                                              avatars.   Because the bulk of the work is technical,
                                                                programming is the projects critical path.
In addition to the small initial capital investment the
technology delivers empirical feedback about how the

Cartoon Networks Mini Match built on top of the Dubit Platform 1.0
                        What does the Platform do?
                        From safety to virtual currencies and
                        everything in between
                        There are lots of questions to consider when building out a economy.        From the simple to the complex, these are
                        virtual world, such as how to keep the chat safe, and what addressed as question answers in the tables below.
                        are the considerations when deciding on the type of virtual

                         Login, registration, roles, and permissions
  What about young       The sign up process takes a username, password, date of birth, and email address. An email address is considered
   players, are there    personally identifiable information that we need parental permission to store. The process for obtaining parental
    any restrictions?    consent is built into the platform and explained in the appendix U14 section.

  Can players try the    Anyone can play as a guest without needing to register first; guest accounts have a limited feature set, they cannot
   game out without      chat, customise their avatars, earn points, or use the friend list. Guest accounts help to increase the conversion rate
         registering?    of visitor through to member.

  How many avatars       The Dubit Platform supports multiple worlds and multiple avatars per user, per world. Behind the scenes, when a
can a player control?    visitor registers they are creating their User account. The user account gives access to the site, but is different to the
                         avatars they control in the chat environment. A player may create several avatars in each world that are linked to their
                         user account.       There are no technical reasons to limit the number of avatars per player, but we find, through
                         experience, that 3 avatars per world are sufficient.

                         Chat environments, instancing, and rendering
     How do players      There are two ways for a player to control their avatar; keyboard control, or mouse control. The keyboard gives the
   navigate the chat     player precise control over the movement of their avatar, perfect for environments that require agility, jumping, and
       environment?      timed movement. Mouse control is point and click simple - the avatar uses a pathfinding algorithm to walk to where
                         the player clicked.

        What are the     Chat environments come in two flavors: Real 3D and fixed camera pre rendered 2.5D. Flash is cable of delivering
            different    very low polygon environments that is suitable for a limited range of styles. Richer, more detailed environments, are
 environment design      produced in packages like Photoshop, Maya, Illustrator, and then prepared for the 2.5D rendering engine. The 2.5D
             styles?     environments can be rendered from top down, isometric, and side on.                 See the appendix for examples of
                         environment design styles.

   Can players have      Each avatar has their own private chat environment that can be open to anyone, or restricted those who have been
      their own chat     given a key to the door. In popular worlds the number of player rooms makes it practically impossible to moderate all
              room?      of chat spaces; as a precaution chat in private rooms is usually restricted. However, all chat messages can be logged
                         for later review.

What happens when        To support more users than the chat environments can hold there are two options, create more chat space, or
    a room becomes       instance existing environments. Instancing environments describes the process of cloning an existing room; when
                full?    a room becomes full a new instance is created. Consequently, there are multiple instances of the same room type, so
                         when two players enter the same room they could be sent to different instances (or even different physical servers).

                         The server distributes players amongst instances by sending them to the busiest room that still has space.
                       Chat, safety, friends, and scaling
       How is chat     There are 3 ways to create a chat message, the safest is choosing from a predefined list of words and phrases,
        protected?     second is filtering against a white list (allowed words), and the least safe, filtering against a black list (banned words).
                       Building chat messages from a list of words and phrases is preferred by the under 9’s who are typically slow typers,
                       and often don’t even know what to say!        Older users expect free text input that is filtered.     While filtering chat is
                       important it isn’t a substitute for moderation, see the appendix for further information about Dubit’s moderation

                       The final line of filtering is the player’s ignore list. If a player doesn't want to talk to another user, they add them to
                       their ignore list. Every message, from chat, to game, to comment on a profile, are filtered against the ignore list.

                       All chat messages can be logged into the database for future review. But depending on the game, and the age of the
                       audience, the number of messages can be huge.

How does a player      Players can visually express emotion through emoticons, avatar actions, and tags. Avatar actions are unique to
express themselves     each world but usually include waving and dancing. Each action has a corresponding animation sequence for every
         in the chat   single clothing item, for example, adding a pointing action requires that each item of clothing has a pointing animation
     environment?      sequence.     Subsequently, each action substantially increases file size, and therefore, should be balanced against
                       download time. Avatar construction is explained in more detail under Image Baking in the Technology section.

                       Tags are animations applied to, or on top of, an avatar, for example, a rain cloud expresses sadness, while a cloud of
                       hearts expresses love. Some tags can be applied to other players that could, for example, freeze them in a block of
                       ice, or zap them with a lightening bolt! Because tags are layered over the avatar, and don’t effect the clothing, there is
                       no limit to the number of tags in a world. Like clothing, tags can also be purchased from the in world store.

 How does a player     The friend list component shows which friends are online and where in the world they are. When a chat environment
   find and contact     becomes full a new instance is spawned. Consequently, there are multiple instances of the same room type, so while
 their friends when    a friend may be in the ‘Haunted Garden’, choosing to navigate to the ‘Haunted Garden’ will likely result with both
 there are 1000’s of   players unable to see each other because they are in different instances and even on different physical servers. The
    people online?     friend list solves the instancing problem by letting players to join their friends in same room instance.

Can players talk to    A single MU Server can support a few thousand players, the limiting factor is usually the number of messages the
friends on different   server needs to send and receive, which varies per game. As the number of players increases we introduce more
           severs?     servers to distribute the load.

                       But friends on different servers can still communicate through our distributed
                       presence servers.        The presence servers are low volume messaging
                       servers for routing instant message conversations, friends lists, and
                       online/offline/away/etc status messages.      These servers talk to
                       each other so that a friend on server A can send a message to
                       a friend on server B.

                       Routing messages between players on different servers is not
                       nearly as quick as players on the same servers. In scenarios
                       where message speed is important, for example the movement
                       messages in chat rooms, players need to be connected to the
                       same server.     On the other hand, it is perfectly acceptable for
                       private messages between players to take half a second longer.

                       When a player first launches the game their browser is load balanced to a
                       presence server, this connection is never closed.          But, for each room
                       *instance* the player joins, their web browser connects to the server that
                       hosts that room. With our distributed MU Server it is possible to support
                       many thousands of concurrent users, and still have friends on different
                       servers talk to each other, challenge to games, and meet up in the same
                       chat room instance.
                       Security, instant matching, multiplayer gaming, and quests
    How do players     Players can enter a multiplayer game in two ways, challenge a friend or player in the chat environment, or, using the
 enter a multiplayer   instant match facility, find themselves an opponent automatically.
                       As well as challenging players in the same room, friends on different servers can challenge each other (using the
                       presence server). On receipt of a challenge the player can either accept or reject; on accepting the challenge, both
                       players are connected to the same server and the game is loaded in place of the chat environment.                Players are
                       connected to the same server because games need the messages to be routed quickly between computers.

                       The instant match deals with the problems of liquidly, and game quorums, in its search to bring a sufficient number of
                       people together to start the game in a short space of time. While the server is looking for opponents the players can
                       continue to play in the chat environments.

   How are the mini    It's very difficult to protect Flash games from hackers and malicious cheats because flash files are not secure, they sit
   game high score     on the users computer and can be decompiled.         Sending the data over SSL doesn't secure the game; an encrypted
  tables protected?    or signed data stream on the network-side is safe, the problem is that our game attacker controls the computer. This
                       is not the security assumption that most encryption and digital signature systems are designed for.

                       Yet, it's important that the games are secured because both the high score, user profiles, and points system can be
                       affected; hacking the game scores can award the player with points to spend in the shop.

                       The best security is implementing the game in a client-server configuration; the game acts as a 'smart terminal' with an
                       interface to a game that is hosted on the server. The GAML uses this approach for determining which player picks up
                       an item first, we call this server authority and is used for making changes to important game model data.

                       For a mini game, that cannot make use of GAML, such as a Pac-Man game, we use obfuscation and encryption, to
                       increase the layers of difficulty; all scores are encrypted, and sent over the persistent connection to the presence
                       server (persistent connections are harder to sniff and fake), and then validated by the server.

    How are quests     In 2009 no-one creates a website without a content management system, because we know the importance of fresh
           created?    content. Casual worlds are the same, players expect a fresh gaming experience each time they visit. Yet, creating
                       game content is far more complex than website content. So we developed the first content management system
                       specifically for casual gaming worlds.      We call this technology GAML - Game Application Markup Language.
                       GAML is our technology that puts the production of game content in the hands of creative people; they can use GAML
                       to quickly create new quests, missions, collectables, secret rooms, power ups, etc.

                       Games generate a lot of events: when a player moves, when players collide, when a player picks up an item, and so
                       on.   What turns these events into something interesting is how they are handled.            The GAML is a light-weight
                       scriptable language for linking events to actions. Using our library of behaviours, conditional logic, randomization, and
                       server authority, designers can create completely different gaming worlds.

How do players save    Unlike console games, where saving progress has been around for years, saving progress in a social world is a new
     their progress?   concept; users close their browser window when they leave a social world, they don't think to save before logging off.
                       Rather than try to change player behaviour we have built object persistence into the heart of the GAML language.
                       This means players don't have to explicitly choose to save their progress, instead their progress is persisted as they
                       explore and play the world.

                       Consider the example of a player picking up a key. The GAML engine understands that anything added to the
                       inventory should be saved, so when the key is added to their inventory it's also persisted into the database. When the
                       player next enters the world, the key is loaded from their inventory - they don't need to go collect it again.

                       In the simple example of inventory items the game designer doesn't need to think about object persistence. More
                       complex game state can also be persisted too, for example, if a light switch is on, or the position in a conversation
                       tree. The game designer controls state persistence on an individual basis - the reading and writing to the database is
                       handled by the GAML engine speaking to the MU Server.
                       Freemium, subscriptions, and micropayments
What’s the best kind   The Dubit Platform supports subscriptions, micropayments, and free points; all three compliment each other.
 of economy for my
                       Most worlds can be played for free, and give the player points that they can begin to invest in their avatar; the more
                       time the player invests in their avatar the less likely they are to leave the game and throw away that investment. Typical
                       ways to earn free points include: mini games, completing missions, player vs player battles, time on the site, and more.
                       Points belong to the avatar who earned them, in other words, if my avatar 'max power' earns 100 points, they can
                       only be spent on the avatar 'max power'.

                       As well as free points we have the concept of paid credits that can be spent on any avatar. Paid credits are usually
                       given as part of a subscription, or bough in a microtransaction. Digital items can have a paid credits value, free points
                       value, or both: they do not have a dollar value. Digital items can only be bought for credits or points, but not cash
                       because most credit cards in Western countries will not accept small transactions. Instead, the player buys credits in
                       small chunks of £5 or more, they can then spend those credits in exchange for digital items. So, items can have an
                       indirect dollar value, but players do not spend cash in the shop.

                       The choice of subscription versus micropayments comes down to the audience. Subscriptions need the parent to pay
                       with their credit cards, consequently the site must be one that mum and dad would endorse, too. Micropayments
                       work well with teenagers who have money to spend through their cell phone or debit cards, and because parental
                       consent is not required, the site can be more edgy.

                       Subscriptions complement micropayments when they unlock advanced features that might not appeal to everyone. In
                       this case the really enthusiastic players can subscribe, get credits every month, and unlock the pro features.

                       Note: if a parent is subscribed to a world, they don't expect their child to be subjected to adverts.

                       Customisation, avatars, and shopping
 How customisable      A customisable, humanoid, avatar is made of lots of different images, their hat, hair, shirt, pants, shoes, and skin. Our
are players avatars?   image baking technology combines all these assets into one image so the player’s computer only needs to make one
                       request; the effect is much quicker load times.

                       Because the avatars are made up of images created in a 3D package the customisation options are not limited by our
                       technology; the server can bake any combination of images. The customisation choices are decided by the avatar
                       design and the 3D modeling time.

                       Avatar customisation is huge part of the social world experience, players love to design their own identities; some
                       players will spend more time building their avatar than any other activity!

                       However, creating all those avatar clothes is a big job for talented 3D artists so we asked why can't we let the users
                       create their own clothes, their own designs? In Q1 2009 our next generation of customisation tools will directly
                       address this problem. These tools let players paint onto the environments, avatars, and furniture in 3D; they can create
                       their own clothes by painting straight onto their avatar. The tools will run in the browser with no download.

   Can the shop be     The shop interface is organised into tabs, like 'hats', 'shoes', and 'shirts'. These tabs are managed through an admin
   changed without     interface, so its possible to change the special offers, create seasonal tabs, or adjust prices without development
development work?      work.

                       The shop doesn't need to be limited to clothes either, players can buy power-ups, actions (such as new dances), or

                       Players can pay for their purchases with *free points* or paid for *credits*. Real money is not used directly in the shop,
                       only in the form of paid for credits. By using credits items can cost as little as a penny; credit card companies would
                       not accept such small payments.
Registration process
Best practice for U14s
The Dubit Under 14 (U14) registration process requires that awaiting parental consent we encourage children who are
all users under the age of 14 have parental consent for under 14 to enter the world as a guest; guests do not enter
unfettered access to the system. Although we follow best personally identifiable information and can not
practice it is possible that children can lie about their age or communicate, or be communicated with.
enter an email address other than their parents.      While


                            Privacy                 Under 14                  Over 14

                                                    Parents                                   No


                            Validate                Password                                           Validate
                           Password                   Entry                                           Password

                          Email Parent
                          Notification +
                                                                             Email Sent
                            Parental                                          Screen

                              Yes                                        E
                          Email Child

A: Before entering any personally identifiable information accept or reject link. If the parent does not respond after a
we ask the users age and route under 14s into the parental week a reminder email is sent.
permission process.                                              D: The parents response is emailed to the child.     If the
B: The parent is contacted via email. The parents email is parent rejected, all details are removed permanently from
stored for up to one month. If, after a month, the parent the database.
has not responded all details are permanently removed E: On receipt of the confirmation email the child must click
from the database.                                               a link to activate their account.   All members, including
C: The parent receives an email asking for permission to those over 14, must click the link to validate their email
play the game.    To respond the parent clicks either the address.
                          Up close and in detail
                          Dubit have developed five core technologies used in every other so that a friend on server A can send a message to a
                          gaming world: MU Server, GAML, Image Baking, Instant friend on server B.
                          Match, and Object Persistence. These technologies have
                                                                                           However, routing messages between players on different
                          been deployed in real-world games.
                                                                                           servers is not nearly as quick as players on the same
                                                                                           servers. In scenarios where message speed is important,
                          MU Server                                                        for example the movement messages in chat rooms,
                          Distributed gaming network                         players need to be connected to the same server. On the
                          The MU Server (Multi User Server) is what makes it other hand, it is perfectly acceptable for private messages
                          possible for players to send a message from their between players to take half a second longer.
                          computer and it appear on everyone else's. In its simplest
                          form the MU Sever routes the messages between players.           To support more users than the chat environments can
                                                                                    physically fit we create a new instance of the room;
                          A single MU Server can support a few thousand players, instancing environments is the process of cloning an
                          the limiting factor is usually the number of messages the existing room. Consequently, there are multiple instances
                          server needs to send and receive, which varies per game. of the same room type, so when two players enter the
                          As the number of players increases we introduce more same room they could be sent to different instances. The
                          servers to distribute the load.                                  server distributes players among instances by sending
                                                                                           them to the busiest room that still has space.
                          Friends on different servers can still communicate through
                          our distributed presence servers. The presence servers When a player first launches the game their browser is
                          are low volume messaging servers for routing instant load-balanced to a presence server, this connection is
                          message conversations, friends lists, and online/offline/ never closed. But, for each room instance the player joins,
                          away/etc status messages.         These servers talk to each their web browser connects to the server that hosts that

                                                                                           room.   With our distributed MU Server it is possible to

                                                                                                              Presence Server Cluster
 Server Architecture
The server architecture
has been created from
the ground up to scale
 quickly with the addi-
  tion of cheap server                                                                                                      Directory
                                                   Storage                    Relational                                     Server
                                                    Server                    Database

                                Image Server                     Game Server Cluster
                                                                                                                   Presence         Presence
                                                                                                                    Server           Server

                                   Image Baking                      Game              Game
                                      Server                         Server            Server                           IP Load Balancer

                                The internet

                                User computers
                                                                      GAML Engine

                                                                         Users machine
support many thousands of concurrent users, and still have number of requests the client makes of the server, greatly
friends on different servers talk to each other, challenge reducing download time and server load.
each other to games, and meet up in the same chat room

To summarise, this means that the players computer has
two persistent socket connections open, both connections
                                                             A series of connected events
communicate with the server through binary encoded When a player moves around the world events are fired. In
Game Objects. Game Objects are the building blocks that fact, when the player does almost anything (collides, uses,
the GAML Engine observes and interacts with. One picks up, enters, talks to, and so on) events are fired. An
connection is open to the Presence Server permanently, event is a notification that something in the world has
while the second connection is regularly moved between happened, but what makes a game fun is what happens
Game Servers. Which game server depends on what room because of that notification.
instance the player is in, or where their multiplayer game
                                                             Consider the example of a player walking onto lava. In this
opponents are.
                                                             simple example for every second the player is on the lava
When two players are running towards the same power-up an event is fired. The GAML engine captures the event and
it’s possible for each player to think they got there first. executes the script written by the game designer. The
Movement lag can affect where the other player appears script reduces the player’s health while on the lava and
on their screen, meaning that the other person could be a plays an animation showing smoke coming off the player’s
fraction of a second behind where they really are. These boots. If the player doesn't get off the lava in time his
race conditions are handled by the server; the power-up is health continues to decrease until he dies. The script
marked up in GAML as requiring server authority over changes the player sprite to a burning animation, and the
which player actually got to the power-up first. This is one music changes to a deathly scream.
example of the many ways the MU Server is tightly
                                                             Even in this simple example a lot of different things happen.
integrated with GAML so that the game designers can
                                                             A game world generates a lot of events like the lava
focus on the game not the technical challenges.
                                                                     example, GAML is the glue that binds these events
                                                                         together quickly and easily.    It’s a lightweight
Image Baking                                                              scripting language that allows game
Combining avatar                                                           designers to quickly script how events are
clothes into one im-                                                       processed to create interesting scenarios for
age                                                                         players.
A customisable, humanoid, avatar is
                                                                          The GAML behaviour library contains
usually made of lots of different
                                                                          hundreds of building blocks designers use to
images, their hat, hair, shirt, pants,
                                                                         create completely different gaming worlds. The
shoes, and skin. Each item has 7 frames for
                                                                      behaviour library includes, collision, conditional
each animation, such as walking, and
                                                                      logic, sound, animation, conversation and much
dancing.     Furthermore, each item has a
North, North East, East, South East and
South variation.      The different items,
directions, and animations add up to a lot
of images.

We developed a technology called Image
Baking to combine all the different images
for a player’s avatar into one image; we bake the
different ingredients into a grid.   The users
computer needs to only download the one
image, once.

Image baking dramatically reduced the
                                                                                        manipulate the game-state in whatever manner it wishes,
                           GAML Syntax                                                  or can simply ignore the event. Scripts can also contain
                           Example code and language                                    links to each other, which enable them to exchange
                           structure                                                   messages. These events make up the primary interface
                           When designing the language there were two primary between the engine and the language system.
                           goals. First, the syntax should be powerful enough to offer
                           complex loops, conditionals, and nesting, but familiar The following 29 lines illustrates a simple conversation
                           enough to be learned and used by a non-programmer. between the player an an NPC who has asked a favour of
                           Second, the language must execute quickly enough to be the player to take a book back to an NPC called Magnus.
                           useful in a real-time multiplayer game.

                           The game engine executes the scripts in an event-driven
                           manner. For example, when two objects collide with each
                           other in the physics engine, any scripts linked to either
                           object receive a "touched" event. This event contains
                           parameters that allow the script to identify which objects
                           were involved in the event and the type of event that
                           occurred. Based on this information, the script can

                           1. <npcConversationStyle>
      Sample GAML          2.   <onInit><CreateHotSpot/></onInit>
      Line 2: Collision
                           3.   <onCollision>
      hotspot created.
                           4.    <If Expression=" ( {Event.collisionobject.id} == {This.player.id} )">
  Line 3: The collision
                           5.     <Then>
   event is fired by the
                           6.      <Switch Expression="State{Event.gameobject.Status}">
 physics engine when
 another game object       7.       <State0>
     touches the NPC       8.        <ShowAlert Message="Can you take this book back to Magnus please?">
    Line 4: Check the      9          <OK>
 colliding object is the   10.         <StartGameClock/>
                 player    11.        </OK>
Line 8: The NPC is in      12.       </ShowAlert>
 default state 0 so the    13.       <PauseGameClock/>
conversation message       14.       <SetAttribute Name="Status" Value="1" GameObject="{Event.gameobject}"/>
                           15.       <AddGameObjectToInventory InventoryObjectID="book" OwnerObjectID="player"/>
Line 14: Sets the NPC
                           16.      </State0>
             to state 1
                           17.      <State1>
Line 15: Adds book to
                           18.       <ShowAlert Message="Have you given that to Magnus yet?">
                           19.        <OK>
Line 18: The NPC is in
state 1, when the next     20.         <StartGameClock/>
collision occurs he will   21.        </OK>
    ask if the book has    22.       </ShowAlert>
         been delivered    23.       <PauseGameClock/>
                           24.      </State1>
                           25.     </Switch>
                           26.    </Then>
                           27.   </If>
                           28. </onCollision>
                           29. </npcConversationStyle>
                                                                                                 saves it to the database.         If the player now leaves the
                             GAML Object Persistence                                             game, next time they login the key is still in their inventory.
                             Saving changes to the player’s
                             game state                                                          When the player uses the key to open the door, it is
                             Unlike console games, where saving progress has been removed from his inventory, and the door state set to open.
                             around for years, saving progress in a social world is a new The state is persisted to the database so next time the
                             concept; users close their browser window when they player logs in the door remains open.
                             leave a social world, they don't think to save before logging
                                                                                                 In a multiplayer world each player has different states, for
                             off. Rather than try to change player behaviour we have
                                                                                                 example, the player who has unlocked the door would see
                             built object persistence into the heart of the GAML
                                                                                                 an open door, others would see it closed. State can also
                             language.    This means players don't have to explicitly
                                                                                                 be global, for example pressing a light switch could turn on
                             choose to save their progress, instead their progress is
                                                                                                 the lights for the whole room.
                             persisted as they explore and play the world.

                                                                                                 The GAML engine takes away the complexity of saving
                             The sequence diagram below shows a player picking up a
                                                                                                 game data; it’s as simple as marking an object or attribute
                             key and then using that key to open the door. Once the
                                                                                                 as persistent. The engine does the rest.
                             player has picked up the key the GAML engine intelligently

                                 Game World                     Inventory               Player State                   MU Server                 Database
   Picking up a Key
    GAML intelligently
    persists any item                       Player collides
 added to the player’s                      with a key which
                                            is added to their
    inventory. In this
                                            inventory                   Any item added to the inventory is persisted
case, when the player
                                                                        to the database. The GAML engine informs
  leaves the game he                                                    the MU Server that the player has picked up a
 doesn't need to save                                                   key
                                                                                                                               The MU Server
  progress. Next time                                                                                                          writes the inventory
  he logs in, the key is                                                                                                       item (key) to the
                                                                        In the scenarios where there is a limited              database
   still in his inventory.                                              supply of keys the MU Server confirms if the
                                                                        player did in fact successfully pickup the key
                                                                        (see the Technology section on MU Server

                                                                        The key opens the door and is removed from
                                            Player collides             the players inventory. When any item is
    Opening a Door                          with a door which           removed from the inventory is must also be             The MU Server
  The player uses the                       checks if the key           removed from the database. The GAML                    removes the
key to open the door,                       is in their                 Engine informs the MU Server the key was               inventory item (key)
                                            inventory                   removed                                                from the database
at which point the key
   is removed from his
 inventory. When the                                                    When the door is            All player
                                                                        opened its state is         attributes are
    door is opened its
                                                                        changed so that             persisted to the
state is saved for that                                                 the door remains            database. The              The MU Server
  player (others might                                                  open. The state is          MU Server is               writes the attribute
       see the door as                                                  stored as an                informed of the            change to the
                                                                        attribute                   change                     database
closed). Next time the
player logs in the door
        remains open.

                                            The attribute change is reflected back into the
                                            game world. When the player next collides
                                            with the door he can walk through. The door
                                            records the fact that it has already been
                                            unlocked. Even if the player logs off and
                                            comes back in two weeks the door is still
                                            unlocked – without the player explicitly saving
                                            their game.
                       MU Server Features
                       Rapid development and performance enhancements
GAML Thread Safety The MU Server receives thousands of messages every second, each message is pushed into a queue and handled by
                       the first available worker; there are 64 workers processing messages concurrently. While this architecture means the
                       server can process thousands of messages a second by parallel processing, it creates the risk of two workers
                       modifying the same piece of data at the same time and crashing the server. To avoid this we put a lock on the data
                       before modification - the other workers wait until the lock is removed - too much locking slows the server down, too
                       little and the server can freeze or explode.

                       When we developed GAML we wanted to keep the challenges of locking, mutexes, and semaphores for the computer
                       engineers, and leave the game designing to the creatives. GAML abstracts away the complexities of highly concurrent
                       multi-threaded programming behind a simple XML language.

    Server Authority   When two players rush for the same object only one can take it away. Lag and movement buffering means that two
                       players could appear half a second behind their actual position. Consequently both players might think they got to the
                       object first - in these scenarios we ask the server to take control and decide who got to the object first. Before the
                       player can pick up the object we send a message to the server to see if it still exists - GAML thread safety means only
                       one player can request to pick up the object - the first player to get a message into the server receives a positive
                       response. So, while players would perhaps see slight differences if their screens were side by side - only the server
                       knows where their avatars really are.

                       This is a typical problem of multi-user games and worlds and would usually require hundreds of lines of code on both
                       the client and server. We have abstracted the code, client and server communication, and thread safety behind a
                       single GAML attribute "serverAuthority".       Through only one attribute we're able to solve a frequent but complex
                       problem so we can spend more time focusing on the game play, not the programming.

              GAML <GameObject id="speedBoots" x="10" y="10" severAuthority="true"/>

       User Groups The game designer can define user groups within a room, for example, a two player game might have an observer
                       group who cannot participate but can watch and chat amongst themselves. Or groups can be made dynamically, for
                       example, when players become a team, the server creates them a group through which they can chat and send
                       messages privately.

                       Groups can also be used to control access to restricted behaviours; for example, an admin group would contain
                       GAML behaviours to eject or ban other users. Only admins can join the group.

  Programming Not A new room can be created without needed to write any ActionScript code on the client or Java code on the server.
           Required Because rooms are entirely configured by our GAML, even complex rooms with quests or games do not require any
                       Java or AS3 code. This means we can create complex and engaging experiences quicker, and change them more
                       frequently.   In addition, because GAML abstracts the complexities of world programming - thread safety, server
                       authority - behind a rich set of behaviours we train our customers to write their own rooms.

       Coming soon!    The real advantage of GAML will become apparent with the beta launch of our Visual GAML Editor
                       in Q2 2009. The editor uses a visual drag and drop interface to create new rooms, quests,
                       puzzles, conversations, NPCs, triggers, without writing any GAML.         A visual game
                       editor is not possible without an intermediary scripting language like GAML; the admin
                       creates rooms visually and the editor writes out the GAML configuration files that the
                       server and client know how to interpret.

                       Using the visual editor it will be possible for our customer to create new
                       quests, games, puzzles, power ups, and so in, in a matter of minutes.
                       Regularly updated content keeps players interested and coming back day
                       after day.
Message Bunching      Flash can receive up to 5 data packets every second before becoming overwhelmed. Imagine a busy room of 25
                      people; if all 25 people are walking around, each sending 2 messages every second, we can expect the Flash client to
                      receive 24 x 2 = 48 messages every second.            Our tests show 48 messages massively degrades the Flash client
                      performance, and quickly messages begin to be dropped.

                      The server solves the problem by bunching messages into one packet sent every 200 milli seconds, the Flash client
                      will never receive more than 5 messages a second, but each packet might contain multiple messages.

                      Message bunching can be disabled for games that require fewer messages but where speed is important.

User Session Room     Each user has their own session room that stores their attributes, contacts, and state. For example, if a player has a
                      health meter that could be effected by games or terrain, it is stored in their session room. State and attributes are
                      flexible, the game designer can create as many player attributes as necessary.

                      The session room is also used for routing private messages between users on different servers. If a contact cannot be
                      found on the server the session room looks up their location and sends a lightweight UDP message to that server.

                      Using the same routing technology, if a player is in multiple rooms on different servers, the session room distributes
                      their attributes across servers. So, any room on any server can read and modify the players health, speed, points, etc.

  Latency Adjusted    While message bunching solves the problem of how many messages a client can receive each second it further
        Movement      exaggerates the lag between client and server. Dubit have developed a movement protocol, and buffer, that queues
                      movement messages for a short period of time in order to smoothly interpolate the movement of other players -
                      without the Latency Adjusted Movement system players jump and stutter around the screen.

                      While a player’s movement could be half a second behind their actual position, server authority on shared objects,
                      addresses the problem of two players attempting to pick up the same object. The server knows where both players
                      really are, and decides who got to the object first.

     Instant Match    Players can enter a multiplayer game in two ways: challenge a friend or player in the chat environment; or using the
                      instant match to find them an opponent automatically.

                      The Instant Match deals with the problems of liquidity, and game quorums; it locates and ensures that there are
                      sufficient players for a game to kick off. For example, consider a game that requires a minimum of 4 players, and a
                      maximum of 8. When the fourth player enters, the Instant Match will wait 60 seconds for another player to join. If
                      another player joins the timer is reset, otherwise the game kicks off. On 8 people joining the game starts immediately,
                      and a new instance is spawned. The Instant Match can be scripted with a range of different rules for each game.

                      While the server is looking for opponents the players can continue to play in the chat environments.

                      GAML Features
                      Features exposed to GAML writers
   Terrain Triggers As a player walks around an environment they might encounter different terrains that effect their movement or health.
                      For example, if a player walked onto Lava we might expect them to die, or at the very least, their health to decrease.
                      We call this type of event a terrain trigger; when a player moves over the terrain events should be triggered.

                      Terrain triggers are defined by hidden images, maps layered on top of the room, when the collision engine detects the
                      player entering a new terrain trigger, an "onEnter" event is fired, while the player is in a terrain image map an "onInside"
                      event is fired. The GAML editor can handle these events in what ever way they want.

                      A simple example would be a player entering a pool of lava, every time the "onInside" event is fired the players health is

 Dynamic Lighting Environments can contain lights and shadows that layer on top of the player. Walking into an area of shadow layers a
                      filter that darkens the player, walking near to a light illuminates the player with a glow the color of the light. Both effects
                      are the result of applying a "Multiply Filter" onto the player - filters are defined using only one line of GAML, no coding is

             GAML <MultiplyFilter id="shadowMapFilter">
                          <Texture id="1" assetID="shadowFilterAsset" x="0" y="0" />
     Sound & Music Environments can contain four types of sound: streaming, looping, event, and proximity. Streaming sound is typically
                        used to load-in long music tracks; the sound file is streamed in once the environment has finished loading. Streaming
                        music is not stored in memory so cannot be looped and does not begin playing immediately. A looped sound is
                        shorter and will play repeatedly; suitable as background noise. An event sound is one triggered by an action in the
                        world, for example, as the player walks through water a splashing sound is triggered. Proximity sound is one that gets
                        louder, and pans in, as the player approaches the source of the noise. Each sound is configured through only one line
                        of GAML, a proximity sound point is shown.

               GAML <SoundPoint id="plazaSound" assetID="plazaSound" x="454" y="923" strength="0.5"
                    carry="100" stereoWidth="0.5" />

Tracking & Analytics Everything that happens in the world is the result of an event, such as the player pressing a key, or walking towards an
          Integration   NPC. We can track any of the events using only one line of GAML. Dubit do not provide an analytics package to track
                        how often each event is fired, when, or by whom. Instead, we provide a configurable GAML call that posts each
                        activity to a third party analytics package; this allows customers analytics across multiple products and properties to
                        be measured and reported from the same tool.

               GAML <TrackEvent ref="useItem/{room.player.id}/goldKey"/>

      Advertisement     Like analytics tracking, Dubit does not provide an advertisement serving platform; typically our customers prefer to
           Campaign manage and monitor their campaigns through one tool. There are GAML behaviours for loading image, swf, and video
          Integration   adverts.

     Modular GAML The platform contains a large library of behaviours that can be used to build quests, games, NPCs, conversations, and
                        much more. Few projects require all behaviours; to help keep file size and loading times to a minimum, the behaviours
                        are bunched into modules that can be included as required.

                        This same modular approach means that when a desired feature cannot be achieved with the existing GAML
                        behaviours we have the framework to extend the language. The custom behaviour IP is owned by the customer, and
                        not shared back into the platform library.

                        Typically, the GAML for a room is loaded before the player enters the room. However, there are times where it might
                        not be desirable to load all the GAML up front. For example, a large conversation can be loaded when required, or
                        when a player might gain an advantage by viewing the GAML source, loading can be deferred until required.

               GAML <ChatRoom id="park" xmlns:xi="http://www.w3.org/2001/XInclude">
                          <!-- Shared Dubit GAML Behaviors -->
                          <xi:include href="includes/shared/movementBehaviors.xml" />
                          <!-- Customer owned GAML Behaviors -->
                          <xi:include href="includes/customerName/uniqueBehavior.xml" />

    Video Streaming Video can be streamed independently or synchronously. Independently streamed video begins playing from the start of
                        the movie when a user first enters the room. In this scenario players will all see the same video but not the same frame
                        at the same time. In other words, if I enter the room 5 minutes before another player then I will be 5 minutes further
                        into the video.

                        If we want the users to be able to talk about the video they're watching we need to synchronise the streams so that
                        we all see the same frame at the same time. Synchronised video requires the server to remember at what time the
                        video started and to inform each player who enters the room what frame to begin watching from.

          Meta Tiles    The Flash Player has support for images up to
                        2880x2880 pixels. To support rooms larger than the
                        hard bound Flash limits our rendering engine breaks
                        rooms into "meta tiles". A meta tile is a square slice of
                        the larger room image, typically a tile is 1500x1500
                        pixels, the engine buffers only the visible tiles onto the

                        The use of meta tiles means we can support rooms up
                        to 10000x10000 pixels before the performance
                        degrades. However, to keep download times reasonable
                        we recommend rooms are no larger than 4500x4500
                        Third Party Integration Points
                        Modular integration points with external services
External Webservice Both the server and client GAML have behaviours for integrating with third party webservices. With only 5 lines of
          Integration   GAML code we can call an external webservice, process the JSON data, and broadcast the data out to the room.
                        Integration with third party services might be used to load a list of film times, connect to an email server, or load
                        SCORM learning content.

               GAML <CallJsonService endpoint="http://abc.com/ws.js" callbackFunction="process">
                      <BehaviourDefinition name="process">
                        <BroadcastMessage message="{input.packet.*}" recipients="all" />

           Login API The Platform requires a database to store information about players, but can integrate with existing user databases
                        through an agreed authentication API. The process can be described as:

                        1. User authenticates over HTTPS with a third party user database
                        2. Third party server generates a unique token as a function of the user’s global identifier
                        3. Third party server returns the unique global identifier and the token to the Flash client
                        4. Flash client opens a socket connection to the MU Server and sends the unique identifier and token for
                        5. MU Server validates the token and global identifier using the same secret algorithm used to generate the token
                        6. MU Server requests user data over a secure channel and returns username and other data to the Flash client. The
                        user is now authenticated with the Dubit Platform installation

      Mini Game API     Multiplayer and single player mini games API was created so that any development team can build a game for the
                        virtual world, not just Dubit; Cartoon Network's game development team built the games for their Mini Match world.
                        The server deals with the process of kicking off a game, either via direct challenge or instant match, and because the
                        Flash library hides the server communication, developers have very little to learn.

                        Game developers do not need to build security into their games, the API encrypts all score data over a persistent
                        socket connection rather than HTTP webservice requests. While it’s still theoretically possible to hack the game, these
                        prevent 99.9% of all attacks.

                        Developers can test their games in a Flex development harness with simulated players.

                        Production Tools
                        Development tools and frameworks
        Load Testing Load testing a new Platform installation is an important part of the release process. We want to identify hardware
         Framework      configuration errors, bottle necks in the network, or poorly performing code before going live.

                        The load testing harness is scripted to send different types of messages to the server at configurable intervals and with
                        a configurable number of messages. We then determine how many users each test should simulate, and how many
                        times the test should run.

                        Typically a load test client can simulate around 600 users. To simulate many thousands of users we use Amazon’s
                        EC2 cluster. Using EC2 we simulated 40,000 simultaneous users sending messages into Cartoon Networks
                        installation, the whole test required 60 servers costing only a few thousand dollars.

  Maya MEL Scripts      Avatar production requires many hundreds of 3D models to be created and rendered - a typical avatar will walk, stand,
                        wave, and dance, these 4 actions require 110 frames to be rendered out of Maya. A complete avatar with
                        customizable, hair, hats, shirts, pants, and shoes is made up of 550 frames. Our MEL scripts automate the rendering
                        of the frames from an Excel configuration file. Once all the frames have been rendered a Ruby script composites the
                        frames into larger images: its faster to load individual larger images than to load many small images.

         GAML Post      The platform contains a large library of behaviours that can be used to build quests, games, NPCs, conversations, and
         Processing much more. Few projects require all behaviours; to reduce file size and loading times the GAML files are batch
                        processed through the Compression Tool which outputs one file per room. A single file can be gzipped and loaded
                        quicker than multiple files.
                                          Appendix 1: Infrastructure Costs
                                          Scaleable cloud platform
                                          The Dubit Platform infrastructure scales to support growth computing cloud with intelligent monitoring of load across
                                          in demand; not just for sudden traffic spikes but the cluster.
                                          throughout the day. As the traffic falls-off in the evening,
                                          the system adapts to reduce the number of servers and The hosting costs indicated in the chart at the foot of the
                                                                                                page are built round the assumption of a normally
                                          lower the hosting bill.
                                                                                                         distributed flow of traffic over a given 24 hour period. The
                                          In addition, should PR & marketing activity drive a burst of distribution is shown in the chart below.
                                          traffic, the system can scale with new servers in a matter of
                                          minutes.    The infrastructure is built on top of a virtual

                                                                                         Time over a given 24 period

                                          There are 6 components that make up the hosting cost; cached locally and that each player visits 5 busy rooms per
                                          Database, Application Server Cluster, Nexus Gaming             session. In total each player downloads 40MB of data.
                                          Cluster, Load Balancing Proxy, Image Baking Cluster, and
                                          Bandwidth. Through optimization of the starting stack we Note that the number of concurrent users shown in the
                                          can get the initial hosting costs as low as $600 per graph increases two fold at each interval, so while the chart
                                          calendar month, and scale roughly linearly all the way up to suggests an exponential curve it is in fact broadly linear.
                                          20,000 concurrent users and 18M visitors per month.
                                                                                                         A detailed model is available on request.

                                          Bandwidth is, by a long way, the single largest cost. The
                                          model assumes a worst case scenario that little data is

                          $100,000                                                                                                                    7,000,000

                           $75,000                                                                                                                    5,250,000
Cost Per Calendar Month

                                                                                                                                                                     Visitors per month

                           $50,000                                                                                                                    3,500,000

                           $25,000                                                                                                                    1,750,000

                               $0                                                                                                                              0
                                     50      100            200            400             800            1600           3200            6400

                                                                              Concurrent Users
                             Appendix 2: Environment Design
                             Projection and style
                             The rendering engine supports real 3D, top down, off-top has been created by Dubit’s creative team and illustrates a
                             down, and isometric projections.   A world can use more range of designs; the technology can support almost any
                             than one projection in different rooms. The art work below style, from cartoon cell shading to detailed 3D.

              Real 3D
     The 3D rendering
  engine supports low
  polygon models and
     environments con-
  structed from planes
    and simple shapes.
   Textures can be de-
tailed and high resolu-

  The real 3D engine is
  the most CPU inten-
  sive renderer. Users
need modern comput-
ers for the game to run

        Off-top Down
   This projection is in
between isometric and
   top down. Like top
     down it’s suited to
  larger maps that the
   player explores, but
because the camera is
      lower more of the
  players avatar is visi-

The camera is fixed, it
 can not rotate around
the room. The art was
  created in Maya and

  In an Isometric room
   there is no perspec-
      tive; nothing gets
smaller in the distance.
   Typically the avatars
are bigger than the top
       down variations.

  Because the avatars
    are larger isometric
  rooms are good lob-
     bies, and meeting

              Top Down
  This projection works
       well for very large
  spaces. Typically, the
  avatar is smaller than
   other projections so
that the player can see
 more of the surround-
    ing terrain and navi-
   gate the large space

This environment was
created in Photoshop,
 some elements were
    modeled in Maya.
                         Appendix 3: GAML Design Patterns
                         Collectables, locks, and puzzles
                         This section of the document explores a few of the of scripted rules. This new, GAML created, plant could be
                         common game mechanics you might already be familiar collected just like any of the original plants.
                         with from popular games, and how those same patterns
                         are achieved using Dubit’s GAML.                               Rooms
                                                                                        The building blocks
                         Collectables                                                   In almost any game, or online world, you will need to have
                         Pac-man to Animal Crossing                                     the ability to change from one 'room' to another
                         Many games feature the idea of some sort of collectible
                         item, or items. Using GAML, the items, their values, their A room is a single environment, each room can use a
                                                                                    different render and be a different style. For example, a ship
                         position, and their collectability can be defined.
                                                                                        may feature many rooms that a player can move between.
                         In Animal Crossing: Wild World, there are many types of A room may need to be entered by walking through a door,
                         collectable item, including digging up fossils to  store or by selecting it on a menu. Both are provided for in
                         them in a museum, or catching bugs and adding them to a GAML
                         terrarium. While each of the types of item has a unique
                         collecting method (digging, catching, etc), these and others The Final Fantasy games series features many
                         can be defined in GAML from the existing base events. For environments that can be considered as rooms. Any
                         example, when the player digs we handle the end of environmental change, whether it be entering a house  or
                         animation event to check if a fossil exists in the area. We changing the map, are rooms changes that can be
                                                                                        programmed in GAML.
                         don’t need to create a new special case event.

                         Another collectable in Animal Crossing is the plant. A plant   The Environment
                         can not only be collected, but returned to the environment.    Environment affecting the
                         Not only that, but the plants in close proximity affect each   player
                                                                                        In Sonic Blast 3D, as with most sonic games, the
                         In GAML, a collectable, just like the player, can have its environment affects your player in a very visual way.
                         own attributes and actions associated with it. A red GAML Springs and Slides make Sonic move around the screen.
                         plant may interact with a nearby Yellow GAML plant to
                                                                                        Looking at the spring as an example, this can be set up in
                         produce a new orange GAML plant, merely through a set
                                                                                        a similar way to a collectable. While the collision with the
                                                                                        player won't make the spring disappear, or affect the

On the left Nintendo’s
Animal Crossing for
   the DS and on the
right the 2005’s Pac-
       Man World 3.
player's collected items, the collision event can be used to
                                                                  Locks & Keys
apply a force to the main character that sends them
hurtling across the screen. A slide would be a similar affair,
                                                                  Controlling access to envi-
but might force the player around a path to another part of
the level.                                                        It is possible to limit a player's exploration through a world
                                                                  by controlling their ability to open 'doors'. The most
Other similar level items might include:                          common example is when 'a player has a key' and can use
• Trap doors to change to a lower level                           that key to access a room. The key may be a 'use once'
• Conveyor belts that effect a player's movement in one           key which might open a door for several people. Or it may
  direction                                                       also be a key mapped to an individual door that would only
• Size altering paraphernalia, that make the player small         let people through who have that key.
  enough to go under low bridge, or large enough to cross
  deep water.                                                     In practice, a key might not be so literal. It could be a
                                                           weapon that pushes a switch, much like  Alan Grant
The actions may also be of the type that affect a player’s opening a gate with his tesla weapon in Jurassic Park.
status, such as wealth or energy, but allows them to
otherwise continue. An example of this may be lava that With  GAML you can add many obstacles, and types of
slowly kills the player, or water that starts to hurt the player terrain, that can only be passed if you have a certain
after a certain amount of time.                                  object. For example, In Zelda: A link To The Past, Link
                                                                  could collect a gauntlet that allowed him to lift a heavy

A Changing Environment                                            bolder that blocked his way.

Player affecting the environ-                                     Another example might be wellington boots that allow you
ment                                                              to pass a marsh.
GAML can be used to open or close certain areas of your
                                                                  In Jurassic Park, the player gains access to many indoor
                                                                  areas, which can be passed through to reach other areas
In a chat world, or MMOG, the ability to control access to of the main map. These areas use a different graphics
rooms can be used as device to encourage progression, or engine, it’s possible to achieve a similar experience with
reward players who invest time in the world. For example, a GAML.
boat might need one hundred, in-game hours of cleaning
barnacles  to be used. Once the players have cleaned the In A Link To The Past, there are two versions of the map in
                                                         two different time zones. By going into the past, moving,
boat they can travel to the 'Island Room'.
                                                                  then returning to the future you can access new parts of
A more common example of this sort of action, which the world. This too can be achieved using GAML by giving
GAML can be used to create, can be seen in games where the player hidden ‘keys’ to unlock new rooms in the future.
the story necessitates certain parts of the world to be
hidden at the start.                                              Player Attributes
                                                                  Improve the avatars perform-
In Toejam and Earl, most of the land is invisible when you
start the game, but you can bring it in to view, bit by bit, by
standing on invisible 'buttons'.                                  The changes GAML can make to a player, or any other
                                                      entity in its worlds, are not limited to simple on/off
The events that trigger new areas to be opened in the switches. GAML could increase or decrease attributes that
Grand Theft Auto series are the completion of certain modify the behaviour of the player or other objects. For
tasks.                                                            example, a power-up could make a player's gun cause
                                                                  more damage, fire faster, or enable their shield to take
A task sequence can be create in GAML by defining a task
                                                                  more hits.
whose completion event acts as the starting trigger for
another event, and so on. Some of these events may
trigger more than one new task, creating forks in a story.
                                                                                        that are affected by every encounter.      These numerical
                          Time Dependancy                                               scales then affect the conversation and other available
                          Events any place any time                                     interactions.
                          GAML objects need not necessarily be added and
                          removed by a level editor manually, the server can generate Many GAML items from the environment can affect these
                          new objects randomly, or on time intervals.                 relationships. For example, you may come across a tiny
                                                                                     miniature trumpet that can be gifted to a child NPC in order
                          In Night Trap, you complete the game by following clues as to gain favor.
                          to the whereabouts of the bad guys. By waiting in the
                          correct location at the correct time, you can complete the The various scales of relationship could also be affected
                          game. In GAML this would mean adding an item that can simply by conversation. Things the main character say can
                          be actioned to progress, and tying it to the server clock. be weighted with attributes that effects a persons feeling
                                                                                      toward them. The attributes act as modifiers to the
                          These time-related actions may be incidental to a player's relationship object that two people share.
                          progress through a GAML game. For example, in NIGHTS
                          objects appear differently on Halloween, and the levels are Another way a conversation may affect a relationship in a
                          covered in snow over Christmas.                               GAML game, is by using the conversation as a path or
                                                                                        tree, that must be navigated correctly to find certain

                          Quests                                                        information - information that can act as a key, attribute or

                          And other complex interac-                                    a modifier. Monkey Island uses a system like this. By

                          tions                                                         talking to the men of power in the bar, you are given the
                                                                                        quests you need to complete the game. This game also
                          Through a series of smaller events, GAML can be
                                                                                        uses a unique conversation system to fight battles, where
                          employed to create a deep relationship between the player
                                                                                        the correct reply to an insult moves a battle  to your
                          and any of a game-world's characters.
                                                                                        advantage. In GAML these features are described by

                          If you consider each conversation, and everything you do simple actions and events.
                          for somebody as  a task, it is possible to create the
                          situation where the player’s character can effect how NPCs
                          respond to them through the completion of tasks. As an
                          example, in The Sims, every two characters have their
                          feelings for another stored as a number of numerical scales

Monkey Island: The
    games follow the
misadventures of the
  hapless Guybrush
 Threepwood as he
 struggles to become
   the most notorious
          pirate in the
Caribbean, defeat the
      plans of the evil
      undead pirate
LeChuck and win the
    heart of governor
       Elaine Marley.
                                                                                      an NPC being robbed and stepped in to affect the
                           Quest Motivations                                          situation. Though you have had no previous interaction
                           Why players complete quests                                with either the victim or the robber, stepping into the
                           Task: an act which a person has been assigned or situation might alter the outcome and possibly merit a
                           commanded to perform.                            reward. The reward might be a ring if, you helped the
                           Assignment: one of a series of actions to complete a victim, or an opportunity to aid in future crime, if you helped
                           greater objective. This might involve multiple players acting the robber.
                           in differing roles in one experience; like if the wizard
                           maintained an enchantment and the warrior distracted the
                                                                                      Quest Structures
                           guards while the thief opened a chest and stole its
                                                                                      Types of quests
                           Duty: is an obligation to a superior, and unlike a task, is Deliver or retrieve: deliver a parcel to another NPC
                           something that is regularly expected. For example, paying Seek and destroy: find something and then remove it.
                           rent on one’s house is a duty.     To give the player some Spy or scout and report back: visit an area and report
                           control, the duty does not care how the money gets paid, back to the NPC.
                           its up to the player to decide how he wants to earn it.    Steal or acquire item: steal items from NPCs
                           Job: like a task, is a well defined action performed with a Destroy: destroy a door, or building
                           reward clearly in mind. The player should usually know Intellectual challenge: get something working again, help
                           generally what the reward will be before he/she accepts NPCs figure something out, etc.
                           the job.                                                Collect items: find items around the world
                           Favour: like a job, is performed with a reward clearly in Create items: combine items into new items, e.g. for
                           mind (though the precise nature of that reward might be items.
                           unknown), but the reward is a service, rather than material. Sell items: sell to NPCs
                           Service rewards include offering a job or quest, putting in a Buy items: buy from NPCs
                           good word with someone, and allowing access to new Labyrinth: a puzzle that requires feats of action, in
                           territory or NPCs, among others.                   addition to feats of intellect
                           Impulse: an act which did not originate with a command Puzzle: electronic door locks, codes, clues.
                           or request from an NPC. These are opportunities for
                           rewards or service, but no reward is guaranteed (the
                           reward might be only that you did what was right...or
                           wrong ). An example would be if you happened to notice

GTA 2, shown on the
 left, allows the player
to take on the role of a
      criminal who can
  roam freely around a
      big city. Various
   missions are set for
  completion, such as
     bank robberies,
  assassinations, and
         other crimes.

Zelda A Link To The
  Past, shown on the
   right, there are two
 version or the map in
     two different time
zones. By going to the
   past, moving, then
returning to the future
 you can access new
    parts of the world.

To top