I wanted to embed Bottleship in Chrome, now I'm embedding Chrome in Bottleship - fate is not without a sense of irony, it seems. Doing everything on the OS level enabled me to integrate Awesomium. The windowless embeddable port of Chromium is a commercial solution, but usage is free for indie developers. Wolfire of Humble Indie Bundle fame is using it for his latest game, Overgrowth (Lugaru 2).
|Playing around with Awesomium|
I'm now doing all 2D UI's in Awesomium, which takes a huge burden off my shoulders, and allows me to write larger volumes of UI in shorter amounts of time.
|A more serious use for Awesomium.|
Moving on to client and server parts, I picked Node.js for the server prototype, with Redis as a fast DB backend, and possibly MongoDB or CouchDB for archiving content. As the client is written in C++, I'll be using Boost.Asio for networking. I'm not sure what kind of serialization method I'm going to use for packets, possibly either Protobuf or BSON. Initial communication will be TCP, with a reliable UDP protocol to be added later.
If you network coders have any ideas regarding the infrastructure, I'm open to suggestions.