Modelling Game Economy with Neo4j

Post on 24-Jun-2015

2943 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

In this talk I discussed our use of Neo4j to automate the balancing of the in-game economy for our MMORPG title "Here Be Monsters".

Transcript

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

top related