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

Nicholas Frechette <>
Sat Jul 10 17:56:01 CEST 2010


I would love to contribute however I legally cannot due to my current
contract. While I cannot code, I can still give advice.
IMO that sounds like a great idea. Since you'll likely create a custom
protocol over TCP, you'll be able to make a frontend in just about any
language. I would advise against a web solution if you ever want to achieve
any kind of meaningful performance. For heavy scenes, you'll almost always
have to end up shifting a lot of work off the server and onto the client
(stuff that doesn't need the server, like vfx particles bouncing off physics
objects (ie: destructible)) and you'll have a hard time doing efficient work
in javascript (I use it in my project for rendering tasks and it is terribly
slow still..). Good luck trying to have your browser call c++ code locally
(as in external library) without creating a custom plugin.

If however you don't aim to support hardcore gaming and more for casual,
slow paced games like second life or farmville, then yes, a web frontend
would be ideal. While I haven't tried webgl yet, I've found that svg was
faster overall than canvas for heavy scenes.

An other problem you'll hit if you go the web frontend route is that you'll
find javascript poorly suited for binary parsing and you'll most likely want
to have your underlying protocol use json or some delimiter based strings
(to save on bandwidth and parsing time).
That might not be such a bad idea in fact, just have all the protocol
messages be in json (later on you can always add a message to request binary
messages for efficiency in games that require it). Most languages have
libraries to parse json and it'll integrate well with javascript if need be.
You could even, have javascript be the game's scripting language both on the
server side and client side.

Do spent a good amount of time designing the authoring tool(s) and how they
will tie in with the rest of the engine. Those are usually critical for
acceptance. (ie: Unreal3 has a horrible engine, code wise and performance
wise, but because it has good tools for artists, a lot of games go for
unreal) That could very well turn out be the most critical part of the
project. While you may be able to build most supporting tools and pipelines
(in fact I would vote for you to use erlang for the data building
pipelines), you may have to use something else for the authoring tools.
You'll need to be able to render large scenes in low res and have it be very
responsive. You'll definitely need opengl/directx support for it. Perhaps
python or c# could be good fits here, I'm not sure.
Likewise, spent a good deal amount of time designing the data building
pipelines. This is where designers/artists spend a good deal of their time
(waiting for things to build). You'll most definitely want to have assets
build separately and be cached to avoid needless rebuilding. You may wish to
bundle them together but only referencing a hash or key. You'll then be able
to stream them to the clients on demand when they load a level. (There might
be an opportunity to abuse javascript caching in browsers if you go the web
frontend route (ie: when loading assets, dynamicaly add <script> tags
pointing to your server with their hash, if the url is the same, the browser
can read from the cache instead, saving bandwidth))


Anyhow, 2cents
Nicholas

On Sat, Jul 10, 2010 at 9:18 AM, Ed Keith <> wrote:

> --- On Sat, 7/10/10, Boris Mühmer <> wrote:
>
> > From: Boris Mühmer <>
> > Subject: Re: [erlang-questions] Let's start a project for a (MMO-)Game in
>  Erlang... (inspired by "Erlang: Who uses it for games?")
> > To: "erlang-questions" <>
> > Date: Saturday, July 10, 2010, 7:21 AM
> > I will have a look at bitbucket and
> > github. Does bitbucket have a
> > "free plan" for many users? I didn't see it at my first
> > glance...
>
> You can have several user on a project at Bitbucket.
>
> >
> > I know Linux doesn't have any problems with git, mercurial,
> > or
> > whatever. How about Windows and Mac OS X? Sometimes I use
> > subversion
> > on windows, but I don't have too much experience about git
> > or
> > mercurial. I also have an old G4 Mac, even with Mac OS X,
> > but I never
> > did any programming on that machine.
>
> I have used both subversion and mercurial on Windows, using both the
> command line and the excelant Tortoise frount ends (TortoiseHg (
> http://tortoisehg.bitbucket.org/about.html) & TortoiseSVN (
> http://tortoisesvn.tigris.org/). I have never used GIT.
>
> >
> > Also how should we name the project?
> >
> > Somehow I don't want to have the term "Game" in the name,
> > because I
> > think a general approach wouldn't only be interesting for
> > games (like
> > Fantasy-/SF-MMO[RP]Gs), but also "Virtual Worlds" (like
> > Second Life),
> > maybe it could also be of interest for
> > "Virtual-Classrooms".
>
> I am more intrestd in the "Virtual-Classrooms" posabilities than just a
> game.
>
> >
> > Maybe we need more than one project. Like one for the major
> > "backbone"
> > components (cluster management, monitoring, load
> > balancing,
> > accounting, reporting, tools) and other for "instances"
> > like "Erlang
> > Vast Exploration Online", "Universe of Erlang", "My Erlang
> > Farm",
> > "Erlang Mafia Disputes", "Erlang Aquarium", "Erlang Life",
> > "Cafe
> > Erlang"...
>
> sound like a good idea, but it could be too big and endup callapsing under
> its own waight.
>
>
> Ed Keith
> 
>
> Blog: edkeith.blogspot.com
>
>
>
>
>
>
> ________________________________________________________________
> 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