ancatrusca

ancatrusca

This podcast is relevant particularly for the architectural discussion around how OTP primitives map to the domain of multiplayer games.
Ellyse Sedeno has been working at the intersection of distributed systems and game backends since the early days of MMORPGs. Her starting point is that multiplayer games and telecom systems face structurally similar problems: millions of concurrent sessions, soft real-time requirements, failure isolation between subsystems, and distributed state that has to be consistent without being globally locked.
The episode covers how the traditional game server architecture - threaded Java or C++ with explicit lock management - fails under load in ways that are both predictable (deadlocks are non-deterministic and nearly impossible to reproduce) and expensive to fix after the fact.
The alternative she describes maps cleanly onto OTP:
A presence server, chat server, world server, and combat server run as separate supervised processes. Each player and mob has its own process. Movement events arrive in a mailbox, are processed without locks (there is no shared mutable state to lock), and changes are broadcast. When the world server crashes, it restarts under supervision without affecting chat. The architecture makes failure modes visible and recoverable rather than total.
One observation worth discussing from an Erlang perspective: she makes the case that the call vs cast distinction matters significantly in game server design. Circular dependencies between server processes using synchronous calls are the actor model’s equivalent of a threading deadlock - and they’re much easier to reason about structurally when your dependency graph is explicit in your process topology.
She also discusses using player behavior analytics as an observability layer - aggregate deltas in chat volume, level completion rates, and movement patterns as leading indicators of server-side failures. At scale, player behavior is a higher signal-to-noise instrument than server logs that have become too noisy to read.
The project is open source on Codeberg as game_server.

Showing Posts 1 to 2

kxnis

kxnis

Awesome talk. I woke up today thinking of how to use elixir in games and you just published it. Thats amazing. Btw, what is the repo? Couldn’t find it at codeberg

ellyxir

ellyxir

hey there, here’s the repository, feel free to ping me if you have any comments or questions! ellyxir/gameserver - Codeberg.org

— All posts loaded —

Where Next? Top

Trending in Podcasts Top

PJUllrich
We recap ElixirConf US in Chicago, unveil this year’s AtomVM-powered Goatmire name badges, and dig into what happened after Pushin hit th...
New
ancatrusca
New episode covering the full arc of Kip Cole’s 10-year localization and time work in Elixir - useful context for anyone using ex_cldr, T...
New
ancatrusca
New episode with Tobias Pfeiffer (PragTob) covering Benchee’s design and the systematic mistakes that make most benchmarks misleading. P...
New
ancatrusca
New episode with Alex Koutmos covering the overlap between Elixir and financial systems - practically, architecturally, and historically....
New
PJUllrich
Recorded live from Goatmire in Varberg, we recap the conference, its Nerves-powered orchestra, LED tree, and badges, and discuss José Val...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews