Erlang and First-Person Shooters in online games [pdf]
erlang-factory.com
erlang-factory.com
I wonder if they could have been as successful with Scala + Akka. They mention a desire for at least limited static typing at the end of the slides. In my experience well-defined, statically typed interface declarations can eliminate a lot of dumb bugs.
Apparently the consensus is that Erlang is amazing for 'lower-level' infrastructure code but not so great for high-level business code. I wonder if Reia and Elxir might play a role in changing that...
Other than that, that's pretty interesting.
Slide 19 lists far more than just stats-keeping:
> Our core server for controlling Python
> – Managing 100,000s of concurrent TCP connections
> – Scheduling/queuing of tasks for python
> – Metrics gathering (SNMP)
> – Presence server(fragmented mnesia)
> – Message passing (nb: this might be the "in-game messaging" service mentioned in the presence server slide 21)
> Other standalone game-related servers (expanded on slide 25)
> – Transient in-game data (seems to be a k/v store used for e.g. dynamic chat channels)
> – Testing bandwidth (estimation of client bandwidth via blasting UDP packets to the server)
> – Ranking leaderboards (real-time rankings, >15m users, built on ets and a customized gb_trees)
All of this is listed under "How we use Erlang"
All stuff you mentioned has nothing to do with game logic.
It does not require hard real-time response like one required from network game server.
And yes, I already know that I could use Erlang for non-hard-real-time tasks.