At Wooga we are creating the next generation of social games. To be truly social, a game needs to offer real interaction between players in different forms.
Taking one of our upcoming games as an example we will present the state synchronization used in client and server, how we do real time communication without websockets and how we are making a backend scalable enough to support millions of users every day. We will also share secrets about our prototypes for first person and real time strategy games.
The Erlang process model with evented IO, asynchronous messaging, links and isolation fits very well to real time multiplayer games. Come to our talk to see how it's used to build a very successful business.
95. user A
move
pick
state
count 1
max 3
Client A Server
96. user A
user A
move
pick
state
count 1
max 3
Client A Server
97. user A
user A
move
pick
loca,on
state count 0
count 1
max 3
Client A Server
98. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
Client A Server
99. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
Client A Server
100. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
history
move A
pick A
Client A Server
101. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
history
move A
pick A
Client A Server
102. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
history
move A
pick A
Client A Server
103. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
user B
history
move A
pick A
Client A Server
104. user A
user A
move
pick
loca,on
state count 1
count 1
max 3
user B
history
move A
pick A
loca,on
Client A Server
105. user A
user A
move
pick
loca,on
state count 2
count 1
max 3
user B
history
move A
pick A
loca,on
Client A Server
106. user A
user A
move
pick
loca,on
state count 2
count 1
max 3
user B
history
move A
pick A
loca,on
Client A Server
107. user A
user A
move
pick
loca,on
state count 2
count 1
max 3
user B
history
move A
pick A
pick B loca,on
Client A Server
108. user A
user A
move
pick
loca,on
state count 2
count 1
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
109. user A
user A
move
pick
loca,on
state count 2
count 2
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
110. user A
user A
move
pick
loca,on
state count 2
count 2
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
111. user A
user A
move
pick
pick loca,on
state count 2
count 2
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
112. user A
user A
move
pick
pick loca,on
state count 2
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
113. user A
user A
move
pick
pick loca,on
state count 2
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
114. user A
user A
move
pick
pick loca,on
state count 2
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
115. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
116. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
117. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
Client A Server
118. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick A
pick B loca,on
pick B
Client A Server
119. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick pick A
pick B loca,on
pick B
Client A Server
120. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick pick A
pick B loca,on
pick B
Client A Server
121. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick pick A
pick B loca,on
pick B
Client A Server
122. user A
user A
move
pick
pick loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick pick A
pick B loca,on
pick B
Client A Server
123. user A
user A
loca,on
state count 3
count 0
max 3
user B
user B history
move A
pick A
pick B loca,on
pick B
Client A Server
124. user A
user A
move
loca,on
state count 3
count 0
max 3
user B
user B history
move A
pick A
pick B loca,on
pick B
Client A Server
125. user A
user A
move
pick
loca,on
state count 3
count 1
max 3
user B
user B history
move A
pick A
pick B loca,on
pick B
Client A Server
126. user A
user A
move
pick
loca,on
state count 3
count 2
max 3
user B
user B history
pick move A
pick A
pick B loca,on
pick B
Client A Server
127. user A
user A
move
pick
loca,on
state count 3
count 3
max 3
user B
user B history
pick move A
pick pick A
pick B loca,on
pick B
Client A Server