Hi there! Today I would like to propose you my interview to Christian Flodihn. Christian is working at DemonWare, which is a famous company in the Erlang world. Christian came to my attention for his document “Next Generation MMO Architecture“.
Paolo – Hi Christian, would you like to introduce yourself to our readers?
Christian - I was born in Sweden 1981, played a lot of games on my Nintendo as a kid. When I was 17 I started to play MUD’s (Multi User Dungeons) and started to program LPC when I was 19. Between 2003 and 2006 I went to University and since 2010, I been living in Ireland working as Software Engineer.
Paolo - Why did you start coding and why did you start using Erlang?
Christian - Computers have been my interest since I was 14 and I have been programming since I was 19. I started program for a MUD and since then I have been hooked. My first experience of Erlang happened during University, we got a 2 week crash course. However, I did not start using Erlang myself until started to research the best language to write scalable servers in.
Paolo - You are currently working at DemonWare, which is a subsidiary of Activision Blizzard. Can you give us some information about the company and its specialization?
Christian - We do online services, such as match making, leader boards, storage etc for Activision games. Our largest title is Modern Warfare 3. The company uses both C++/Python and Erlang where it is best suited, which aligns very well how I like software to be developed.
Paolo - You are also the CEO and founder of Epic Online Entertainment, the company behind project Abydos Online. Can you tell us something more about your company and the project Abydos?
Christian - Actually, it is not a company but a registered business name, however, with the new directions we take this your, a real company will likely be formed but with a different name.
Paolo - Why did you started designing an MMOG? What languages did you try for this task and which ones proved to be more efficient?
Christian - I wrote an MMO server prototype in Stackless Python, however I figured out it would be very hard and time consuming to scale, so I started research different languages and found out that Erlang was the best choice by far in relation to scalability and distribution.
Paolo - What are the main features of Abydos? How many concurrent players does the implementation support?
Christian - I did some stress tests on a machine with 4 cores and 8 GB ram, the server handles about 10,000 to 16,000 players in the same area (a plane of of 1×1 kilometer). If you got real server hardware, imagine something like 32 cores and 64 GB ram it would probably handle much more, specially if you let 4 or 8 of those run the same area.
Paolo - I often hear people say that MMOG development requires a huge amount of skills and time. Do you agree on this?
Christian - In general yes, it will require huge amount of skill. The most time consuming however, is the content, we are somewhat going around that problem by letting some of the players create their own areas, similar to what MUD’s usually do.
Paolo - How does erlang help in this sense?
Christian - Erlang helps us by providing mechanism distribution, for example something simple as running its own name server on the OS to help find nodes in a network and the built in RPC/messaging functionality saves us a lot of time.
Paolo - I had the chance to read “Next Generation MMO Architecture”, which you wrote in January 2010 at University of Göteborg. I found this document really interestig. Can you suggest to our readers other books, articles or tutorials to improve knowledge on MMOs?
Christian - I am afraid not. I been trying to find some good articles myself, most of them focuses on using peer to peer to “solve” the scalability issue, which gives you just bizarre security issues instead. Another popular subject are algorithms for (AOI) Area of Interest which by nature scales very badly and can be replaced by AOR (Area of Responsibility) in almost all cases. The closest I found to my own article was Michal Slaski’s “A Virtual World Distributed Server developed in Erlang as a Tool for analysing Needs of Massively Multiplayer Online Game Servers”, however it is very short, only 3 pages and only deals with about 1000 players. I guess keeping all their game data in a database could be the thing that kept their numbers low.
Paolo - How to play Abydos? Should people ask somewhere for a beta test key?
Christian – We have a tester/newsletter signup button in our menu on the www.abydosonline.com webpage.
Paolo - Is there a way for interested developers or designers to collaborate to Abydos?
Christian - Yes, you can just fire of a mail to email@example.com. You can also visit our web site and click on recruitment in the menu.