An Erlang Game Stack

« back to Presentations Download Presentation Download
Erlang is successfully used for game servers. Lua is a friendly, small language that is big in game scripting. And VoltDB is a new high speed ACID database from Postgres inventor Mike Stonebreaker. Add some JSON, Websockets and JavaScript and you have an exciting HTML5 game stack.
This talk is about research and results from the work on a very high throughput game server with embedded Lua for game logic and VoltDB as SQL database backend. The stack aims to maximize robustness, throughput and ease of scripting. Its special feature is linearly scaling true ACID with a goal of a million transactions per second, while being easy on the game logic scripter.
This stack is part of the development effort of games start-up Eonblast for the cross-media Science Fiction franchise Solar Tribes, which will feature film elements merged with cross-platform online games.  The stack is created to allow for a unified, non-sharded game world experience, thus for a unified story line and also otherwise transcends current MMO conventions. Players will share the same stories at the same time and be empowered to leave a stronger imprint on their environment. Interaction with other players is taken beyond the limitations currently seen in social games. All of which are technical challenges, asking for fastest possible data access and better data integrity guarantees.
A triple asynchronous server side architecture is described that communicates non-blocking with a fat JS/HTML5 browser client. The related Open Source projects Erlvolt and Fleece are introduced, which were created for this stack. The embedded Lua driver Erlualib and Robert Virding’s new project, the Lua VM emulator Luerl are compared and evaluated. A brief overview of capabilities of new databases is given to explain why VoltDB was chosen for the task.
Talk objectives: Sharing practical experience integrating Erlang with an imperative scripting language and a powerful database cluster: Lua and VoltDB.
Target audience: Mid-Level Erlang programmers interested in language embedding and high-velocity distributed databases.


  • Henning Diedrich

    CEO of Eonblast
    Eonblast Corporation

    Henning is founder and CEO of Eonblast; the maintainer of the Erlang MySQL driver Emysql; the Erlang VoltDB driver Erlvolt; the Erlang Lua driver library Erlualib; the super fast Lua JSON encoder Fleece; and he is the official evangelist for VoltDB for games. He also contributed the underrated sed script markedoc, which converts markdown to edoc.

    Henning is an entrepreneur, producer, programmer and game designer. He wrote his first games on the C64 and since Netscape 1.0 he develops web sites and Internet based systems for German and U.S. customers. He produced a game server for the German tabloid Bild with Java 1.0 and designed and implemented a language and VM for insurance tariff calculation for AXA's Central in the 90ies that is still in use today. For the browser game leader Bigpoint he programmed for Dark Orbit and produced the submarine MMO Deepolis. In 2009 he founded Eonblast to create a more immersive online game experience and as official cover for the Time Tuner mission. He also works for VoltDB and the HTML5 consortium.

    Henning's Open Source contributions to the ecosystems of Erlang, Lua, MySQL and VoltDB are direct results of what pieces he found missing for a better game server stack. Due to his focus on games and innovation, and his beginnings on a 1MHz CPU, Henning's special interest tends to be speed (yes, that speed). He has recently talked about evil optimizations at the Lua Conference, and about his record setting Node.js/VoltDB benchmark for VoltDB, Inc.

    twitter: @hdiedrich

    Henning Diedrich
« back to Presentations

Posted on May 28, 2012