Catching BIGFOOT Yan Cui @theburningmonk
Jun 24, 2015
Catching BIGFOOTYan Cui @theburningmonk
WHO AM I?
1MILLION USERS
ACTIVE
DAILY
250MILLION DAY
PER
REQUEST
location
Starium
500 Spots
locationepisodic
LONDON
2012
NANJING
2013
?2014
locationepisodicmulti-player
herebemonstersgame.com
iPad
buddies
herebemonstersgame.com
iPad
buddies
locationepisodicmulti-playerRPG
3500
items
700
recipes
1500
quests
gamebalancing
itemPricing
itemPricing
itemPricing
itemPricing
Manual game balancing is SLOW
It is REPETITIVE
and worst of all...
It is ERROR-PRONEand SUBJECTIVE
there must be a better way...
Hello, Neo4jThe rabbit hole sounds pretty good right about now!
BIG
FO
OT
catc
hin
g
locationbait
attraction rate
catch rate
as a graph in Neo4j
Bigfoot
Alice Lake
exists_inAlluring Goat
can_attract
Bigfoot Toenail Clippings
Musket-teer Traploots
can_catch
Omar Lake
exists_in
BigfootAlice Lake
exists_in
Alluring Goatcan_attract
Bigfoot Toenail Clippings
Musket-teer Trap
loots
can_catch
Omar Lakeexists_in
Yowie
Yetican_catch
can_catch
Apprentice’s Workshop
can_
mak
e
GoatHoney
Yeti Fur
requires
loots
mak
es
Alluring Goat Recipe
requires requires
Beeswax
loots
Bee Hiveharvests
McDonald’s Farm
sells
loots
Goat’s Milk
harvests
London
exists_in
Peryton Fawn Decoy Recipe
requires
Peryton Fawn Decoy
makes
BigfootAlice Lake
exists_in
Alluring Goatcan_attract
Bigfoot Toenail Clippings
Musket-teer Trap
loots
can_catch
Omar Lakeexists_in
Yowie
Yetican_catch
can_catch
Apprentice’s Workshop
can_
mak
e
GoatHoney
Yeti Fur
requires
loots
mak
es
Alluring Goat Recipe
requires requires
Beeswax
loots
Bee Hiveharvests
McDonald’s Farm
sells
loots
Goat’s Milk
harvests
London
exists_in
Peryton Fawn Decoy Recipe
requires
Peryton Fawn Decoy
makes
BigfootAlice Lake
exists_in
Alluring Goatcan_attract
Bigfoot Toenail Clippings
Musket-teer Trap
loots
can_catch
Omar Lakeexists_in
Yowie
Yetican_catch
can_catch
Apprentice’s Workshop
can_
mak
e
GoatHoney
Yeti Fur
requires
loots
mak
es
Alluring Goat Recipe
requires requires
Beeswax
loots
Bee Hiveharvests
McDonald’s Farm
sells
loots
Goat’s Milk
harvests
London
exists_in
Peryton Fawn Decoy Recipe
requires
Peryton Fawn Decoy
makes
BigfootAlice Lake
exists_in
Alluring Goatcan_attract
Bigfoot Toenail Clippings
Musket-teer Trap
loots
can_catch
Omar Lakeexists_in
Yowie
Yetican_catch
can_catch
Apprentice’s Workshop
can_
mak
e
GoatHoney
Yeti Fur
requires
loots
mak
es
Alluring Goat Recipe
requires requires
Beeswax
loots
Bee Hiveharvests
McDonald’s Farm
sells
loots
Goat’s Milk
harvests
London
exists_in
Peryton Fawn Decoy Recipe
requires
Peryton Fawn Decoy
makes
~ 7000 nodes
~ 35000 edges
avg 5 degrees of connectedness
gamebalancing(revisited)
IMPACT ANALYSIS
What’s the impact of upping
the price of “White Bread”?
CRAFTS
RECIPE ITEMITEMIS_USED_IN
MATCH (wb:BaseMarketplaceItem { Name:"White Bread"})
-[rel:CRAFTS|IS_USED_IN*1..]
->(i:BaseMarketplaceItem)
RETURN i, rel, wb
SCARCITY ANALYSIS
How scarce is “Durian”
compared to “Dragonfruit”?
EXISTS_IN
FRUIT TREE SPOTFRUITFORAGES
MATCH (fruit)<-[:FORAGES]-(tree)-[:EXISTS_IN]->(spot)
WHERE fruit.Name=‘Durian’ OR fruit.Name=‘Dragonfruit’
RETURN fruit, tree, spot
QUEST LINES
AWARDS
QUEST ITEMITEMREQUIRES
QUEST
UN
LO
CK
S
What quests come after “Year of the Horse”?
MATCH (q1:Quest { Name: “Year of the Horse” })
-[:UNLOCKS]->(q2:Quest)
RETURN q1, q2
How would you model quest progression?
1. Price Items
2. Enrich Model
3. “Price” Quests
MONSTER HIERARCHY
Catch me first.
No, catch ME first.
IS_USED_IN
ITEMMONSTERCAN_ATTRACT
ITEMMONSTERLOOTS
RECIPE
CRAFTS
MATCH (monster1:MonsterMarketplaceItem)
-[:LOOTS]->(loot)
-[r:IS_USED_IN|CRAFTS*0..]->(bait)
-[:CAN_ATTRACT]->(monster2)
RETURN monster1, monster2
LONDON 2.0WE REWROTE THE ENTIRE SEASON 1
QUESTS TO MAKE THEM BETTER.
TWICETHE FUN
SEASON 1
SEASON 1(POST-REWRITE)
SEASON 2
STREAMLINEDMORE
QUALITY > QUANTITY
TWICETHE AMOUNT
SUPPORTTO
Neo4j to the rescue!
Thank you!
Here Be Monstershttp://www.herebemonstersgame.comhttp://apps.facebook.com/herebemonsters
Building a MMORPGhttp://bit.ly/1hjqoL8http://slidesha.re/18MD4XY
Google I/O 2013 – Here Be BigQueryhttp://bit.ly/1fHjbce
WE’RE HIRINGwww.gamesyscorporate.com/careers