migs 2012 - clashmobs

52
Infinity Blade 2 ClashMob: Hacking the Social Graph Joe Graf MIGS November 14, 2012

Upload: joegraf

Post on 25-Jun-2015

575 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MIGS 2012 - ClashMobs

Infinity Blade 2 ClashMob: Hacking the Social Graph

Joe Graf

MIGSNovember 14, 2012

Page 2: MIGS 2012 - ClashMobs

About This Talk

• Introduction

• ClashMob social impact

• How ClashMob works

Page 3: MIGS 2012 - ClashMobs

About Me

• Worked at Epic Games over 9 years

• Primarily focused on online features for our games and engine

• Sr. Online Architect at Epic

Page 4: MIGS 2012 - ClashMobs
Page 5: MIGS 2012 - ClashMobs

About Infinity Blade 2

• Franchise introduced in December 2010• Franchise has grossed > $30 million

• Infinity Blade 2– 15 Perfect Scores– More than 20 Game of the Year Awards

• “Simply put, you need this game” --G4TV.com• “An iOS Masterpiece” --Touch Arcade

Page 6: MIGS 2012 - ClashMobs

About ClashMob

• Large scale challenge requiring thousands to complete

• Everyone that participates receives the reward

• Bonuses given for social elements– Friends that play the game too– “Like”-ing a ClashMob post on the Infinity Blade page– Retweeting a ClashMob tweet

• In Infinity Blade 2, comprised of mini-games

Page 7: MIGS 2012 - ClashMobs

Goals for ClashMob

• Increase our player retention– Give them a reason to come back again and again

• Increase reach, awareness, and virality

• Use social interactions to participate– Retweeting a ClashMob tweet– “Like”-ing the ClashMob post on the brand page– Recording your participation as a comment

Page 8: MIGS 2012 - ClashMobs

ClashMob Social Impact

• Measuring success– How many people used the feature?– How many used the social aspects?– Did the social interactions help?

Page 9: MIGS 2012 - ClashMobs

Infinity Blade and Infinity Blade 2 DAULa

unch

1 M

onth

2 M

onth

s

3 M

onth

s

4 M

onth

s

5 M

onth

s

6 M

onth

s

IB2 DAUPolynomial (IB2 DAU)IB1 DAUPolynomial (IB1 DAU)

ClashMob launches

Page 10: MIGS 2012 - ClashMobs

ClashMob Social Interactions

Like Comment Retweet0%

2%

4%

6%

8%

10%

12%

14%

Page 11: MIGS 2012 - ClashMobs

Facebook Edge Rank

• Determines whether a post appears in a user’s feed– Only 16% brand page posts are actually seen

• Based upon 3 criteria– Affinity score: how interactive the fan has been with past

content– Weight: based upon the type of interaction

• share > comment > like

– Time decay: how long ago the post occurred

• ClashMob interactions increase edge rank and therefor increase reach

Page 12: MIGS 2012 - ClashMobs

Facebook Engagement Index (FEI)

• Uses the “talking about” counts as a percentage of total “likes” for the page

• Measures how “engaged” your customers are with your brand on Facebook

• Engagement increases the number of impressions

Page 13: MIGS 2012 - ClashMobs

ClashMob Effect on FEI

5/7/

12

5/9/

12

5/11

/12

5/13

/12

5/15

/12

5/17

/12

5/19

/12

5/21

/12

5/23

/12

5/25

/12

5/27

/12

5/29

/12

5/31

/12

6/2/

12

6/4/

120.00%

10.00%

20.00%

30.00%

40.00%

50.00%

60.00%

Daily FEIWeekly FEI28 Day FEI

Page 14: MIGS 2012 - ClashMobs

7 Day FEI on June 7, 2012

Infinity Blade

Halo Call of Duty

Angry Birds

Apple Microsoft Google Jaguar0.00%

5.00%

10.00%

15.00%

20.00%

25.00%

30.00%

35.00%

Infinity BladeHaloCall of DutyAngry BirdsAppleMicrosoftGoogleJaguar

Page 15: MIGS 2012 - ClashMobs

Brand Page Reach – Pre ClashMob

Ad campaign

ClashMob launches

Page 16: MIGS 2012 - ClashMobs

Brand Page Reach – Post ClashMob

Page 17: MIGS 2012 - ClashMobs

Impressions for Non-App Users

Page 18: MIGS 2012 - ClashMobs

ClashMob Affect on Twitter

Page 19: MIGS 2012 - ClashMobs

Klout’s Analysis of High Klout Scores

Page 20: MIGS 2012 - ClashMobs

ClashMob Communication Paths

Google App Engine

Google App Engine

HTTPS

Page 21: MIGS 2012 - ClashMobs

ClashMob Communication Paths

Google App Engine

Google App Engine

Page 22: MIGS 2012 - ClashMobs

Server to Facebook Integration

Page 23: MIGS 2012 - ClashMobs

Brand Page Post Setup

1. Create a Facebook App that does the posting2. Create a brand page for your product3. Login as an administrator of the brand page4. Grant the app permission to post as you

Example response

https://www.facebook.com/dialog/oauth?client_id=<app id>&scope=publish_stream,offline_access,read_stream,manage_pages&response_type=token

https://www.facebook.com/#access_token=AAABmbm...MUZD&expires_in=0

Page 24: MIGS 2012 - ClashMobs

Facebook Brand Page Post

1. Query for accounts using our stored access token to get the access token for the page

2. Post to brand page using returned access token

3. Periodically, read likes and comment counts to update global participation state

Page 25: MIGS 2012 - ClashMobs

Facebook Brand Page Post1. Query accounts

Example JSON results

{ "data": [ { "name": "Infinity Blade", "access_token": " redacted ", "category": "App page", "id": "163584600328189", "perms": [ "ADMINISTER", … "BASIC_ADMIN" ] }, { "name": "Infinity Blade II", "access_token": " redacted ", "category": "Application", "id": "300673636660678" } ], }

https://graph.facebook.com/me/accounts?access_token=<stored token>

Page 26: MIGS 2012 - ClashMobs

Facebook Brand Page Post

2. Post to brand page

Example JSON results

https://graph.facebook.com/<page id>/feed?method=post&access_token=<page token>&message=<message text>

{ "id": "163584600328189_462261520460494" }

Page 27: MIGS 2012 - ClashMobs

Facebook Brand Page Post

3. Monitor post activity

Example JSON results{ "id": "163584600328189_462261520460494", "message": "ClashMob: Destroy 27K Plated Sorok to win 10,000 Gold! Like this post to kill an extra Sorok!", "type": "status", "created_time": "2012-07-17T20:00:15+0000", "likes": { "data": [ { "name": "Joe Graf", "id": "635667972" }, { "name": "Chris Mielke", "id": "100000378321704" } ], "count": 5344 }, "comments": { "count": 3600 }}

https://graph.facebook.com/163584600328189_462261520460494

Page 28: MIGS 2012 - ClashMobs

Server to Twitter Integration

Page 29: MIGS 2012 - ClashMobs

Twitter Integration Setup

1. Sign into the account that will send Tweets

2. Create an application to send Tweets

3. Set the app permissions to read and write

4. Create an access token for the app

Page 30: MIGS 2012 - ClashMobs

Twitter Integration Setup

Page 31: MIGS 2012 - ClashMobs

Server to Twitter Integration

1. Tweet ClashMob information as the account owner

2. Periodically, read the Tweet to get retweet counts

Page 32: MIGS 2012 - ClashMobs

ClashMob Server Twitter Integration

1. Post tweet to account feed

Example JSON results

https://api.twitter.com/1/statuses/update.json?include_entities=true&status=<OAuth encoded tweet>

{ "id": 203261300, "name": "Infinity Blade", "followers_count": 31248, "created_at": "Fri Oct 15 22:05:09 +0000 2010", "verified": true, "statuses_count": 1054, "lang": "en", "status": { "created_at": "Wed Jul 18 16:00:50 +0000 2012", "id": 225621159272656900, "text": "ClashMob: Deal as much ...! Retweet to do 2,500 DAMAGE now! #infinityblade", "retweet_count": 953, } }

Page 33: MIGS 2012 - ClashMobs

ClashMob Server Twitter Integration

2. Read a ClashMob tweet for retweet counts

Example JSON results

https://api.twitter.com/1/statuses/show.json?id=223172555035508740

{ "created_at": "Wed Jul 11 21:50:58 +0000 2012", "id": 223172555035508740, "text": "ClashMob: Combine gems in the Gem Forge to create powerful, rare gems! …#infinityblade", "source": "<a href="http://infinitybladegame.com/" rel="nofollow">Infinity Blade II</a>", "user": { "id": 203261300, "id_str": "203261300", "name": "Infinity Blade", "screen_name": "InfinityBlade", "followers_count": 31248, "listed_count": 463, "created_at": "Fri Oct 15 22:05:09 +0000 2010", "verified": true, "lang": "en", }, "retweet_count": 984 }

Page 34: MIGS 2012 - ClashMobs

ClashMob Communication Paths

Google App Engine

Google App Engine

Page 35: MIGS 2012 - ClashMobs

ClashMob Step by Step

Google App Engine

Google App Engine

Get ClashMob List

Return visible events

Page 36: MIGS 2012 - ClashMobs

ClashMob Step by Step

Page 37: MIGS 2012 - ClashMobs

ClashMob Step by Step

Google App Engine

Google App Engine

Get ClashMob List

Return visible events

Enroll in ClashMob

Push Notification of Start

Page 38: MIGS 2012 - ClashMobs

ClashMob Step by Step

Page 39: MIGS 2012 - ClashMobs

ClashMob Step by Step

Google App Engine

Google App Engine

Get ClashMob List

Return visible events

Enroll in ClashMob

Push Notification of Start

Send Player Contribution

Return Global Progress

Push Notification of Completion

Page 40: MIGS 2012 - ClashMobs

ClashMob Step by Step

Page 41: MIGS 2012 - ClashMobs

ClashMob Step by Step

Google App Engine

Google App Engine

Get ClashMob List

Return visible events

Enroll in ClashMob

Push Notification of Start

Send Player Contribution

Return Global Progress

Push Notification of Completion

Claim Reward

Page 42: MIGS 2012 - ClashMobs

ClashMob Communication Paths

Google App Engine

Google App Engine

Page 43: MIGS 2012 - ClashMobs

Facebook Like Support

Page 44: MIGS 2012 - ClashMobs

Facebook Like Support

• To “like” a ClashMob post, the client issues a web request with the post’s ID– The ID is given to the client by our backend server– We use HTTP GET with method=post override

https://graph.facebook.com/163584600328189_462261520460494/likes?method=post&access_token=<user’s access token>

Page 45: MIGS 2012 - ClashMobs

Twitter Retweet Support

Page 46: MIGS 2012 - ClashMobs

ClashMob Twitter Retweet Support

• The Twitter API is RESTful so the game retweets a ClashMob tweet by POSTing to an URL with an ID

https://api.twitter.com/1/statuses/retweet/225319026107228160.json

Page 47: MIGS 2012 - ClashMobs

Facebook Comment Support

Page 48: MIGS 2012 - ClashMobs

Facebook Comment Support

• Commenting is similar to creating a post, but to a specific post ID

https://graph.facebook.com/163584600328189_462261520460494/comments?method=post&access_token=<user’s access token>&message=<URL encoded message>

Page 49: MIGS 2012 - ClashMobs

My MobPulled from Facebook &Game Center on iOS

Call to action

Bonuses for friends

Page 50: MIGS 2012 - ClashMobs

Gifting in My Mob

Page 51: MIGS 2012 - ClashMobs

Summary

• We’ve discussed what ClashMob is

• We’ve seen that ClashMob has extended our brand’s reach yielding impressions outside of our core community

• We’ve talked about how we integrate the game server with social networks

• We’ve talked about how to integrate social networks into the game client

Page 52: MIGS 2012 - ClashMobs

Joe GrafEpic Games, Inc.

Twitter: @EpicCogPatent pending:

61/618,053 & 61/618,024

Special thanks to:Donald & Geremy MustardChAIR EntertainmentWes HuntJosh MarkiewiczEric NewmanIan ThomasSam Zamani

Infinity Blade 2 ClashMob: Hacking the Social Graph