Online games in Erlang (was "Erlang killer app?")
Thierry Mallard
thierry@REDACTED
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