One of the first thing you need to do when making a browser-based game is to decide on technologies used and then see if there is an engine with enough flexibility and power to support the vision of you game. In my prior attempts I've been playing with few different engines including MelonJS and GameJS. However neither of them would be suitable for the game I had in mind. Because I want to write a game and not yet another engine, I've been experimenting with various engines using this list as a starting point. After fooling around with few more options I've settled down for Playcraft - it's a commercial solution but comes with source code and a license friendly to indie developers.
Why Playcraft? Here is a quick list of criteria I've used:
- It's quite flexible, as long as it's a 2D (or even 2.5D) game, it will support it
- It supports TMX maps, for a while now I'm set on using Tiled to design game maps
- It's very modular and looking at the source code I feel like it could be easily extended or tweaked
- It implements entity pooling and seems to offer decent performance
- It comes with relatively high-level components I can use off-the-shelf (e.g. sprites, scenes, input processing, data loader etc.)
Playcraft works just fine for the front end and though current version doesn't offer a server-side component, with few hacks I even managed to get it up and running for the back end on Node. However it doesn't feel stable nor particularly elegant. I need something solid to maintain the state of the game, contain all the mechanics etc. Perhaps I should consider a python-based back end?