The We R Interactive CTO offers his advice on which tools are right for you
Fat client social game development seems to have bought the industry full circle. With the low barriers to entry it is again entirely reasonable for a single coder to develop a game in their bedroom with no commercial development tools.
Perhaps the only bar to entry is the high expectations of games savvy customers, and with new audiences brought to the games table by social media, even that obstacle is less significant.
So what kind of challenges does the coder face in this new era of games development and how do the tools measure up to the task?
Bringing your product to market
It might feel like putting the cart before the horse, but deciding on how you are going to make your money will strongly influence your choice of solutions.
Say you want to go for free-to-play with micro-transactions then you will either need to select a platform that supports this model - Kongregate, Facebook, Chrome etcetera - or you are going to have to provide some of that infrastructure yourself.
You are always going to have to serve your web app from somewhere, so in many ways you are missing a trick if you do not offer services over and above the minimum that a social network provides. For instance, Facebook only supports a single high score, whereas many games want to record much more than that.
If you accept that you are going to be running a server, then what flavour? In general think about what happens at scale. Apache is a natural choice, and scales well with a traffic manager.
Node.js has the advantage of a single language on client and server that might be appealing to small development teams that want to concentrate expertise but is not widely proven at scale.
If you are consuming cycles on a server then you are presumably going to want to record state and that means some means of data storage. If you are going for high volume (micro transactions), then again consider what happens at scale.
MySQL is a natural fit and comes as part of the LAMP architecture but your data sets can rapidly outstrip the single terabyte range, so be sure that you are comfortable managing tables that spread across clusters of machines.
Cassandra and other schema-less variants are in the ascendancy and are again free to use but keep in mind that this is new technology and is still evolving. One attraction is that there are several commercial players in this space now (DataStax, Acunu) giving you an escape plan if managing your data corpus becomes a time sink.
A second attraction is that the schema-less nature is very developer friendly, though keep in mind that this could be read as "easy to misuse".
Whilst the attraction of the canvas to game developers is strong, there is a lot that can be achieved with DOM elements under HTML4 and you will find that drawing to the canvas without the benefits of WebGl extensions can be frustratingly slow.
Sticking to the bedroom development theme, and selecting a free to market platform, your IDE is the next choice. There is no shortage of options here. I prefer Eclipse, but others in the studio go for NetBeans, there are many alternatives.
What is clear though is that debugging will happen in your browser. Chrome, Firefox (with FireBug) and Internet Explorer all have excellent debugging and profiling facilities built in.
There are constant advancements. I suspect that the browser manufacturers (at least the commercial ones) recognise that if they can lure the developers to work with their client, then it is their client that will be best supported.
If you would like to learn more about the tools and tech on offer for social games developers, you can read our in-depth feature on the subject here.