Making multiplayer game with Elixir and Elm

16
MAKING A MULTIPLAYER MEMORY GAME WITH ELIXIR AND ELM MAX GORIN (@MXGRN) EURUKO 2016 SOFIA http://pairs.one

Transcript of Making multiplayer game with Elixir and Elm

Page 1: Making multiplayer game with Elixir and Elm

M A K I N G A M U LT I P L AY E R M E M O R Y G A M E W I T H E L I X I R A N D E L M

M A X G O R I N ( @ M X G R N ) E U R U K O 2 0 1 6 S O F I A

http://pairs.one

Page 2: Making multiplayer game with Elixir and Elm

D E P L O Y M E N T

• DigitalOcean 512Mb droplet?

Page 3: Making multiplayer game with Elixir and Elm

D I D N ' T W O R K

Page 4: Making multiplayer game with Elixir and Elm

" M O A R R A M ! "-- Node v4.5.0

Page 5: Making multiplayer game with Elixir and Elm

F T W S O L U T I O N

• 1. Upgrade to 1Gb RAM

• 2. Install Node

• 3. Downgrade to 512Mb

Page 6: Making multiplayer game with Elixir and Elm

W H Y E L M

• Type inference (😉, Yukihiro Matsumoto)

• Hard to break code (refactor away!)

• No runtime errors. None.

• Excellent fit-all architecture (Redux copied it)

• Tons, tons of wow-moments

Page 7: Making multiplayer game with Elixir and Elm

S TAT E P R O PA G AT I O N : P H O E N I X C H A N N E L S

websockets

• Elm support: fbonetti/elm-phoenix-socket

Page 8: Making multiplayer game with Elixir and Elm

S TAT E P R O PA G AT I O N

Pass complete game state at all times!

Page 9: Making multiplayer game with Elixir and Elm

S TAT E P R O PA G AT I O N

LZString.compress

Base.encode64

|>

|>

~ 5x smaller

Page 10: Making multiplayer game with Elixir and Elm

N O L I B R A R Y F O R E L M ?

• Geen probleem!

• Kein Problem!

• Ningún problema!

• Нет проблем!

• Pas de problème!

• Няма проблем!

• No hay problema!

• Inga problem!

I mean, no problem at all!

Page 11: Making multiplayer game with Elixir and Elm

N O L I B R A R Y F O R E L M ?

JUST

USE

PORTS

Page 12: Making multiplayer game with Elixir and Elm

P O R T S

• "Using an Elm port is like making an async call to the server, but simpler."

-- Me, EuRuKo 2016

Page 13: Making multiplayer game with Elixir and Elm

W E B S O C K E T S ' P R I C E

• My game won't run on Bali :(

Page 14: Making multiplayer game with Elixir and Elm

B U T W E A R E L U C K Y : )

Page 15: Making multiplayer game with Elixir and Elm

W H O W A N T S T O S E E T H E C O D E ?

https://github.com/mxgrn/pairs.one

Let's open source it:

Page 16: Making multiplayer game with Elixir and Elm

T H A N K S - A N D L E T ' S P L AY M O R E !

@mxgrn is available for contracting