1. Infinity Blade 2 ClashMob:
Hacking the Social Graph
Joe Graf
MIGS
November 14, 2012
2. About This Talk
• Introduction
• ClashMob social impact
• How ClashMob works
3. About Me
• Worked at Epic Games over 9 years
• Primarily focused on online features for our games and
engine
• Sr. Online Architect at Epic
4.
5. 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
6. 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
7. 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
8. ClashMob Social Impact
• Measuring success
– How many people used the feature?
– How many used the social aspects?
– Did the social interactions help?
9. Infinity Blade and Infinity Blade 2 DAU
ClashMob launches
IB2 DAU
IB1 DAU
Month
21Launch
3 Months
4 Months
5 Months
6 Months
Months
11. 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
12. 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
14. 7 Day FEI on June 7, 2012
35.00%
30.00%
25.00%
20.00%
FEI
15.00%
10.00%
5.00%
0.00%
Infinity Blade Halo Call of Duty Angry Birds Apple Microsoft Google Jaguar
23. Brand Page Post Setup
1. Create a Facebook App that does the posting
2. Create a brand page for your product
3. Login as an administrator of the brand page
4. Grant the app permission to post as you
https://www.facebook.com/dialog/oauth?client_id=<app id>&
scope=publish_stream,offline_access,read_stream,manage_pages&
response_type=token
Example response
https://www.facebook.com/#access_token=AAABmbm...MUZD&expires_in=0
24. 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
26. Facebook Brand Page Post
2. Post to brand page
https://graph.facebook.com/<page id>/feed?method=post&
access_token=<page token>&
message=<message text>
Example JSON results
{ "id": "163584600328189_462261520460494" }
27. Facebook Brand Page Post
3. Monitor post activity
https://graph.facebook.com/163584600328189_462261520460494
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 }
}
28. Server to Twitter Integration
• Click to edit Master text styles
– Second level
– Third level
• Fourth level
– Fifth level
29. 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
30. Twitter Integration Setup
• Click to edit Master text styles
– Second level
– Third level
• Fourth level
– Fifth level
31. Server to Twitter Integration
1. Tweet ClashMob information as the account
owner
2. Periodically, read the Tweet to get retweet
counts
32. ClashMob Server Twitter Integration
1. Post tweet to account feed
https://api.twitter.com/1/statuses/update.json?
include_entities=true&
status=<OAuth encoded tweet>
Example JSON results
{ "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, } }
33. ClashMob Server Twitter Integration
2. Read a ClashMob tweet for retweet counts
https://api.twitter.com/1/statuses/show.json?id=223172555035508740
Example JSON results
{ "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 }
39. ClashMob Step by Step
Get ClashMob List Google App
Return visible events Engine
Enroll in ClashMob
Push Notification of Start
Send Player Contribution
Return Global Progress
Push Notification of Completion
41. ClashMob Step by Step
Get ClashMob List Google App
Return visible events Engine
Enroll in ClashMob
Push Notification of Start
Send Player Contribution
Return Global Progress
Push Notification of Completion
Claim Reward
44. 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>
46. 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
48. 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>
49. My Mob
Pulled from Facebook &
Game Center on iOS
Bonuses for friends
Call to action
51. 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
52. Infinity Blade 2 ClashMob:
Hacking the Social Graph
Special thanks to:
Donald & Geremy Mustard Joe Graf
ChAIR Entertainment
Wes Hunt Epic Games, Inc.
Josh Markiewicz
Twitter: @EpicCog
Eric Newman
Ian Thomas Patent pending: 61/618,053 & 61/618,024
Sam Zamani