Making multiplayer game with Elixir and Elm
Transcript of 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
D E P L O Y M E N T
• DigitalOcean 512Mb droplet?
D I D N ' T W O R K
" M O A R R A M ! "-- Node v4.5.0
F T W S O L U T I O N
• 1. Upgrade to 1Gb RAM
• 2. Install Node
• 3. Downgrade to 512Mb
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
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
S TAT E P R O PA G AT I O N
Pass complete game state at all times!
S TAT E P R O PA G AT I O N
LZString.compress
Base.encode64
|>
|>
~ 5x smaller
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!
N O L I B R A R Y F O R E L M ?
JUST
USE
PORTS
P O R T S
• "Using an Elm port is like making an async call to the server, but simpler."
-- Me, EuRuKo 2016
W E B S O C K E T S ' P R I C E
• My game won't run on Bali :(
B U T W E A R E L U C K Y : )
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:
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