[rabbitmq-discuss] RabbitMQ in MMOG
Miguel Morales
therevoltingx at gmail.com
Wed Mar 17 19:21:10 GMT 2010
Hey Jose,
I can definitely relate, it's been a dream of mine for a long time as
well. You can find my blog here:
http://developingthedream.blogspot.com/
I don't have the full game concept finalized, but I'm making it for
android/mobile devices. So I'm designing the game around those
restrictions. So far I'm thinking of some sort of pokemon/mmo/rpg
maker type game.
I'm thinking of a pokemon/card type battle system because it would be
the simplest and easiest to implement using mobile devices. However,
movement is in realtime (2D) and it's designed for latency-prone
connections.
I've worked on it for about 7 months (while working a full time job,
currently unemployed ;-)) So I think it's a feasible project, I had
to build the rendering engine using OpenGL ES on Android, so that was
a bit of work to do.
So far the most challenging thing to do was the movement because I had
to implement pathfinding, game loops, etc. I come from a web
development background, so all of this was new to me.
As for technology, it's pretty simple.
On the server side:
I have an account for each player.
There is are 'system' queues that players/clients post hardware
input changes, or when resuming/pausing/etc.
On startup there are a bunch of processes consuming from these
queues and setting the proper state changes to the mnesia player
record.
Then there is a global server game loop for each area, that takes
the saved server input and process it and publishes a 'server tick'
message to the 'area queue' (described below) so the player/client can
sync up.
This 'area queue' is purged every second to avoid overloading clients.
On the client side:
As a player moves, the client subscribes to its current area queue
so that it can know about other players.
There is another queue for each player used for player-unique
system-level messages from the server.
Slowly but surely it's coming along, I *hope* that I'm done with the
most challenging stuff, but I still have AI coming up.
(Though I've done the pathfinding algorithm in erlang, so it shouldn't
be too difficult, plus I'm looking forward to it.)
And yes I do speak spanish, I was partially raised in El Salvador!
Hope that answers some of your questions, let me know if there's
anything more specific you'd like to know.
Good luck!
PS, forgot to CC list on original message, doing so now.
Miguel.
On Wed, Mar 17, 2010 at 7:24 AM, Jose Enrique Benitez Jimenez
<jose.benitez at scu.desoft.cu> wrote:
> Hello Miguel,
>
> That is a great news, I want to make a 2D Game MMO by my self, that is an
> old dream I want become true. Can you tell me more about your game, story,
> technology beside rabbitMQ, and more ??
>
> Do you speak Spanish?
>
> Greetings
>
>
> -----Mensaje original-----
> De: Miguel Morales [mailto:therevoltingx at gmail.com]
> Enviado el: Martes, 16 de Marzo de 2010 06:42 p.m.
> Para: Jose Enrique Benitez Jimenez
> Asunto: Re: [rabbitmq-discuss] RabbitMQ in MMOG
>
> Hello Jose,
>
> I'm not sure if it's a good idea or not, but I'm making a game (2D
> MMO) using rabbitmq as middleware.
> So far it's been excellent, fast communication/unmarshalling of data
> by working with the bytes directly. (No JSON/XML overhead.)
> I get a nice abstract layer to route messages to players and areas.
>
> There are a few things that I haven't quite solved yet, that might bug
> me in the future:
>
> Memory:
> Each broker handles events/messages in a set of areas.
> Each player has an account in the broker that they're active in,
> might consume too much memory if it gets busy.
> (Adding more nodes/brokers might solve that.)
>
> Security:
> Players must 'own' a queue so publishing to that queue must be
> authenticated.
>
> Other:
> Routing messages based on the player's location in the area.
>
>
> However, I'm not too worried about that yet, nor have I gotten to the
> point to test with many players logged in at once, but the tests I've
> ran have been excellent.
>
> Miguel.
>
> On Tue, Mar 16, 2010 at 11:56 AM, Jose Enrique Benitez Jimenez
> <jose.benitez at scu.desoft.cu> wrote:
>> Hello friends,
>>
>> It is good idea to use RabbitMQ as a middleware between flash and erlang
> for
>> a Massive Multiplayer Online Game ?
>>
>>
>>
>> Greetings,
>>
>> Jose.
>>
>>
>>
>> _______________________________________________
>> rabbitmq-discuss mailing list
>> rabbitmq-discuss at lists.rabbitmq.com
>> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>
>>
>
>
>
--
http://diastrofunk.com, http://developingthedream.blogspot.com/,
http://www.youtube.com/user/revoltingx, ~Isaiah 55:8-9
More information about the rabbitmq-discuss
mailing list