Wednesday, January 16, 2008

Billex


We've been talking about dedicating some days fully to a project from our wish list for a while with Farshid and yesterday we started one such special day. The project we selected from the wish list is code named Billex since it's a Flash based Billiard game which can be played by multi users over the internet. The network communication model is going to be a client and server pull model where the clients (Flash) request information from the server they are registered with and the server uses a persistence state and some services over HTTP to provide the needed information for the clients. Ideally we would like to have a mobile based client added and the feature for being able to play mobile or using a web flash client. Flash communication server is another alternative but it seems like that would be an overkill for this project and the requirements for Flash communication server on web hosts are quite expensive.

ActionScript 3.0 is being used, it is so much Java like and the language has become quite strong and it currently supports very nice object oriented features too which makes it a good choice for creating large systems with it. It is very nice how you can extend from the available graphical objects in Flash and create your specific domain which is coupled with the flash objects.

Our goal was to come up with the client simulations and physics first, then provide the server code and finally the integration. So far we were able to finish up the basic client simulations and physics needed for modeling the billiard balls and their interactions with one another and the table. We should have gone further but we got stuck with a simple collision related bug for some time which was quite un-expected ;). We had a nice review of high school physics, trigonometry and geometry. Now I know why the teachers were insisting so much :).

The joy of just watching the balls hit one another was just delightful!

Looking forward for the next special day to dedicate to Billex.

No comments: