Online games in Erlang (was "Erlang killer app?")

Thierry Mallard <>
Sun Jul 21 00:27:59 CEST 2002


On Sat, Jul 20, 2002 at 03:44:27PM -0500, Chris Pressey wrote:
> [ talking about an Erlang killer app ]
> [...]
> Outside of my job, I've always been interested in the potential of Erlang
> for online games (like MUDs.)  Does this count as groupware?  Not the
> serious, productive kind of course :)

I've tried to implement some server side application for an open source
MMORPG, named WorldForge[1].

My main goals were :
1/ to practise Erlang
2/ to see if Erlang would be a good langage to achieve a MMORPG server,
for the development point of view
3/ same thing, but for the application point of view (speed, for
instance)

Although I never tried to quantify those points, the results I could
feel were the following :

- I was almost alone in this quest.. the WorldForge team was working on
  a C++ implementation of STAGE (the WorldForge server), and was never
  really interested in the Erlang version. Mostly because they don't
  know this language, of course..

- Coding the Erlang implementation of STAGE (cunningly called ErlyStage)
  was fast indeed. In about 3 months, Mickael and I were about the same
  point as they (the C++ team, 3 people) were after a year of
  development. 

- ErlyStage featured some new things that are very difficult to
  implement in C++ : the classical hot-upgrade and application
  distributions.

- The difficults parts : keep a persistant world in memory.. I'm really
  not sure that Mnesia can do that. And worst of all, I think : the
  server should do more and more operations on those "entities" (any
  object of the world). But, to be honest, I'm not an expert Erlang
  programer, so maybe those "gotchas" aren't really ones..


Looking at that experience after a year has passed, I would say that I
feel like Erlang forms "brains for cells" (for sales ? ;-) ). It's very
good at putting together other technologies (an external database, via
ODBC, a 3D engine or middleware -see Wings3D-, etc). But I definitly
think that we can't (and _shouldn't_) try to do everything in Erlang.

The "brains", that Erlang provides, help all those parts works together,
with the features Francesco mentionned in his post : hot-swapping,
fault-tolerance, and so on..

Ok, enought blabbering (is that english?) for tonight  :-)

With kind regards,

-- 
Thierry Mallard
http://vawis.net



More information about the erlang-questions mailing list