The server and client code is custom made (with some node of course), I have been doing some client/server programming before this (including some really large projects) and node with socket.io is quite a pleasant environment to work with. I don’t have many other dependencies yet but that might change of course. If you are interested, here is my current full stack:
express (for serving pages, with ejs templates)
Pako for de/compression
That’s it! All the code dependecies are listed above.
There are downsides too with Node.js of course, one that is both good and bad is its asynchronous nature. It’s very easy to write code as you don’t have to care about multithreading but at some points (one example would be when I want to store some stuff in compressed format and I would rather do the compression in background) the lack of proper multitasking feels like I’m missing something. Yes, there are webworker libraries and some threading libraries but they are long way from what I’m used to with other languages (especially with Erlang). However as node matures I assume there will be better implementations of webworkers or background processing.
Lacking multithreading is not as bad is it sounds as it’s quite easy to run a cluster of node processes so that each node process handles separate areas of the game. But I’m not at this point yet, now I want to see how well one single node process scales..