At work I write games. No not the cool ones like Xbox or PS3 or Wii, but pokie machines ones. Enough said. Anyway, each build of the game takes about 5-10 minutes and each start takes upto 3 minutes. Needless to say, the bug-fixing and configuration is quite the pain in the posterior.
An obvious realisation was, why not write a server that could listen to commands from “somewhere” and make changes to the game (objects) at run time. This would mean a build is only necessary on a critical improvent. And a restart (of the the game) would only be required on a rebuild! This would be useful for modifying Sprite locations and properties and just about anything which the custom server can get hold off. Now such a tool did exist. Unfortunatly it was a custom written http server, which printed out the entire Sprite tree on each request. Worse still, each request opened a new connection and then closed it. Did I mention that this server only allowed querying, not modifying or creation of sprites (or other game objects)?
So I embarked on a new probing utility for doing just that. The server was written in C++ using pthreads for multi-threading. No big deal. That is not what I am going to talk about – better people have written and preached about the art of server writing. Thing that got me tickled was I used this opportunity to learn flash, so I begain writing the gui in flash/flex. Main reason was that I wanted a web based UI for the client-side. The experience was amazing. The API is fantastic and intuitive, the IDE (well painful was having to move from VIM to Flex Builder/Linux on Eclipse due to intellisense). Conversely without intellisense, the experience is tortuous.
Il talk more about the features in future posts each dealing with a subchallenge in the project.