infinity blade 2: hacking the social graph

40
Infinity Blade 2 ClashMob: Hacking the Social Graph Joe Graf

Upload: joegraf

Post on 23-Jan-2018

1.872 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Infinity Blade 2: Hacking the Social Graph

Infinity Blade 2 ClashMob: Hacking the Social Graph

Joe Graf

Page 2: Infinity Blade 2: Hacking the Social Graph

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

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

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

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

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

ClashMob

7

Page 8: Infinity Blade 2: Hacking the Social Graph

ClashMob Social Rewards

8

Page 9: Infinity Blade 2: Hacking the Social Graph

ClashMob Social Rewards

9

Page 10: Infinity Blade 2: Hacking the Social Graph

ClashMob Social Participation

10

Page 11: Infinity Blade 2: Hacking the Social Graph

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

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

ClashMob Affect on FEI

13

Page 14: Infinity Blade 2: Hacking the Social Graph

FEI Comparison

14

7 Day FEI on June 7, 2012

Page 15: Infinity Blade 2: Hacking the Social Graph

Brand Page Reach – Pre ClashMob Launch

15

Ad campaign

ClashMob launches

Page 16: Infinity Blade 2: Hacking the Social Graph

Brand Page Reach – Post ClashMob Launch

16

Page 17: Infinity Blade 2: Hacking the Social Graph

ClashMob Impressions for Non-App Users

17

Page 18: Infinity Blade 2: Hacking the Social Graph

ClashMob Affect on Twitter

18

Page 19: Infinity Blade 2: Hacking the Social Graph

Klout’s Analysis of High Klout Scores

19

Page 20: Infinity Blade 2: Hacking the Social Graph

Infinity Blade and Infinity Blade 2 DAU

20

Page 21: Infinity Blade 2: Hacking the Social Graph

ClashMob Communication Paths

21

Google App Engine

Google App Engine

HTTPS

Page 22: Infinity Blade 2: Hacking the Social Graph

ClashMob Communication Paths

22

Google App Engine

Google App Engine

Page 23: Infinity Blade 2: Hacking the Social Graph

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

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

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

ClashMob Communication Paths

26

Google App Engine

Page 27: Infinity Blade 2: Hacking the Social Graph

ClashMob Server Facebook Integration

27

Page 28: Infinity Blade 2: Hacking the Social Graph

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

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

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

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

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

ClashMob Server Twitter Integration

33

Page 34: Infinity Blade 2: Hacking the Social Graph

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

ClashMob Server Twitter Integration Setup

35

Page 36: Infinity Blade 2: Hacking the Social Graph

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

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

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

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

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?