[erlang-questions] Let's start a project for a (MMO-)Game in Erlang... (inspired by "Erlang: Who uses it for games?")

Michael Truog <>
Sat Jul 10 02:14:48 CEST 2010


I am interested in contributing to server-side MMOG work, open-source
and otherwise.  I think and MMOG server could be done in a way where the
front-end could be web based, or a graphics intensive application
(probably .NET C++ or C#... or cross-platform if truly innovative).  It
would be nice to somehow abstract away the difference between AJAX
communication and Websockets, to have a very compatible web front-end
working.  However, all the core logic should not require hard-coding the
server communication and client front-end.

We need an Erlang-based MMOG server that is open-source, and the easiest
way to get one, is to create one.  It would not be easy or productive to
convince other projects to suddenly change what they are doing, to use a
better server programming paradigm (and with open-source, the best
project generally wins, by surviving the longest).

I think many common components could be developed that MMOGs generally
need: object/PC/NPC persistence and database caching, efficient
physics/AI code access, DSL for game scripting, etc..  I do not think
the Erlang-based server would be too inefficient.  Such an attitude
seems to come from much of the focus on only testing within the Erlang
community and the focus on only premature optimization within the gaming
community.

Many Erlang servers have scalability characteristics that easily exceed
the rushed coding of production game servers (that contain much more
complexity and more SLOC than is easily maintainable).

C and C++ integration is required for using efficient libraries that are
required for complex tasks (a best case scenario might be only a physics
engine).  One major problem is not having memory leaks, since that is
normally the cause of any MMOG's daily server reboot (which is very
typical).  That would mean that linked-in driver (NIF) usage would
require much scrutiny, and an Erlang port might offer redundancy if the
delay was acceptable (i.e., managing the computational latency).

It would probably be best to have a game scripting language (DSL)
layered on the Erlang VM, and to keep as much logic within Erlang as
possible... until the logic delves into data structures that must be
immutable.

So, I am interested and have been thinking about it awhile.  I have
worked on previous MMOGs and would enjoy working on an Erlang-based
solution.

On 07/09/2010 12:33 PM, Miguel Morales wrote:
> It would be feasible to do the client side using wxWidgets and/or esdl.
> However, I think having a web frontend is the way to go.
> I'm too busy on my own project to help, how about perhaps contributing
> to existing mmorpg engines such as: http://www.next-gen.cc/
> There goes a lot into making a game, not just programming.  A lot of
> art is needed, plus people to design characters and story lines.  One
> would have to think carefully as to what type of mmorpg to make before
> even getting started.
>
> On Fri, Jul 9, 2010 at 11:10 AM, Dale Harvey <> wrote:
>   
>> On 9 July 2010 18:55, Boris Mühmer <> wrote:
>>
>>     
>>> It looks like some people are interested in Erlang game programming.
>>> On the other hand getting started in Erlang and OTP isn't too easy.
>>> Especially for people with a strong C/C++/C#/Java/etc background.
>>>
>>> Inspired by the "Erlang: Who uses it for games?" thread I thought about
>>> starting a community project to implement a MMO game in Erlang/OTP.
>>> The goal would be to collect some "best-practices" for different tasks.
>>>
>>> Actually I am more interested in the server side than how to implement
>>> a top-notch-state-of-the-art client. Also I think Erlang is more suited
>>> for the server side. But I am also interested in how to interface the
>>> "server-side erlang" using a (C/C++, Java, Python) cross-plattform
>>> client (using wxWidget or Qt as a base and OpenGL for graphics).
>>>
>>>
>>>       
>> I would completely recommend using a web front end, depending on the type of
>> graphics involved dom / canvas / svg or webgl can be used for rendering, and
>> comet or websockets for communication.
>>
>> erlang has long missed the boat on becoming a strong platform for building
>> cross platform desktop clients, and considering how well suited it is for
>> writing the server components of a web application I would suggest sticking
>> to its strengths.
>>
>> (I would love to keep updates, and while I would love to contribute, the
>> chances are I will be too busy, no harm in bugging me if you are looking for
>> a web frontend though)
>>
>>
>>     
>>> What I would like to see are reponses from other people who may also
>>> be interested in such a project. Not only beginners with Erlang/OTP,
>>> but also (or especially) experienced people to guide and support the
>>> others. And most of all, to have some fun practising Erlang.
>>>
>>> Well, what do You think about it?
>>>
>>> Best regards,
>>> Boris
>>>
>>> ________________________________________________________________
>>> erlang-questions (at) erlang.org mailing list.
>>> See http://www.erlang.org/faq.html
>>> To unsubscribe; mailto:
>>>
>>>
>>>       
>>     
>
>
>   



More information about the erlang-questions mailing list