HOME

DEVELOPER FORUM

DATA PACKET STRUCTURE

TRY IT RIGHT NOW...
HOME

DEVELOPER FORUM

DATA PACKET STRUCTURE

TRY IT RIGHT NOW...

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!

Wish to try a demo?
››› Please contact us!

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.

DEMO OF PACKET USE