The document discusses best practices for building large-scale Facebook games at the company wooga. It begins by outlining some of the challenges of scaling games to millions of users, including complexity, the large scale, and features constantly changing. The company's philosophy is then discussed as being very agile, prioritizing individuals, working software, customer collaboration, and responding to changes. Teams at wooga work independently in small groups with clear responsibilities and close communication. Examples of practices discussed include unit testing, service-oriented architecture, and continuous integration. Unit testing is said to improve encapsulation, act as documentation, and provide a safety net. Mock objects are also mentioned as a way to simulate dependencies in tests.
1. +
Scaling
Massive
Flash-‐Projects
-‐How
to
build
a
Top
10
game
on
Facebook-‐
Philipp
Moeser
(Co-‐Founder
&
CTO)
Ma8es
Groeger
(Senior
Engineer)
2. n
Teams
&
tools
Teams
and
Tools
you
need
to
build
a
Top
Game
you
need
to
build
a
big
game
2
3. wooga
–
world
of
gaming
About
wooga
Founded
January
2009
Philipp
Moeser
Funding
of
$32m
-‐Co-‐Founder
&
CTO-‐
InternaJonal
team
of
100
from
over
20
countries
in
Berlin
Ma8es
Groeger
-‐Senior
Engineer-‐
Key
stats
6
games
on
Facebook,
39
million
acJve
users
3rd
biggest
social
game
developer
worldwide
70%
of
users
are
female
(age
20-‐60)
3
4. Agenda
I. Challenges
II. Our
philosophy
III. Environment
IV. Best
pracJce
examples
V. Summary
4
14. development
manifesto
for
agile
soJware
14
http://10yearsagile.org/wp-content/uploads/2011/01/background.jpg/
15. Our
philosophy:
agile
n Individuals
and
interacJons
over
processes
and
tools
n Working
socware
over
comprehensive
documentaJon
n Customer
collaboraJon
over
contract
negoJaJon
n Responding
to
changes
over
following
a
plan
15
16. Our
philosophy:
agile
n Individuals
and
interacJons
over
processes
and
tools
n Working
socware
over
comprehensive
documentaJon
n Customer
collaboraJon
over
contract
negoJaJon
n Responding
to
changes
over
following
a
plan
16
18. Our
philosophy:
agile
n Individuals
and
interacJons
over
processes
and
tools
n Working
socware
over
comprehensive
documentaJon
n Customer
collaboraJon
over
contract
negoJaJon
n Responding
to
changes
over
following
a
plan
18
20. Our
philosophy:
agile
n Individuals
and
interacJons
over
processes
and
tools
n Working
socware
over
comprehensive
documentaJon
n Customer
collaboraJon
over
contract
negoJaJon
n Responding
to
changes
over
following
a
plan
20
22. Our
philosophy:
agile
n Individuals
and
interacJons
over
processes
and
tools
n Working
socware
over
comprehensive
documentaJon
n Customer
collaboraJon
over
contract
negoJaJon
n Responding
to
changes
over
following
a
plan
22
23. Collaborate.
best
soluPon
23
http://www.financialmeltdown.com/the_solution.html
60. Mock
objects
n Simulated
objects
with
controlled
behaviour
n Same
interface
as
the
real
object
n SuggesJng:
Mockito
Flex
h8ps://bitbucket.org/loomis/mockito-‐flex
60
104. Wrap-‐up:
best
pracJce
n Special
requirements
for
code
n Keep
up
producJon
speed
n Keep
your
client
independent
n Automate
as
much
as
possible
104
105. Agenda
I. Challenges
II. Our
philosophy
III. Environment
IV. Best
pracJce
examples
V. Summary
105
106. I.
Challenges
II.
Our
philosophy
Internal communication (instead of processes)
Internal communication |
Protoyping & iterating
Large | complex Protoyping & iterating | External
External communication (instead of contracts)
| moving target communication | Flexibility
Flexibility
III.
Environment!
IV.
Best
pracPce
examples
Independence | responsibility |
communication
Unit testing | service
layer | cont. integration