In Character

I've been making some progress on my roleplaying game project, to which I've given the working title "In Character". To begin with, I've done some UI prototyping. Here's a glimpse of the core roleplaying interface in its infancy:

I've decided to go with JavaScript MVC, and I've come up with a stack that I enjoy quite a bit so far. I have done some experimentation in this arena in the past, and after reading Human JavaScript I'm ready to dive back in. Here is an overview of the tools I'm using:

  • Grunt to build and run the app
    • This is so much more than just a make-like tool. It's probably closer to foreman, and it's my JS-focused HQ for wiring together the various pieces of my app
  • envfile for config vars, which are passed to the client-side JS code
    • I haven't expanded this to look for environment variables yet, but I will before I get to the deployment stage of my app
  • Express.js as the API server
    • I'm starting out with this because it's simple yet powerful, and works very well with Grunt and things like Jade templates
  • Bower to manage client-side dependencies
    • I'm adding Require.js paths for them, which is tedious but it makes using them easy
    • There's a Grunt plugin to automatically write paths for your Bower modules, but I wanted full control (to designate the AMD version of Marionette, for example), so I don't use it.
  • Bootstrap 3
  • Less
  • Jade - for server and client-side templating
    • This is being compiled to plain JS in an AMD module
    • A tiny Jade runtime.js is needed for this, which is provided by Bower (pretty similar to how &yet is doing it)
  • Require.js
  • Backbone.js
  • Marionette.js
    • I'm just using pieces of this for now, but I expect that will expand as my app grows.

I'll keep my blog updated as I continue to make progress.