What this is:

Avatar middleware for your applications, and advanced user-created, user-owned content to access on the avatar server.
Use free API, textures and real-style meshes, or mutate ready-made user avatars by parsing meta-data to conform to your own unique graphics and art.
This is just the beginning. Help out - join us in the development!

The Avatar package system

Avatars
To understand packages, we need to delve into what an Avatar truly is, in our system. To look at it
from a very simple perspective, an Avatar consists out of two things:
1. Graphical representation (Body, animations, clothing, hair, accessories and much more)
2. Personal traits
The personal traits are used by all parts of our system to not only define who an Avatar is, but also
how the Avatar will react in any given situation. If you wish, you can draw the paralell to an AI that
is grown and defined by the user's actions while playing as its Avatar. We call different types, or
categories, of information ”Packages”. In Figure 1 you see an Avatar with two completely different
packages and examples of what kind of information they hold.

(Figure 1: Showing the connection between an Avatar and two different packages)

Package
Information about all avatars describing any kind of traits is stored in Packages. Every package
belongs to a logical subset of traits. For instance, the football package would hold traits that are
specific to general skill in football. In reality, a package is a collection of Fields (see these as unique
traits that the Avatar professes in). Every Field can hold a simple 0 – 10 value describing a kind of
meta-proficiency within that trait. A field belonging to a package is denoted Package.Field. So if
the football package has a field called ball control, we'd denote it as: Football.BallControl. Other
fields might hold pure information, instead of specific values. In the example above,
Books.FavouriteGenre cannot be described with a 0 – 10 value, instead it might hold a string that
says ”Comedy”. We might also want to describe genres and rank by popularity. For this, we can
create a new package; BookGenres and give it many different fields, each corresponding to a reallife
book genre. Then each of these fields might have a value from 0 – 10 detailing how popular that
particular genre is with the given Avatar. So, a value of 10 in BookGenres.Comedy means more or
less the same thing as Book.FavouriteGenre = ”Comedy”.

The System
Package information, creation, deletion and modification is done through our web-based system.
Anyone can request a new package, the deletion of an old one or just simple modification such as adding or renaming a field. This is a community process similar to any kind of Wiki, where several
users have to agree on a single action for it to be performed. Our system also sports moderators, that
validate and check these actions. For instance, is it ok to delete a package that is actively used by
many different applications? Or is it all right to add a new package FantasyFootball when we
already have Football?

Through the system a user can see what different packages exist and perform advanced
searches. E.g: imagine being a volleyball developer and you want to start writing your AI based on
the traits of an Avatar. What you are interested in is Ball Control. So you go into the system, open
the search and type in BallControl. The results you get are Fooball.BallControl,
Basketball.BallControl and Handball.BallControl. Now you can make the choice of either using
one of the existing fields for your Volleyball game (which would probably be unappropriate) or just
creating a new package; Volleyball and adding a field ”BallControl” to it.

A few example uses
One simple way to use all this information that's freely available to you is to allow offline play
between players and their friends. This is especially useful when you have a very split player base
across timezones, or you make mobile games where not many users are online at the exact same
time. Since you know the traits of an Avatar are grown through actions by its user, you know you
can create a well-defined AI that actually resembles the playstyle of the original player. You can use
variables such as Fooball.BallControl, Football.Tactics, Football.Offense, Football.Defense to
compose a strategy for your AI and deliver a beleivable multiplayer experience even though it's
offline.

Another way to utilize the package system is to allow the Avatar to react to other Avatars
depending on how the user acts when online. This can be useful in social games, where the player's
Avatar can be ”alive” in the universe, even though the player is offline.

Yet another very simple way is to use statistics regarding an Avatar to recommend products
or focus marketing, where it's best used. By knowing the habits of the player (favourite books,
music, games) you can actually supply marketing that's relevant and interesting to the player,
instead of spamming with off-topic information that's just ignored.

The Avatar traits can also be used in dating and matchmaking applications. By using the
traits of the Avatar, matches can be made both towards potential opponents in multiplayer games,
but also towards potential partners in a dating scenario.