Saturday, 2 November, 2013 UTC


Summary

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.