31 March 2010

[Literature] Fundamentals of Game Design, ch3: Game concepts

In order to answer the questions "Why would anyone want to play this game?" and "What's going to make someone buy this game instead of another?", a game concept contains to a minimum:

high-concept statement
description of the game in 2 or 3 sentences
player's role(s) in the game
describe the avatar. Think about player's actions first, not on the story. The more obvious the role, the easier players or publishers can decide if they buy it.
primary gameplay mode
with perspective, interaction model and challenges
genre
category of games characterized by a particular set of challenges regardless of game-world content. Examples are action, strategy, RPG, simulation, sport, tycoon, adventure, puzzle. Mixes are possible. If new genre, describe why.
target audience
Who am I trying to entertain?. Avoid repelling people who might be attracted by the game. Examples of player populations: male/female, children/adults, different cultures, different (dis)abilities, [hardcore/casual].
Localization not only translates but also takes into account other cultures' particularities.
hardware and system requirements
console => TV => 2-3 people around at the same time => small-scale multiplayer game. Local play is more common than networked play [is it still currently the case with systems such as XBLA?]
PC = small and personal high-res display, personal, the PC player can write thanks to the keyboard
pocket console: small cartridges => less room to store audio or video data like cinematics
mobile phones: wireless => can compete against other people
plane seats, gambling machines and arcade machines are niche devices containing games
licenses
if any
competition modes
(singe, dual, mutliplayer, coop, ...)
progress and synopsis
but not a full story
short game world description

29 March 2010

Vivox in SL: client-side components

This article follows "Vivox in SL: client, server and protocols". Here, I focus on the client components and how they interact to enable voice in SL.

Unused components

SLVoiceAgent.exe could not be found in the 1.23.5 SL client, however it is mentioned several times. The roles of other files such as tntk.dll or srtp.dll are not clearly mentioned in the SL wiki, but other SL viewers such as Hippo mention them as vivox_files. Mike Monkowski reported in the SLdev mailing list of September 2007 that srtp.dll and tntk.dll are part of the DiamondWare distribution, but don't appear to be used by SLVoiceAgent. My guess is they were redundant with other components.

ComponentDescription
srtp.dll ortp.dll provides RTP, making srtp.dll useless. Not present in the 1.23.5 Viewer.
tntk.dll I could not find what services tntk.dll provides, so I do not know which other library could have made it redundant. Not present in the 1.23.5 Viewer.
ssleay32.dll and libeay32.dll Other libraries such as ssleay32.dll or libeay32.dll mentioned in the Third-party libraries wiki page may have been replaced by ssl3.dll in the 1.23.5 Viewer. Not present in the 1.23.5 Viewer.
DiamondWare consists of a client SDK and a high-performance server. It was designed to be extensible via plugins on the client-side and 'bots on the server-side [...] Plugins and 'bots can be created by third-parties thereby leveraging the game development. The client-side is composed of VoIP building blocks. Diamondware seems perfect for a game integration. If it is present in the 1.23.5 Viewer, I could not find in which client-side component it was.

Used components

By "used components", I mean the v1.23.5 SL client components mentioned in the Third-party libraries of SL without the "unused ones" mentioned above.

ComponentDescription
alut.dll and wrap_oal.dll OpenAL's primary use is assumed to be for spatialized sample-based audio. Quite many platforms, engines and games use OpenAL as a LGPL 3D audio API. OpenAL relies on three objects: Buffer, Source and Listener (see OpenAL 1.1 Specification and Reference and the conceptual class diagram nearby). The OpenAL HelloWorld explains a lot. I think some functions in alut.dll (the ALUT library) might be called by wrap_oal.dll, but I am not sure.
ortp.dll ortp is a LGPL library. It is apparently part of the amsip toolkit (but it can be found outside of amsip) and provides the protocol layer primitives: SIP, RTP and ICE. These protocols were described in a previous article.
vivoxsdk.dll Uses the proprietary Siren14 codec by Polycom and relies on ortp.dll, alut.dll and wrap_oal.dll.
SLVoice.exe external daemon software started and stopped by the Second Life Viewer (SL wiki). More precisely, SLVoice.exe is a daemon that receives calls from the SL Viewer through a local TCP server (default is 127.0.0.1:44124). Also named client gateway, SLVoice.exe is the proprietary black box that communicates with the Vivox servers.

FMOD is a 3D audio engine. The SL client contains fmod.dll which is, to my mind, used to play in-game sounds, eventually in 3D. Some of fmod features such as 3D or channel groups might be provided by the Vivox SDK as well. This is a problem with using third-party libraries: their features sometimes overlap.

There are some remarkable differences between the v1.23.5 and the beta v2 SL clients concerning the voice components. For instance, the v2 beta client contains ortp.dll, vivoxoal.dll, vivoxplatform.dll, vivoxsdk.dll and SLVoice.exe. vivoxoal.dll may gather alut.dll and wrap_oal.dll, but I have no idea what new content vivoxplatform.dll can bring. I only focused on the 1.23.5 files mentioned in the documentation.

Interaction between components

Mostly boxes and arrows, but a picture component diagram and a communication diagram are worth a thousand words... (the OAL documentation mentions the hardware is not handled by OAL).

The messages sent from the Viewer to the gateway are based on the SLVoice Application 2.0 documentation.

Diagrams made with Dia. There are many things I tried to guess about this architecture, so feel free to tell me if I am wrong anywhere.

27 March 2010

Vivox in SL: client, server and protocols

Server-side

As I wrote before and based on Vivox' white paper, the main point is the Server-side mixing all voices in real time and delivering the audio in a single stream. I could not find much more information about the SL-specific Vivox server system (Linden Lab will not reveal their server-side architecture that easily), but I guess the Vivox server-side does not differ a lot between MMOG/VW. unused but required parameters can be found in the SLVoice documentation. This suggests either Vivox cared for a retrocompatibility with the SLVoice Application 1.0 or Vivox did not tailor their client API to SL needs. I am for the later, even though I could not find any documentation for the SLVoice Application 1.0 infirming or confirming that.

Joe Miller explained how the Vivox server sends the audio stream to users and how the system can scale:

According to Miller, the VoIP product is unique because of the ability to project the sound in three dimensional space, as a function of distance and direction from one avatar to another. It takes a 32khz signal at 32kbps from clients, sends it to an Intel based audio server where the input signals are mixed and properly positioned, acoustically, in three dimensions, and a stereo stream is sent back to the client at 64kbps. Even with 100 people speaking at once, the bandwidth requirements are the same for each individual because the servers (dual quad-core Xeons) mix the voices together into a single data stream.
The codec used is Siren 14/G.722.1 Annex C, developed by Polycom but now an international standard. It was chosen because it uses relatively low bandwidth but can carry a wide and dynamic range of audio – not just human voices – making it an ideal codec to broadcast, say, a musical event.

The range at which other resident can hear each other are explained in the SL wiki article "How far does my voice carry". Similarly to text-chat, the server computes the distances between people to determine who hears who, and sends appropriate messages after this computation. Hence (and hopefully) it's impossible to use a modified Second Life Viewer to remove the hearing range limits.

The OpenSim server architecture might not differ a lot from the SL one regarding to voice support. However, I could not find it reading the OpenSim wiki.

Client-side

On the client-side, Linden Lab have chosen to keep the voice features outside of the Viewer: The Second Life Viewer handles configuration, control, and display functions, but the voice streams (from the microphone and from the Vivox voice server) do not enter the Viewer. In other words, These [voice] technologies are contained in external daemon software that is started and stopped by the Second Life client.

The requestId can/should be a GUID so that each response matches a unique request. Each gateway response also contains the request it received. This enables the XML-based protocol to be stateless. TCP provides a reliable transmission that prevents packet loss (important to update the UI reliably and in a timely manner).

voipforvw is a GPL alternative for SLVoice on OpenSim. One of its developer wrote it is a snap-in replacement for this executable [SLVoice.exe] that communicates with the viewer and as you’d guess, does the heavy lifting and coding/decoding. But the project started in February 2008 and has not received any commit since May 2009.

More about the client components in an incoming article ...

Voice protocols (in a nutshell)

The following protocols or techniques are used by some components in the SL client.

SIP is an application-layer protocol and incorporates many elements of HTTP such as headers, encoding rules and status codes. As indicated by its name, SIP is only used to initiate communications between clients. Clients start communicating in peer-to-peer after they have been paired by a SIP server. The SL Viewer uses ports 5060 (non-encrypted) and 5062 (TLS-encrypted) for SIP with UDP. Once clients are paired, they can start exchanging data.

ICE is not a protocol but rather an initialization technique that facilitates peer-to-peer communications in reducing the NAT-traversal delay. It uses a STUN client-server strategy to pair agents. When paired, agents do not rely on the server anymore.

RTP is an application-layer protocol that defines a packet format for delivering audio and video. RTP Use Scenarios in the RFC contain multicast, Mixers and Translators. The use of UDP for the transport layer is obvious in this real-time "send-at-most-once" media-streaming context. The SL Viewer uses the 12000 to 15000 (or 13000?) port range for RTP.

26 March 2010

Vivox in SL: timeline, business and reception

Timeline

This article follows the one about Vivox integration.

As an introduction, a timeline and some figures:

  • 2006: the Vivox-SL collaboration started (Joe Miller said in March 2007 that The program has been in development for over a year).
  • 2007: voice chat is integrated into the SL Viewer in August.
  • 2008: SLim is launched in September. It is a lightweight client that enables SL residents to interact with their Second Life friends without having to go inworld with the Second Life Viewer and the ability to leave voice mails for offline friends.
  • 2009: AvaLine (beta) is launched in May. To encourage all residents to use Avaline when the beta ended in August, LL offered free communications to AvaLine subscribers the first month and free voice-mail for the rest of 2009. And a Hula Bear.

According to Linden Lab's blog and press release, Over 15 Billion Minutes of Voice Have Been Delivered in Second Life. In the entire year 2009, the number of voice minutes used by SL residents has remained around 3 billion per quarter and more than 60% of Second Life Residents are using voice at any given time. Vivox reported in July 2008 a daily average of 600,000 minutes of peer-to-peer calls, Over 1 billion minutes of voice communications per month, Group events as large as 400 Residents. As a comparison, Skype had 6 billion minutes per month at that time (according to Gigaom). The numbers extracted from the May 2009 press release (700,000 unique users consuming more than a billion minutes a month) mean the average resident using voice-chat spends 17h per month speaking or listening (and not 357).

Out-of-game messaging and calls

AvaLine is the name of the current virtual telephony system powered by Vivox. A timeline in the May 2009 press release indicates that sending SMS from inside SL to out-of-game mobile phones should become possible in 2010. AvaLine's extension will let residents call or send SMS to real-world phones. Since March 2007 (before the launch of the voice-chat in SL), SL residents were told they would have to pay to use out-of-game telephony features: Eventually, Linden plans to charge Linden Dollars for the service to be activated on privately owned land. People who own land can pay to have VoIP activated for all users on their property. For a single user, AvaLine costs L$14,400/year, ie US$70/year. Residents pay only for monthly flat-rate AvaLine service, regardless of how many calls are received or minutes are used. And

Before AvaLine was launched, other organizations had started to think and actually implemented out-of-game calls and SMS. For instance, in September 2007, NEC opened an island in SL. They offered the possibility for residents to make calls to another person in the real world and send text oriented messages such as SMS, email and IP Messaging [...] to the real world. Other organizations such as Swisscom (through Starfruit) sponsored 100,000 SMS that residents could send from virtual phone booth to out-of-game phones. Another system called SLFONE enables residents to send 120SMS to 240 countries and 700 networks for 8500L$/year (ie US$40).

Reception and adoption by the residents

Three major announcements were made by LL to their residents about voice integration in SL. The earliest news was a FAQ justifying the introduction of voice to SL. It was published by Joe Linden and received half a thousand comments. The second news was published in May 2009. It introduced the AvaLine beta and showed a lot of unsatisfied users as well. Third, the end of AvaLine beta in August 2009 and its introduction to all residents as one of the new bells and whistles brought a lot of concern as well. The residents' comments showed they cared more about stability than new features. Many of them wondered why they would pay to use a semi-working functionnality while they are currently doing fine with other voice-chat systems.

  • When voice was first introduced the same arguments were made - LL said we all loved it, most people said they never/couldn't use it and some people said it was vital for them.
  • This new shiny toy is just something to try to distract people from the real issues.
  • We want stability before the introduction of new features.
  • Utterly pointless and I bet you were told so in all those ridiculous surveys. And your call quality is awful, skype ftw.
  • each shiny new toy gets lots of marketing attention, but fixing things that are broken in a product you've already sold isn't as sexy.

Unfortunately, one of the last word given by LL was: join me for Office Hours [...] we will discuss your ideas about what kinds of communications tools would best help you enhance your Second Life experience. A very interesting official Linden reaction to residents' complains was Partnerships, like the one with Vivox that helped bring us AvaLine, also greatly reduce the number of internal staff needed to deliver projects.
LL may have to keep bringing new content to its customers to keep some of them attracted. That is a perfectly normal marketing strategy in any MMOG. However LL is not an MMOG, and the average SL residents may differ quite much from the average MMO gamer. The obvious difference is: some of the residents work or earn money thanks to SL. So I think it might be more efficient to base a communication strategy on debugging or maintenance rather than on new features.


Finally, I am puzzled by the strange (or lack of?) community management style followed by LL. Joe Linden published "Over 15 Billion Voice Minutes Served", but he was not in charge of answering the comments although he wrote I look forward to hearing what you think. Instead, it was Jeska Linden (an actual community manager with 20 times more news posted than Joe) who stepped up to the plate. Is "what is rare is important" the point in Joe announcing new features to the community?

25 March 2010

Vivox integration

This post somehow follows the one about communication channels of February 2010.

Dana Massey explains that voice-chat features can help consolidate current player bounds and introduce newcomers. integrated voice chat has enhanced their experience in a range of ways. It makes playing the game easier and more fun, it strengthens the bonds of community that really keep people in a game over the long term, and helps them ease new players in their worlds. These are the cornerstones of every online game. It’s time for developers to break down the barriers to entry and make it easy for people to make real connections in their online worlds. The Vivox system seems to be a technically interesting voice-chat feature that boasts answering these issues.
Disclaimer: I have never worked at Vivox and I have neither been bribed nor received pressure to talk about their system.

Overview

In a nutshell, Vivox relies on VoIP and increasingly higher-bandwidth telecommunication systems. The whole list of their features can be found in page 2 of their Tear Sheet. They provide a Vivox SDK that lets developers integrate one-on-one and group voice chat, the ability to see when your friends are online and in game, and links to other IM networks as well as 3D positional audio, out-of-game connections and voice fonts into the game. (Although I do not know if what Vivox provides is a true SDK or simply a complete API, I will keep writing SDK.) This bunch of features is supposed to bring interest among developers, particularly if they allow cross-platform communications: Vivox is, after all, a telephony company. The social real-life impacts are enormous: you can stay part of the raid planning even when you can't run the game itself. In other words, players are more and more hooked up to the game.

Integration process

Vivox provides a phased integration of their system into existing MMOG: three major steps are followed one after another.

  1. Anonymous website-based voice channels (do not require user authentication): no more hassle for the user with Ventrilo or Teamspeak The solution is fully managed and supported by Vivox - you don't have to run your own communication server anymore.
  2. Authenticated website-based voice channels enabling game logics and roles (groups, guilds, etc.): Mapping game roles to channel rights by integrating with the game, we can match the communication hierarchy to the command hierarchy, so that raid leaders or fleet commanders are automatically mapped to the communications infrastructure.
  3. In-Game voice features. Players can begin a conversation on the web and transition to the game, and vice versa. In EVE Online for instance, Vivox is integrated inside the game features: Richardson’s team leveraged Vivox’s flexible tools to tightly integrate voice chat into EVE Online’s existing controls, social structure, and game situations, considerably enhancing ease of use and immersion relative to the third party applications many players were using.

Their white paper from January 2009, explains how Vivox partners with the MMOG developers.

  1. Kick-off meeting leads to specifications and introduces the SDK to the MMOG developers
  2. UI design. In their top-down approach, the earlier it is fixed, the shorter the development cycle.
  3. Wiring calls to UI stubs consists of connecting the Vivox calls to UI elements
  4. Testing is based on test-cases

Extra calls

According to their white paper, Vivox can create peering relationships between game titles, or allow publishers with multiple game titles to open up voice communication among the players of multiple games. Vivox can also provide links between your virtual domain and the “real” world through connections to mobile and fixed phones. I do not know much about telephony, so I only show two high-level sequence diagrams of what I think happens when a group is created. The first diagram is in a traditional Vivox-less game.

The second diagram below shows the case when a Vivox in-game voice channel is created. Feel free to tell me if I'm wrong anywhere.

On top of these extra calls, a lot of work remains in wiring calls to UI stubs. I could not find exactly how much overload for the client and for the game server this meant.

A marketing and technological success

From a marketing perspective, Vivox is a double success.
First, Vivox is a success for itself: although many players may keep using their previous voice-chat softwares like Ventrilo or Teamspeak, many players are truly going to enjoy talking inside the game without alt-tabbing. I think MMOG newcomers are very likely to adopt in-game voice-chat rather than external softwares. With more and more performant outsourced in-game voice-chat systems like Vivox, I think external softwares will slowly disappear in a close future. This leaves Vivox with no competitor.
Second, MMOG companies can earn money in RMT with voice-fonts, voice mail and out-of-game messaging, but also in audio advertising.

Vivox is also interesting from a technical perspective. The system can be plugged on an existing traditional client-server game architecture without affecting (too much) the network or the game quality. A very adaptive solution. Based on their white paper, I think the Vivox engineers have been very smart in deciding to:

  • mix all group communications on their servers and send them as a single voice stream to all voice channel participants
  • launch peer-to-peer connections in the case of in-game Person-to-Person Communications

As a result, it is apparently possible to handle as many as 6,000 people in a single voice chat session. Although this impressive number relies on a traditional cluster of servers behind a load-balancer, I do not think there are many smarter choices.



I used sdedit for the sequence diagrams

24 March 2010

Introductions

To introduce (someone) means to bring in for the first time and also to cause to be acquainted. In other words, a good introduction is twofold: welcoming and accustoming. Using a Las Vegas-like hotel resort metaphor, welcoming newcomers is the reception desk's job, while accustoming, pleasing or securing the loyalty of clients is the spa, restaurant or other activities' role.

WoW has been the first MMOG to reach more than 10 million subscribers, presumably reaching new market segments. If the MMOG industry as a whole wants to keep reaching new segments and become the media of the 21st century, then new players' integration should be the main focus point. A college student recently told me that he believed the success of any MMOG depends on the first five hours of play. Although I do not disagree, I have not found any professional source confirming or infirming that. "Easy to learn but difficult to master" is a well-known game design quality, but MMOG also have to provide a spotless QoS. Even though perfect QoS is not yet a standard, this article does not focus on QoS but rather on some social (and eventually game design) issues during newcomers' introductions.

Welcoming

New players continually join the game. This flow of customers consists of solo players, who know no one in the virtual world, as well as groups of players, who knew each other before starting the game. I think the Uru Diaspora players mentioned by Celia Pearce fit into the second category. They cause an increase in the flow of newcomers and have to be welcomed as a group, not as distinct individuals. This is crucial for the game design of low-level zones: both solo players and group of players must be satisfied. There is an apparent contradiction: fast and easy leveling structures exist for solo players, but very few low-level group activities exist for people who already knew each other beforehand.

The problem can be seen from a different angle. IRL, introduction acts are mostly done by third party (friends, colleagues) that helps you get into the circle. For instance:

  • in the blogosphere: guest posts.
  • in the musical community: small groups playing for the opening acts of more famous musicians.
  • in the musical community within a city: Some young saxophonists told me they had to join "the musician mafia cloud" to find musician jobs/opportunities in their area, otherwise they would not be able to open the doors by themselves
  • in the research community: publishing in journals is the principal activity, but one has to find an advisor in one's area to know where to publish, get a Ph D and gain credibility. Most of the time, only fifth year students happen to figure in peer-reviews.

As for groups in MMOG, there is no such introduction process: a player groups with another, they have the quest done and split. Selective guilds have to set up their own website and check for applicants through this website and until now, I have not seen any IG interface that fosters meetings between guildless players and guild recruiters. Although capital cities such as Stormwind in WoW, Prontera in RO or Coronet in SWG gather all kinds of players in the same place, they are mostly used for trading or services, not for welcomings.

Accustoming and pleasing

In 2004, Shannon Appelcline explained that the average player stays for approximately 18 months. She defined critical mass as the minimum number of players simultaneously online that is required to make the game fun. She also coined user plateaus, which are other threshold of the number of players. The first user plateau is the critical mass. When a plateau is reached, the community size stagnates, and the game designer must come up with new ideas to keep the players interested and get past this threshold.

22 March 2010

Chatroulette and video-chat

It might be a bit too early to talk about Chatroulette as the website is still at the center of a lot of controversy, buzz and viral videos/phenomena. However, I think current Chatroulette issues can provide interesting insights about what to do or not to do in potential MMOG video-chat systems.

Chatroulette

You should try Chatroulette to make your own opinion. Danah Boyd explains that teens usually use Internet to connect with people they know, bu Chatroulette brings back the old randomness of the Internet when wandering anonymously in chat rooms was what kids did. She also adds that there are still a small percentage of folks out there looking for some amusement because they’re bored and they want to connect with randomness, folks who recognize the joy of meeting strangers in a safer space than most physical spaces where that’s possible. I realize that this creates the potential for seeing some pretty gross and/or problematic things and I certainly don’t want to dismiss that, but I’m pretty certain that teens are responding the same way that I’m responding – by clicking Next. Is that ideal? Probably not. For Yann Leroux, Chatroulette is the opposite of social networking: it is not at all building a social relationship, it is a social deconstruction. Indeed, even though people show their face, Chatroulette stays a very anonymous place. No doubt people like to scroll faces pressing f9. But Chatroulette also made me wonder how long is Internet going to stay in this moral panic state. Sarita Yardi explains that We’re still searching for the right balance between protecting our own privacy and being able to live out our social lives online without feeling that the rest of the world is out to get us. I feel like MMOG can be instrumental in setting up this balance.

But before talking about MMOG, it is worth looking at some recent uses of Chatroulette. Merton improvised piano pieces to the people he met on Chatroulette. The Merton viral video inspired other people such as Looking for Merton#1, or even Ben Folds who improvised on Chatroulette during a 2000-fan live improvisation concert. The Nurses even streamed their live concert on Chatroulette.

Video-chat in MMOG

Technically speaking, MMOG already feature voice-chat. It will not be long before video-chat becomes supported, or even the norm. A software could detect if a player is smiling at her/his webcam, and transmits this data to the game, making her/his avatar smile. Such software system could also transform "where players look in the screen" into "which direction the avatar is currently looking to". More realistic and more social. I am sure this is technically feasible and scalable: Chatroulette is a very simple Peer-to-Peer Flash website using RTMFP. AAA MMOG could include this same Peer-to-Peer system in their client code. It would be surprising that CCP developers could include an in-game browser to EVE Online, while peer-to-peer-based webcam discussions could not be implemented between players.

Not a significant source of chat, from Virtual Shackles.


Socially speaking, I tend to follow Ami Bruckman: either teens over time will learn to be more careful with their personal information or we as a culture will learn to be more tolerant of what people do in their personal lives, especially as youth. In any of those cases, I think the magic circle will prevent MMOG from having video-chat channels spoiled like Chatroulette by exhibitionists, drunks or voyeurs: people come to play. Obviously, MMOG also have their stories, but way less than Chatroulette. While one may wonder what the norm is on Chatroulette, playing or chatting is definitely the norm in MMOG, not exhibitionism. Several reasons:

  • Playing keeps one's hands busy (although some eat, but that is digressing)
  • In-game, there is nexting is impossible. A bothering avatar stays where it is. One can choose to ignore someone else's utterances, but /ignore does not kick a player out of one's field of vision.
  • Reporting is much more possible: in Chatroulette, exhibitionists go too fast for me to be able to report them. In MMOG, there is usually a minimum 5 to 10 seconds during which one can not disconnect one's avatar.
  • And it's too much hassle to go through an application process and eventually pay $15 per month simply to show one's anatomy to the world.

At the moment, MMOG players, and most people in our society, are not really ready to let their webcam show their emotions or reactions, even if it is through an avatar. However, video-chat in MMOG means a lot of interesting challenges. Technically, this means improving/implementing in-game character facial expression, realistic or not, sensitive webcams, filters, etc. As for game design: Which member of the group is this NPC looking to? What is this dumb NPC trying to tell me in looking at this particular equipment piece of mine? Which zone of the map is my partner pointing at?

20 March 2010

History of RO emulators

This post follows this one about private server emulators. To my mind, understanding the story behind RO emulators can help explain how some servers easily reach 140,000 accounts and 1000 PCU as of March 2010.

This cladogram took me roughly 20 hours. I relied on a very stuffed tree with no dates (made by Tsuyuki before 2008). Other sources are mentioned in the SVG cladogram here. A (google) translation of the Chinese website I gave for AEGIS can be found here. My cladogram ends in 2008 because nothing has changed since then, except maybe a recent ASB battle cry. Many ending dates could not be found, so I sometimes ended them arbitrarily.

I could not find when AEGIS had been stolen from cRO. Given that cRO opened in May 2003, and UniAEGIS and ASB, based on AEGIS, started in early 2003, there seems to be a time problem. Unless cRO was in beta before 2003.

I could not make any link between Athena and AEGIS. Both seems to come from Japanese developers/hackers, but I do not know if Athena was reverse-engineered from scratch (in the pure sense of an emulator) or based on AEGIS.

Cladogram made with gnuclad and converted from SVG to PNG on fileformat.

Edited March 22 to add Cronus, eAPP and other AEGIS leaks and ASB updates. Split of Weiss (delphi/pascal) and Athena (C).

17 March 2010

Private server emulators

Before anything, this post does not (and can not) provide enough sources. And considering the legal issues faced by private servers, many of the links included in this post may become broken at any time. However, I have had some experiences on RO private servers and I have looked at several other MMOG-emulator source codes. Although I believe that for some games, there are more people playing on private servers than on the official ones, private servers (hopefully?) do not receive a lot of coverage. In December 2009, the BBC wrote a somehow sensationalist though decently informed article in which they interviewed a few private server players and administrators as well as official MMOG companies.

General facts and numbers

Although projects such as bnetd or PvPGN are multiplayer gaming service emulators, they do not fit into the category of MMOG emulators mentioned in this post as private server emulators.

Emulators are simulations of the server side of an MMOG. Private servers launch these emulators to provide free versions of mostly any currently popular MMOG: Aion-emu, eAthena (RO), Arcemu (World of Warcraft), L2J (Lineage 2), Clone Wars (SWG) or EQ2emulator (Everquest 2). Some emulator projects such as Mangos try to teach about large-scale C++ projects and claim our software is not intended for running public servers, and we do not support that.

In fact, there might be private servers for both P2P and F2P MMOG (although I could not find any emulator (or private server) for Maple Story, Runes of Magic or any gpotato game for instance). It can seem obvious that some players go on private servers to play for free, but there might be other reasons such as particular custom game design choices making the game easier or with less grind.

I personally believe that private servers could be used efficiently to increase the game longevity at no cost for official MMOG companies. As Celia Pearce wrote in book 1 of Communities of Play, some players even instigated a network of player-run Uru servers to allow players to run the game after its initial closure. Such servers cost nothing, generate more UGC (from better quality) than simple players. This idea is actually close to the notion of abandonware, but with much more players. Playing an old famous game makes potentially players want to know recent games from this company. In an era when Intellectual Properties are golden (see the Final Fantasy, Call of Duty, Fifa, Warcraft, GTA and other Mario series), it may be wise to advertise the most recent sequel of the IP series through the series' former hits. Anyway, whether official MMOG companies want it or not, it is increasingly unlikely that any company, government, or nation can successfully inhibit the near-term and mid-term societal dispersion of FOSS or the FOSS movements (Walt Scacchi, 2007). Better use or influence it than endure it.

Players and administrators

One may wonder how much money do official MMOG companies such as Blizzard, Gravity or NCSoft loose. This lost is hard to estimate for several reasons. First, neither the number of private-servers nor their number of players are known. Until now, I have not heard of any population estimation. Second, it is not obvious that private-server players would pay anything to play on official servers. Moreover, the hardware and network infrastructures needed to host an illegal server can cost less than a hundred dollar per month for several hundred peak concurrent users. Although some servers rely on a few player donations, most of the time the administrators do not need to rely on a RMT system to keep their server afloat. Hence, most private server players are not likely to be sources of revenues if they were to play on official F2P MMOG servers.

Until now, most of the emulator projects I have seen are the results of a forking from an other open-source emulator project. Usually, there was only one main emulator project set up during the alpha or beta version of the MMOG development. The duration of an emulator project depends on the motivation of the open-source team. Update follow-ups, maintenance (quick and efficient fixing of the bugs reported) and technical support (tutorials, guides) mean a lot to an emulator community. But at the same time, they mean a lot more exposure to legal authorities, and official MMOG companies threats.

Emulators

To connect to a private server, most of the time, one has to use a slightly altered version of the official game client. The original client can be downloaded from official websites. When the original client is installed, a text file such as Realmlist.wtf for WoW or sclientinfo.xml for RO can be edited to make the game launcher executable connect to the private server. The whole process is really easy, and I do not understand yet why such files stay accessible, cleartext and human-readable at the root of the game folder.

The server-side is, however, fully developed and maintained in open-source projects. At the beginning, original MMOG servers are either reverse-engineered or stolen. That is why I find that depending on the age of the pirated MMOG, the emulator community relies on different pillars. Emulator projects need sneaky and relatively high-level hackers to start. Then more mainstream coders come along and contribute to the project code base. Official updates are reported on forums by people who play on official servers or directly from database websites. Support is given to novice server administrators, and a community can develop and share the products of its creativity (new items, new quests, etc.).

15 March 2010

[Conf] Applying product attachment theory in the practice of experience design

John Zimmerman gave a talk on March 12th about how product-attachment theory could be applied in design. In my comments [in brackets] I explain how all this could be applied to MMOG.

In a nutshell, attachment theory's main focus is on the bounds a child ties with his/her parents. Product-attachment theory describes how people learn to love certain possessions when they use them. For example, a Mum who read books to her child every night may want to keep the books even after the 30-year old child has left the house. This attachment takes too much time (decades) and marketers want to increase sales now, not in a far future. Hence three factors come into play: identification, attachment and influence. Stars can produce on plebes these three factors [example: George Clooney in Nespresso commercials]. But products can generate this effect by themselves. James in 1890 wrote that people are what they possess. Similarly, in order to be a mother, a woman must "have" a child. The diagram nearby is a summary of what Belk suggested in 1988 (p145): being is determined by having and doing.

Product attachment theory has two focuses: role enhancement and role transition. When a high school student goes to college, he/she will buy products to create his/her identity. This is role transition, while role enhancement would be: a mother may feel better if she buys more expensive things to her children. In our consumption society, the key idea is selling appropriate goods to people to help them build their identity. [These two focuses should be very important to RMT-based F2P MMOG marketers... if they can spot when such transitions happen. Here are a few examples of in-game transitions. When a player creates an avatar, the player may not directly spend a lot (of real money) to customize his/her avatar. However, as the avatar transitions to the virtual world, the player starts to see other avatars and wants to create his/her identity. At that moment, the player is very likely to want to buy more trendy clothes, more cool-looking equipment, a mount/vehicle or even a house. The first reaction of level-15 Human WoW avatars reaching Stormwind for the first time when they saw a paladin on his battle steed is very likely to be "OMFG I want to mount horses as well!". Second Life offers themed private islands for their residents. Undoubtedly, some residents feel like they have a social status to assume and buy a virtual house.]

Once one has become what he/she wanted to be, one does not want to be it anymore. [Here I somehow disagree: there must be a phase when one realizes and enjoys having reached one's goal and status.]

From Q&A: there are two main conflicting theories of aesthetics: novelty and familiarity. [this might explain Braid game design success: the very familiar 2-D platform side-scroller contains the novel idea of using the ability to go back in time to solve puzzles and progress.]

12 March 2010

[Literature] Fundamentals of Game Design, ch 2: Design components and processes

Pages 37 to 73. Thanks to Ernest Adams for his encouraging comment! The book I read comes from the first edition and until now, I have not found any typo: a nice piece of polishing... My comments stay in [brackets]. I sometimes use the acronym GD.

game design is not purely an art because it is not primarily a means of aesthetics expression. Nor is game design an act of pure engineering. Its is not bound by rigorous standards or formal methods.

Player-centric GD

Player-centric GD has two pillars: entertaining the player and stepping into the player's shoes. Entertaining is of higher priority than expressing the designer's creativity. In a player-centric approach, the designer must remember he/she is not the typical player. He/She has to ask himself/herself, for instance, "what if the player is female?" [or Russian? cf Modern Warfare 2 ...] Maintaining that you must love your game to build a good one is the opposite of player-centric. "The player is my opponent" is a vision of early arcade games where players were permanently put under pressure to put more coin to play. This is not player-centric as well. In fact, a good GD combines several characteristics.

CharacteristicDescriptionGame example
Market-driventargeting a specific player segment[Wii Fit]
Designer-drivenDesigner's vision onlyDaikatana
LicenseBased on a movie, book or existing Intellectual Property[NHL, Fifa]
Technology-drivenShow off a technological achievementStarfox
Art-drivenShow off artworkMyst

Components of GD

See figure nearby. Glossary:

Core mechanics
Implementable mathematical model of rules, goals and action impacts. All games stand between purely abstract (Pacman) and representational (Formula one racing games). The degree of realism depends on the game.
UI
Provides feedback, entertains and should be smooth to allow a direct mapping by the player between controls and actions. The UI contains the interaction model (the mapping between buttons and actions) and the perspective(s) (appropriate view of the game world).
Game structure
Set of gameplay modes + shell menus + links and transitions between them
Gameplay mode
Particular UI and/or gameplay for a particular game situation. Example: playing quaterback is different from playing receiver in Madden NFL Football, so each situation needs its own gameplay mode.
Shell menu
Located outside of the magic circle, do not affect the game world. Example: save/load, configurations

Design processes

Some more vocabulary:

Concept
Defines what will not change: concept, audience, genre [this phase is common with other traditional software product]
Elaboration
Design details, decision refinements. One prototype per iteration. When all the designers in the team agree on the fundamentals, they share the work and part. Their tasks are: defining the primary gameplay mode, designing the protagonist, the game world, the core mechanics, aditional gameplay modes, level designing and the story.
Tuning
Polishing is substractive, not additive. Most of the time, the duration of this phase depends on how much time is left. This phase makes the difference between a good and an excellent game.

Documents

Even if no one reads these documents, an idea written down is a decision made. Not writing often means overlooking. [A game designer from Blizzard disagreed: "you do not know what is fun on the paper"]

Name Description Format
High concept document Sales tool, short, key ideas, sent to publishers .doc
Game treatment document Sales tool, a thicker volume than the high concept, a "in case you want to know about our game more deeply"
Character design document Specific to one character of the game, contains concept arts, character's history, likes, strenghts, etc. .html
World design document Art and audio to give the mood of the world, can contain a map, given to level designers
Flowboard Mix between flow chart and storyboard, one sheet of paper = one gameplay mode. Each sheet shows the actions available to the player. Arrows link modes to each other. Can be done with Visio [there are open-source alternatives].
Story and level progression document How level follows each other and where cutscenes or dialogs should be included. Useless if there are no levels or progress in the game.
Game script document It used to be the Bible, containing the whole project. Nowadays (projects are too big) it contains only rules and core mechanics. Paper-play testing the game should be technically possible with what is written in it. This includes also the target machine and the system requirements.

Test your skills

  1. Draw a flow chart of the game you want
  2. Which mood could Impressionism, Symbolism, Art Nouveau or Art Déco provide to your game?

11 March 2010

[Literature] Communities of Play, book 1: Play, community and emergent cultures

Celia Pearce and Artemesia. 2009. Communities of Play: Emergent Cultures in Multiplayer Games and Virtual Worlds. The MIT Press.



Here are my notes on the first book of Communities of Play by Celia Pearce. I extensively use several acronyms: VW, MMOG and UGC. My comments stay in [brackets].

Chapter 1: Communities of play and the global playground

Gemeinshaft ("communities" in German) are association of individuals with a collective will that is enacted through individual effort. Communities of practice engage in a process of collective learning and maintain a common identity defined by a shared domain of interest or activity.

Except a few exceptions such has Solitaire, games have always been multiplayer. However, the advent of singe-player genres as the central paradigm for games is an historical aberration of digital technology. Examples of ancient games mentioned are senet, ur and mancala. [I do not remember if I read it in the book or if I thought about it while reading, but RP games contain a huge part of UGC. Players direct the story, influence each other, etc. Ideally, the GM only has to control the flow of the story.]

Tolkien (1955) + Conan (1960) + PC (1970's) = MUD in US college male heads (1980's)

Corporations do not say why a game failed, whether the game was launched or not. [Although there are some post-mortems going around about video games, I admit I have not seen many post-mortems about MMOG. But I am not sure that everything is always said in post-mortems...] Moreover, no research on players of a particular MMOG is possible when the players have left the MMOG in question. So it is really difficult to know why a MMOG really failed. The Uru Diaspora developed in this book is one of the rare case where such kind of players have been studied. After the down of the MMOG Uru, many players fled to other MMOG, but some instigated a network of player-run Uru servers to allow players to run the game after its initial closure.

Chapter 2: VW, play ecosystems and the ludisphere

Principle characteristics of VW
spatial
contiguous (mappable)
explorable
persistent
embodied persistent identities
inhabitable and participatory
consequential participation ("your presence is a part of the world")
populous (social)
worldness (coherence/consistency helping the suspension of disbelief)

The core conventions of feature films provide a consistent set of guidelines that have changed little since they were initially established in the first half of the 20th century. [Does this means once we have found our Citizen Kane game, game design will not change its basis anymore? Should we look for a Citizen Kane or for as many Citizen Kane as possible?]

Definition of play from Caillois in 1961
not obligatoryin a circumscribed time and space no predetermined outcomenot productive [what about UGC??] governed by rulesfictive


Virtual placeDescription[Example]
Ludic worldformal structure of objectives and constraintsMMOG with leveling or PvP
Paidaic worldoffer a range of activities or choices to socializeUGC, VW


World rules
communication protocolsgroup formation protocolseconomics land or home ownershipavatar creation and progressiongeography, terrain and transportation

Emergence is UGC [or maybe is it the other way round?]. SL has a system of economic and social status based on technical proficiency: the scripters who can sell their pieces make money and are respected. On the other hand, subverting game affordances can be source of pride, respect and social status. [The less possible subversions, the more controlled the sources of social recognition for players?]

Chapter 3: Emergence in cultures, games and VW

Properties of VW/MMOG that lend themselves to emergence
close (ie have boundaries, making players bring content from outside)
consistent rules (players can get consistent feedback)
open-ended (no final state)
persistent (enable cumulative actions)
(a)synchronous inhabitation (enable feedback)
long-term engagement
social phenomena are accelerated
the more people, the more emergence
the more diverse the people, the more emergence

Urbanism (virtual or real) fosters (positive or negative) emergence of behavior. According to De Landa, emergence is defined as the unplanned result of human agency. Emergence is synergetic, hence a top-down approach to cultures or society can not reveal emergent behaviors [cf Bernard Weber's 1+1=3]. Internet is an emergence catalyst. Examples of emergence are

  • Chinese gold farmers shunned on WoW,
  • SL IG banking agencies which failed and lost a lot of real money ($750,000)
  • WoW warriors IG protest caused a server overload

Corporations will tolerate a certain measure of emergent behavior as long as it does not threaten their bottom line (ie profit and legal issues) Hence grieving is tolerated, but not mass protest.

Emergent systems are bottom-up in the way that they are adaptive systems producing behaviors one scale above them. Example: ants (bottom) create colonies (up). For Bar Yam, emergence is a collective behavior (I do collectively what I would not do myself), an environmental behavior (I do this because I am in a specific environment) and the act or process of becoming an emergent system. As for the Uru group studied in the next books, it satisfies emergence criteria and is imminently studyable because:

  • some behaviors were unexpected from game designers
  • 18-month time frame study
  • 160-450 players, manageable size for a qualitative study
  • recognizable patterns across sampling of participants
  • the group moved from one environment to another and adapted its behavior
  • individuals, groups and environment can be observed concurrently

Studying communities of play raises two main challenges. First, the researcher has to be able to analyze a phenomenon at different scales simultaneously. Second, relationships between play communities and the play ecosystem can only be understood as a lived practice. Which methodology could best fit the study of the Uru Diaspora?

Chapter 4: Reading, writing and playing cultures

The culture of VW/MMOG is a social construction of shared meanings between designers and players. According to De Certeau, consumption in industrial society is an act of production, perhaps even an art form. Examples are given by Willis: motorcycle gangs customize their bikes. For VW and MMOG, examples are avatar customization or SL IG content buyers. Allowing creative input from players is an inevitable outcome of emergent behavior.

Because most MMOG and VW are played on computers (as opposed to game consoles) they vie for attention with other PC functions such as email, forums, IM, VoIP and productivity and creativity software as well as other games.

Ethnography, social anthropology and ground theory provide a post-facto meaning to data that could have seemed meaningless during its collection.Social network analysis often lacks the sense of context that is vital to understanding games from a cultural perspective. The methodology followed in the study of the Uru Diaspora is called mutli-sited ethnography. It was first mentioned by Marcus in 1995. [remark about ethnography in VW: at the moment, ethnographers do not join hardcore PvP/PvE guilds or guilds which average age is under 16. A self-selection bias make the researchers choose the most culturally interesting: WoW LGBT guilds or active quasi-permanent guilds. Quantitative research takes those banal guilds into account, but to the same extent as extraordinary guilds.]




Read the summary about Book 2: the Uru Diaspora.

10 March 2010

Keynotes about the future of video games


In the last six months, I have noticed two particular buzz surrounding two keynotes given about the future of video games in prestigious video game industry conferences. One was Chris Hecker's talk at MIGS 2009 (buzz), and the other Jesse Shell's talk at DICE 2010 (buzz). With GDC 2010 approaching, I am confident another buzz about the future of video games may appear soon.

Key nodes

Over-dramatizing a talk about the future is really tempting (see Shell's talk). Moreover, the content the speaker provides is not always totally original and unique. For instance, Chris Hecker's questions were already foreseen by Jenkins two years before when the later commented about the future of video games. Steve Gaynor, a year before Hecker, already compared video games to comics and movies. This topic was so serious that Gaynor received more than 60 interesting comments, and edited his post three times to add precisions about what he exactly meant. How is it possible that discussions about the future of the video game industry did not spread one or two years ago as they did only very recently?

Too early: It might be the case that people in the industry were not ready. November 2009 figured stats of Modern Warfare 2 launch rivaling other forms of entertainment in terms of revenue and units sold. Little by little, in the very recent years the industry has been realizing its size. And power.
Too far away: Jenkins is academic, writes a lot and I doubt many people in the industry care spending too much time seizing all possible nuances from Jenkins' articles. Gaynor, on the other hand, is a young game designer whose career started in 2007. This might explain why his blog did not cause in 2008 so much buzz as Hecker's talk did a year later.

Hence the (magnificently-found) section title: keynote speakers are key nodes in the video game industry network. They are the ones who spread information over the industry network. Chris Hecker might have been inspired by Gaynor's article and comments. So much the better: this helped spread awareness. But one may ask how it is that the industry can not think about its future by itself.

Useful

The keynotes given at frequented video game industry conferences such as GDC about the future of games are useful for several reasons:

  • Not everyone in the industry is aware of what the speakers mention. For instance, I doubt many game developers were realizing the impact games could have in our everyday lives. With Shell's talk, and the buzz following it, the gap is filled.
  • Not everyone in the industry cares about the future. When you have your nose to the grindstone, it is hard to project your whole industry sector ten or twenty years in the future. In his talk, Shell noticed that ten years ago, very few people had seen Facebook games coming. Mentioning unforeseen successes pushes the video game industry to think about its future.
  • Not everyone (in general) realizes obvious facts until these facts are mentioned. As a parabole, a spell-checker detects many typos, but the most sneaky ones are those which are an actually existing word. Proofreading is the only way to detect the typo in "... pale and female ...". So if you are in the video game industry and have always thought that games are like comics and movies at the same time, Hecker's proofreading talk should have made you re-evaluate your judgment.

In the end, what matters is whether the questions raised during keynotes make some wheels turning. This is a different ball game.