Showing posts with label social networks. Show all posts
Showing posts with label social networks. Show all posts

07 April 2012

MapReduce for MMOs

MapReduce is a powerful tool to parallelize batches of computations. MMOs may sometimes have to run batches, but from what local game companies tell me, nobody in the game industry is currently using MapReduce. I guess, this is mostly due to studios not knowing what to do with it. Here are some examples.

Business intelligence

Basic metrics such as weekly play time or stop rate can give a rough perspective of the retention of an MMO. These metrics can be estimated with a couple SQL queries on dumps of the production database(s). It starts taking more time and effort to distinguish accross server shard, faction, race, or class. Still, a SQL script running for a few hours can do the job. Fancier analyses such as machine learning or social network graphs explorations take even more time and effort. MapReduce can be used to tune machine learning algorithms through Mahout, and even to process graphs (Google's Pregel also seems interesting for parallel processing of graphs: the Pregel version of PageRank takes 15 lines of code).

Detecting bots, hacks, or gold farmers is not as straightforward, but I think it is doable. First, the typical deviant behaviors have to be determined and made explicit by humans. For instance, speed-hackers send too many messages per second to the server, while gold farmers interact with less players, but more intensely, than normal players. Then, detecting deviant behaviors can be a machine learning classification or a graph parsing problem. In both cases, MapReduce can help.

Game-specific

Matchmaking and ladder: Some pre-calculations or updates to parameters of the ladder and match-making algorithms could be done offline by a small MapReduce cluster. A player's skill is unlikely to change much in 12 hours, so a cron task could run the job twice a day. According to Josh Menke from Blizzard, matchmaking involves gradient descent or Gaussian Density Filtering. Not sure whether Mahout supports GDF, but gradient descent is supported.

Tuning and balancing can take days for system designers. MapReduce could do that automatically: each mapper job is given a particular set of system parameters: player 1 has skill A (cost x SP and inflicts y damage) and skill B (cost z SP and heals w HP), player 2 has skill C (...) and skill D (...). Mappers run a few hundred Monte-Carlo simulations of a player 1 versus player 2 match with a fixed set of parameters (player1:A,B; skillA:x,y; skillB:z,w; ...). When done, mappers pass average statistics (win/loss ratio, average amount of gold at the end of the match, ...) of the 100 matches to reducers who sort them. The interesting configurations for balance are those with a win/loss ratio close to 50%. Naturally, this brute-force way of balancing assumes a proficient AI, and designers will still have to tweak the configurations returned by MapReduce so that they feel fun.

Practical concerns

Engineering detail: MMOs have hundreds of shards, but really only one MapReduce cluster should be needed. Each shard could send its jobs to the MapReduce cluster when it needs them done, and wait asynchronously for the MapReduce answer on a particular port. If the MapReduce job uses data from the production database, producing a daily dump may induce a temporary extra load on the shard's database machines, but this should be fine during empty hours.

MapReduce can be a double-edged sword if overused. Exploring the parameter space of learning algorithms too aggressively may lead to less accurate models.


Edit: Some people have been using MapReduce for analytics: mogade's platform and keighl have been using it through mongodb, but it's more of an engineering constraint (scatter-gather queries in a nosql DB to build a ladder board) than an analytics or machine-learning endeavor.

30 June 2011

FDG 2011 comments

A few comments from FDG 2011. My points are [inside brackets], the rest comes from their respective authors.

In the last Madden NFL game, people tended to play the same kinds of games and rarely changed to different types/modes.

[The Player Experience workshop had roughly 5/15 papers accepted. 3/5 accepted paper authors were not here. What's the goal of a workshop then?]

Secondary game objectives should support the primary objectives, otherwise they distract, frustrate or make the player lose. Mario side-scrollers coins sometimes make the player go off-path, but the player always has to go from left to right. Player should be told when an objective is secondary.

Minimalist game design (from one of the designers of Osmos): few rules, few mechanics, few choices, deep (combinatorial) complexity (eg NP complete), simple controls, abstract, tightly-coupled systems.

CRPG guidelines: balance should be based on player expertise or avatar skills, not on character level or XP. Avatar background should affect the game. If the avatar is supposed to have lived in the game world for years, then the game should not remind the player of the avatar background, and NPC should not meet the avatar for the first time. [Possible solution: player's avatar could start as a toddler and ages as the player spends more time IG]

Weak ties make social storytelling. [Add to this that being socially active means connecting your weak ties together (you play the go-between). Therefore, in a distant future, there should not be any social storytelling anymore because everybody will be friend (ie strong tie) with everybody. In fact, Dunbar's number says you can't be friend with more than 120 people (the other people are just contacts, not actual friends). Hence, people will keep trying to (re)connect their weak ties together! Cf also Harris and Nardi's paper on collaborative play in WoW]

Mateas: computational media is a research field in which computer science is seen as a tool for expression.

If you want a domain to progress, and the industry does not care about that domain to progress, then you have to go try academia. [Maybe a good approach in many domains, but it does not work in MMOG because building one requires hundreds of man-years]

Frustration arises when player fails to overcome a challenge. Frustration makes players impatient.

12 April 2010

[Literature] The field site as a network

In The field site as a network: A strategy for locating ethnographic research from 2009, Burell explores a variety of strategies devised by researchers to map social research onto spatial terrain. She relies on her work in Ghana to suggest considering the field as a network rather than a traditional physical place, particularly for Internet-related studies.

Traditional anthropology in remote villages assumed that external influences were minor to the field site, and the ethnographer could discover the terrain as the study went. In contemporary ethnography, the vision of the place in which the study takes place influences the results of the study. Hence an ethnographer should ponder wisely which stance to take on the field. In doing so, the researcher simultaneously acknowledges the limitations of the study and builds the field site.

Burell mentions Marcus' paper when she explains that he (and other anthropologists) shifted from a notion of culture as essentially stationary to culture as constituted by intersection and flow. In the light of his paper, we know that Marcus mentioned the follow the people/objects/metaphor. She singles out Marcus' paper for being the only one in her survey to explain how fieldwork may be located in ethnographic studies.

Some ethnographers - such as Mitchell - argue that the Internet is not a physical place at all: profoundly antispatial... you can not say where it is … you can find things in it without knowing where they are. However, other researchers, particularly those conducting virtual ethnography, showed that some individuals experienced the Internet as profoundly spatial and social. T.L. Taylor underlined the duality of Internet users: a physical body facing a computer and an online avatar in a virtual world. Another disagreement among the ethnography community came with the question of the sharp division between offline and online spaces. Some argued the technologically-mediated rupture did not allow for connections between real- and virtual-lives. Others such as Miller and Slater, based on their Trinidad field study in 2003, put forward that Internet is continuous to other social spaces. Real configurations can influence virtual ones. The network framework proposed by Burell in her article adopts this view as it tries to escape strong offline-online divisions.

To introduce her network framework, Burell raises what she calls a logistics issue: if interactions and events relevant to the field study happen everywhere in the system, how can the researcher be sure to know anything? How and when does the ethnographer know he/she has enough data to know what is actually happening on the field? I found Marcus argued that ethnographers could validly dig only parts of the whole system provided they show which stance they take. However, he did not really explain why. Burell explains this limitation is a logistical accommodation. Indeed, Internet is too wide to be studied as a whole. Moreover, she relies on her 8-month Internet-use field study in Ghana to illustrate her point more precisely.

Ghana marketers include international into their business names to make them sound more prestigious, and at the same time pretend products are local while they come from abroad. Local and global are not meaningful or discernable as distinct categories. Moreover, she found quickly that cybercafés customers came irregularly, from many different places and for different reasons, making it difficult for her to find any satisfying result. Her dynamic network framework helped her solve this issue: the continuity (through connections) of networks let her link people, places, objects and so on.

The framework attempts to render concrete some of Marcus' suggestions for multi-sited ethnography. It describes six steps to build a proper field site.

  1. Following a trail (through what she calls an entry point) brings a more meaningful social-spatial mapping than choosing people randomly for instance. Example: A is interviewed, B comes by car to pick A up. The researcher asking if B can be interviewed as well is what I call following a trail, the entry point being A.
  2. The trails can be of various kinds: telecommunication, transportation, road and social networks are examples given by Burell.
  3. Studying a current site does not mean not being aware of other places. For instance, in the Ghanaian Internet cafés she studied, she realized that customers communicated to people from many other countries. She saw the café as a point of intersection and in doing so, she avoided having to spend time to know what happens in those other countries.
  4. The multi-sited ethnographer should react to what is said in interviews before the end of the field study. In doing so, the researcher can establish early connections between places, people or objects mentioned during those interviews and eventually investigate those while he/she is on the field.
  5. When people do not know some places, they imagine them spatially: the Internet or foreign countries for example. The real-life Ghanaian popular imagination influences how they perceive the virtual spaces. Interviews can reveal such popular perceptions.
  6. One simple way to determine when to stop is when time runs out. In fact, there comes a time in the fieldwork when nothing new emerges. Meaning saturation … does not rely on spatial boundaries to define the ending point of research.

07 January 2010

[Literature] Strangers and Friends: Collaborative Play in WoW

Bonnie Nardi and Justin Harris, 2006. Qualitative work (semi-structured interviews and field observations). play is characterized by a multiplicity of collaborations. Indeed, the classes asymmetrical strengths and weaknesses encourage collaboration during battle as well as in brief encounters.

The fun of collaborating with strangers

Buffs are the simplest way of engagement between players. Buffs happen in a cohesive group but also from a player to another he/she does not even know. In the latter case, authors explain that on a volontary basis, players commit small acts of kindness to maintain a mutually beneficial atmosphere. On the other hand, ganking consists of players waiting for killing other players weakened by fights with monsters. Not all interactions are beneficial for everyone.

The authors explain that with the freer atmosphere of online communities, players do IG things they would never do IRL, such as dancing naked in a fountain, following a conga-line or flirt.

Guilds, knots and friends - social structures in WoW

The authors argue that having different possible ways to collaborate in the game provides a versatile, robust environnement for play and learning. Indeed, playing in a guild requires much more involvement than taking part in a "pick-up" battleground party. To my mind, the underlying game design suggestion is: include as many and various ways for players to interact with one another as possible.

Learning

Moreover, the article mentions 2 key game activities: having fun and learning the game. It depends on what is meant by "fun", but I am not sure if these are the only interesting activities possible in the game. Anyway, Nardi explains that the social structures in WoW provide an environement for learning. The zone of proximal development (see figure nearby) introduced by Vygotsky consists of the knowledge or skills a child can learn at the moment, that is to say the difference between what the learner can perform alone and perform helped by a teacher (ie "collective performance"). Ang and Zaphiris in Social learning in MMOG: an activity theoretical perspective have argued that WoW players learn new skills or information if this knowledge belongs to their ZPD.

As taught in HCI classes, the interviewed players reported they learned mostly through trial and error: people eventually read the manual after they have tried (and failed). In collaborative activities, players acquire new information not only by themselves, but also by other players. Unless reading forums or databases, a Mage player can not know that a Paladin is particularly efficient against undead monsters until he/she has played with a Paladin. In the end, players can choose among various learning resources (asking other players, consulting websites or trying solo) the one(s) that best suit(s) them. IG, both the game design and the (relatively) friendly social environnement help players learn. But outside of the game, a new player may read websites or forums to increase his/her knowledge, while an expert player will find the appropriate add-on on curse.com. A "social" player may post his/her questions on forums while a solo player may read but not particularly post on forums and if he/she can not find the answer, he/she may try by himself/herself until he/she finds what he/she wants. Giving so many kinds of players the information they want the way they want may be one of the reasons why WoW has become so popular.

Friends

Weak-tie
According to Rapoport, if B and C are linked to A (cf figure nearby), there is a high probability that B and C are linked together. A weak tie is the link between B and C. A weak tie is the social network link between two acquaintances, whereas the link between two close friends or members of the same family is a strong tie. According to Granovetter, only a weak tie can connect two strong-tied social networks. I am taking an exampleFor instance, the Jones have seen on TV a commercial for a detergent. Their neighbors, the Smiths have no TV and therefore are supposedly not reachable by the detergent marketing. However, word-of-mouth marketing relies on this weak tie (neighborhood) between the Jones and the Smith, to make the no-TV family hear about the detergent.

Nardi et al. suggest that "friends" in WoW are not weak ties because in the game, friends do not help connecting strong social networks together and friendship remains a one-to-one relation. In WoW, the friends of a player appear in the friends list. The player can not organize conversations between a group of friends without being in the same party. So, except for guilds of friends, the usual interaction between friends is whispering, a typical one-to-one relation. Maybe players want to have this one-to-one exclusive chanel functionality with their actual friends, and use a more collective broadcast-like chanel for their guildmates who might not all be friends. In the end, I wonder if an "interconnected friends" functionality in the friends list in WoW could not make the one-to-one friend relations evolve into solid clusters of friends.

Guilds

This paper gives a very interesting (and inspirational) definition of guilds: named groups of players that socialize and play together. This definition seems to put in parallel play and socialize. However, I think the reason why people socialize in a guild is because they have chosen to play together. Were they no guild activities, there would not be any socialization. In other words, socialization in WoW is a consequence of the game design.

Illustrating their argument with the small tightknit European villages of the 19th century where everyone knew one another and everyone shared the same history and tradition, the authors explain that guilds look like Gemeinschaft communities. However, guilds are not as isolated as 19th century villages: their members can easily group with strangers and find new people to talk to. While playing in a guild sometimes require an overhead of collaborating, playing solo may look like a break from the guild: assembling 25 players for a raid means waiting for the latecomers and forbearing the clumsy players, but exploring new places and accomplishing new quests alone or with players met on the way has a taste of freedom. PvP is another way to play solo.

Knots

According to the authors, knots are unique groups that form to complete a task of realtively short duration, like an airline crew or international research workshops. The concept of knots has been first described by Engeström et al.. Examples of knots in WoW are "pick-up" teams, trade partners, duelists or strangers dancing together.

To my mind, knots are the transitional phase between perfect strangers and in-game acquaintances and friends (see table below). A player who feels he/she truly belongs to a human-size community such as a guild (but not such as a 11-million-player game community) has a reason to stay in the game. I think game designers know very well how playing is not exactly what keeps players in a MMOG. As an example, between the solo-player and the guild master, who do you think is going to stay in the game longer? Hence a good MMOG game design should encourage players to participate in knot-like situations so that they later can get involved in guilds.

strangers -> knots -> acquaintances -> friends
solo players, auction house interactions parties, raids, duels, trades, global chanels of discussion guild membership, social events, private chanels of discussion guild creation/management, chitchat, oral chanels of discussion

A very interesting idea given by the authors is to tailor MMOG to fit elderly people's interests. Through knots of such an MMOG, elderly people could meet new players with whom they could share topics of mutual interest and participate in activities that provide mental stimulation. Hospitalized people could also benefit from MMOG knots. I recently read about the Compuserve story of Joan and Alex on Yann Leroux's blog: in the 1980's Joan has had a severe car accident leaving her disfigured and in a rolling chair. She decides to participate in the Compuserve forums and shortly becomes a model for her pugnacity. However, behind Joan was actually Alex, a prominent Jewish New York psychiatrist in his early fifties according to meatballwiki.org. This story makes me think that MMOG for specific "weak" populations (elderly fighting dementia or hospitalized children) can lead to many identity deception cases, and maybe cause particularly big trouble among these "weak" populations.

Playing WoW: escaping or increasing offline relations

The authors argue that sometimes players enjoy the virtual world because they want to escape the real one. A player acknowledges that playing WoW has made [him] less social in real life. Another explains that she uses the game as a break from real life: Her in-game friends were refreshingly casual and she sometimes likes to go and play alone.

On the other hand, the authors suggest that sometimes, playing WoW increases offline relations. They give examples of people of the same family playing together. One mother was thrilled to play with her son who lives in another state. For another mother, playing WoW with her children was just another shared activity. A third mother uses WoW to teach her children typing and mathematics. A brother explained that playing WoW with his much older brother made them share a common discussion topic.

The very last sentence of the paper suggests that WoW joins a long tradition of card and board games in which family and friends of different ages and genders may play together. Is WoW the new Monopoly? Ironically, according to an interview she gave to the Department of Informatics of UCI, Monopoly is the last game Nardi played before trying WoW.