Infinity Blade 2: Hacking the Social Graph
Transcript of Infinity Blade 2: Hacking the Social Graph
![Page 1: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/1.jpg)
Infinity Blade 2 ClashMob: Hacking the Social Graph
Joe Graf
![Page 2: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/2.jpg)
2
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 3: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/3.jpg)
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
3
![Page 4: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/4.jpg)
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
4
![Page 5: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/5.jpg)
About ClashMob
• Large scale challenge requiring thousands to complete
• Everyone that participates receives the reward
• Bonuses given for social elements– Friends that play– “Like”-ing a ClashMob post on the Infinity Blade page– Retweeting a ClashMob tweet
• In Infinity Blade 2, comprised of mini-games
5
![Page 6: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/6.jpg)
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
6
![Page 7: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/7.jpg)
ClashMob
7
![Page 8: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/8.jpg)
ClashMob Social Rewards
8
![Page 9: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/9.jpg)
ClashMob Social Rewards
9
![Page 10: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/10.jpg)
ClashMob Social Participation
10
![Page 11: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/11.jpg)
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
11
![Page 12: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/12.jpg)
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
12
![Page 13: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/13.jpg)
ClashMob Affect on FEI
13
![Page 14: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/14.jpg)
FEI Comparison
14
7 Day FEI on June 7, 2012
![Page 15: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/15.jpg)
Brand Page Reach – Pre ClashMob Launch
15
Ad campaign
ClashMob launches
![Page 16: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/16.jpg)
Brand Page Reach – Post ClashMob Launch
16
![Page 17: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/17.jpg)
ClashMob Impressions for Non-App Users
17
![Page 18: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/18.jpg)
ClashMob Affect on Twitter
18
![Page 19: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/19.jpg)
Klout’s Analysis of High Klout Scores
19
![Page 20: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/20.jpg)
Infinity Blade and Infinity Blade 2 DAU
20
![Page 21: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/21.jpg)
ClashMob Communication Paths
21
Google App Engine
Google App Engine
HTTPS
![Page 22: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/22.jpg)
ClashMob Communication Paths
22
Google App Engine
Google App Engine
![Page 23: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/23.jpg)
ClashMob 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
23
https://graph.facebook.com/163584600328189_462261520460494/likes?method=post&access_token=<user’s access token>
![Page 24: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/24.jpg)
ClashMob Facebook “Comment” Support
• Commenting is similar to creating a post, but to a specific post ID
24
https://graph.facebook.com/163584600328189_462261520460494/comments?method=post&access_token=<user’s access token>&message=<URL encoded message>
![Page 25: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/25.jpg)
ClashMob Twitter Retweet Support
• The Twitter API is RESTful so the game retweets a ClashMob tweet by POSTing to an URL with an ID
25
https://api.twitter.com/1/statuses/retweet/225319026107228160.json
![Page 26: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/26.jpg)
ClashMob Communication Paths
26
Google App Engine
![Page 27: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/27.jpg)
ClashMob Server Facebook Integration
27
![Page 28: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/28.jpg)
ClashMob Facebook 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
28
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 29: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/29.jpg)
ClashMob Server 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
29
![Page 30: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/30.jpg)
ClashMob Server Facebook Brand Page Post
1. Query accounts
Example JSON results
30
{ "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 31: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/31.jpg)
ClashMob Server Facebook Brand Page Post
2. Post to brand page
Example JSON results
31
https://graph.facebook.com/<page id>/feed?method=post&access_token=<page token>&message=<message text>
{ "id": "163584600328189_462261520460494" }
![Page 32: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/32.jpg)
ClashMob Server Facebook Brand Page Post
3. Monitor post activity
Example JSON results
32
{ "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 33: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/33.jpg)
ClashMob Server Twitter Integration
33
![Page 34: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/34.jpg)
ClashMob Server 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
34
![Page 35: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/35.jpg)
ClashMob Server Twitter Integration Setup
35
![Page 36: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/36.jpg)
ClashMob Server Twitter Integration
36
1. Tweet ClashMob information as the account owner
2. Periodically, read the Tweet to get retweet counts
![Page 37: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/37.jpg)
ClashMob Server Twitter Integration
1. Post tweet to account feed
Example JSON results
37
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 38: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/38.jpg)
ClashMob Server Twitter Integration
2. Read a ClashMob tweet for retweet counts
Example JSON results
38
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 39: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/39.jpg)
Summary
• We’ve seen that ClashMob has increased our player retention
• We’ve seen that ClashMob has extended our reach yielding impressions outside of our core community
• We’ve talked about how to integrate social networks into the game client
• We’ve talked about how we integrate the game server with social networks
39
![Page 40: Infinity Blade 2: Hacking the Social Graph](https://reader033.fdocuments.in/reader033/viewer/2022050613/5a667a747f8b9ac3578b46d1/html5/thumbnails/40.jpg)
40
Special thanks to:Donald & Geremy MustardChAIR EntertainmentWes HuntJosh MarkiewiczEric NewmanIan ThomasSam Zamani
Joe GrafEpic Games, Inc.
Twitter: @EpicCogPatent pending:
61/618,053 & 61/618,024
Questions?