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.