Developing Flex/Rails RoR Distributed Multiplayer Games

Flex Messaging systems and distributed application development

Event driven application is a different programming paradigm than most programmers are used to. This is because unlike a lot of procedural applications, event driven programming requires programmers and designers to think differently. It requires them to think more carefully about event handling and possible event cases.

In this article we are going to talk about some of the difficulties of developing distributed multi-player applications, being it a game, video distribution system or whatever end data stream that you are providing to your remote users.

Case Study: “Game Challenge”

“Game Challenge” is a game which we are currently producing for one of our clients. It is a multiplayer, concurrent, event driven, realtime application which when published will see tens of thousands of users concurrently playing on it daily.

The game consists of a patented poker like type of game which is sub-divided as a distributed game engine and a front facing community & flex front end client. My role in its development has been of Lead Architect & Developer. We have provided for our client a complete turn key solution in which we are doing everything from the hand evaluator, various game & player state machines, rules engines and the multi-platform flex game client itself.

Game Server

The game’s backend is being developed using ruby, activemessaging, json and stomp. We have defined a variety of processing queue and topics for multicasting player game information to the various participants on our own ruby customized stompserver.

Flex Game Client

The front end is currently being developed using Flex because of it’s flexibility in development and ease of deployment.

Automated Testing

For testing of the distributed nature of the game we have developed testing robots which allow us to simulate both load on to the servers but also every combination of event options, making formal testing a breeze.
Once the game client is complete ( our production schedule estimates 2 months ) we will be preparing to deploy it as a possible facebook application as a second phase of the project.

About this entry