Friday, 26 August 2011

Project planning with Pivotal Tracker

I've been using Pivotal Tracker for my own project and I recently helped a mate get set up so that they can plan their first release, an awesome-sounding old-school multiplayer deathmatch game. I gave them a bunch of advice about how to use it and realised that I could do with having the advice written down for reference myself. So here are some thoughts about how to plan and schedule those features.

Break down many-tasked features
Features with a heap of significant tasks attached are a planning "smell" (meaning the indication that something is wrong). Consider breaking them down to smaller chunks. This will help you to both get a grip on what actually needs doing and get an idea of how long it will take.

Pushing the estimate length limit
If you find yourself setting a lot of estimates at 3 (the default maximum in PT) and thinking "I wish I could set this to 4...", this is a sign your feature is too big.
[Update] Dan P points out that Pivotal Tracker's default estimate range of 0-3 abstract points is completely customisable. I'd still recommend sticking to the default while you get used to writing good features.

Use chores to represent decision points, learning activites and setup tasks
If you're creating a feature and there are big design questions or technological unknowns, break them out into their own items. You should consider making them chores instead of features as they don't represent actual functionality. Any significant setup task e.g. setting up test environments, should also be its own chore.

Prioritise risky features
Adding simple, easy-to-implement functionality is good, but make sure that if you have features planned that have lots of unknowns that you prioritize work on resolving these. This doesn't mean you have to complete the risky feature, just that you need to get confidence around what it will take to build it. You could spend some time sketching the design, do some (time-boxed) research on how others did it or build a small spike solution. The aim of this stuff is to get to the point where you can confidently describe what it will take to build it and a rough guess of how hard it is. 

Features in progress
You will have a bunch of stuff currently in progress when you start. If it's small enough to be one feature, just create the feature and mark it as started. If it's a "super-feature" (to coin a term), such as "Art Theme X" or "Capture The Flag Mode", break it down into its component parts and set their status individually to 'done', 'current' or 'unstarted'.

Handle known tasks consistently
The asset creation process is often able to be broken down into repeating features for each super-feature. So, when you're creating an art theme, there might be: 'Concept Art', 'Room Textures', 'Props' and 'Playtesting' for each one. Name them consistently: "Nightworld - Room Textures", "Zombietown - Room Textures", and add an "art" and a "theme" label to each feature. If all the features are consistent, you can start to predict how long it will take to create a new theme based on how long it took you to do the last few. This data will be invaluable when you sit down to schedule the next three months' worth of theme releases.

Write feature descriptions
Partly this is an aid in communication across the team, but mostly this is because it forces you to think through what the feature actually entails, what value it actually delivers and how the feature might actually be implemented. Think of it as a kind of ninja design. The uncomfortable feeling you get when writing a detailed description is the pain of design and decision-making. You have to figure this stuff out eventually, but by doing this thinking up-front and early you'll save yourself all sorts of pain.

Write good feature descriptions
"Features" are things that make your game better. That is, they deliver some kind of measurable value to the players of your game, your customers. Try and write every description as if you're justifying the work to someone that's bought your game. A (slightly verbose) template to get you in the spirit of it: "In order to , as a < gamer / server host / power user >, I should < be able to do X >. You don't have to stick with this template, it's just a tool to help you get in the habit of framing your features correctly. If it's not improving your users' lives, maybe it's a bug, or a chore?

Keep your estimating light
PT's estimate values are limited by default to 0..3 points. Of course you'll want these estimates to be consistent across your team, but they are rough-grained and abstract for a reason: they are estimates. By their nature they are educated guesses. Remember, the more process you add, the more non-work you're doing, and the less likely you'll be to do it. Ask yourself, how much value will you get with more detail, and is it worth the extra weight? Just start, and be prepared to improve the parts of your process that aren't working.

Further information or ideas
Pivotal uses Scrum/Kanban methodology pretty religiously. You don't need to get deep at all on process, but a little process can help. Some further links:
  1. Explanation of Kanban management
  2. Example of a typical workflow
  3. Howto get started with Kanban
  4. Lostgarden on how to use design logs to document your game's design - an alternative technique worth considering for iterative gameplay development
Let me know your thoughts in the comments.

Sunday, 5 June 2011

A short poem

swans cross stygian channels into
the darkening chamber
wings echo off moss-rust walls
then a matte and hollow silence


Tuesday, 24 May 2011

Rabid sharing: a recreation of the break from Peshay's Piano Tune

Further to my last post about rabid sharing, I thought I'd share a recreation I have attempted to do of Peshay - The Piano Tune.

This is my version:

It's basically a chopped up amen with distortion (using Ableton's Saturator), compression and EQ. I added a little Redux down-sampling and bit reduction to give it that old-school sampler feel. Some of the hits have amplitude envelope modifications to achieve that abrupt, gated sound. The bass is just a simple sine wave with a fast attack and decay. There's a touch of Saturator distortion and EQ on it as well.

Download the zipped sample pack.

This is the original version:

Any producers out there: I'd love your ideas about how I could make this break closer to the original. I just haven't quite been able to nail those woody snares!

Thoughts on backups and sharing (and a recreation of the Terrorist break)

Last Wednesday my laptop was stolen from my flat. I'm in the process of claiming insurance to organise a replacement. That's the bad news. The good news is that my backup drive was not stolen. That means that when I get a replacement laptop, I'll have my years of work and data back as they were!

It's a strange situation I find myself in. I feel some kind of sadness for the loss of my instrument, and yet most of what I miss will be available to me again. I've maintained for years that it's the data, not the medium, that actually matters, but I still seem to be mourning the loss of my faithful machine!

A couple of obvious, but worth repeating, lessons from this:

  1. Make regular backups. As regularly as you can, really. My last backup was 13 days before, which is definitely too long. Losing two weeks of work has had a huge psychological cost.
  2. Keep 'off-site' backups. If my backup drive had gone, I really would have been up shit creek. At the very least, I need to be keeping a backup in another part of the house, and ideally at someone else's place. I'm considering finding a friend and organising a fortnightly backup swap with them. Any musicians out there keen?
  3. Work in public, and share ferociously.
I'd like to elaborate on that last one. I lost two weeks of work, but that has been mitigated partly by the fact that I posted some of my work fragments to Soundcloud and shared files with collaborators and friends. Uploading the Pornogroove sketch that Kwrk and I made to Soundcloud means I now have a decent chance of recreating it; whether I should is a different matter! Similarly, I was pleased with the initial ideas present in this old-school jungle sketch. If I hadn't shared it, it would now be lost forever. Because I shared those Massive patches last week, I can now re-download them myself!

So, be promiscuous with your data. Share your samples, music collections, sketches and anything else you can. Let me know if you do, too. I want to get ma leech all up on that! You might be leery of sharing your "special sauce" but, if you have confidence in your abilities as a musician, you certainly need not worry about other people biting your sounds. Just keep moving forward and making good stuff. Then, when the inconceivable happens, you can hit up your mates for all the data you shared with them. Pro-tip: avoid DRM-locked data as it can be much harder or impossible to share.

In the spirit of working in public and sharing my work, and in case this loaner laptop gets stolen, I'm gonna share my recent recreation of the Terrorist break from the jungle classic by Renegade. It's available for download under a CC by-nc license. I've got another version of the break with the Hot Pants shakers laid on top, but I'm not yet happy with how they sound. Post a message in the comments or on Soundcloud if have any feedback about it!

Monday, 16 May 2011

4 free Massive patches based on SubFocus tutorial

So, I felt like I learnt a bit from this series of videos by SubFocus. One thing I struggled with was the image quality; when he's doing something specific in Massive I really had to lean in to see what he was up to. I've saved the Massive patches I created while following along and I'm putting them here to share with y'all in case you were interested in using them yourselves.

Some detail about my patches:

CleanReese - this is that super-warm and phat old-school Reese sound he created, as found in a whole bunch of seminal jungle  tunes e.g. Ray Keith - Terrorist. I love this sound, and it dirties up real purdy-like.

ElectroStab - A classic detuned electro chorus stab sound.

ReeseLead - You can make this all trancey, or filthy like DBBC - Torpedo. Remarkably flexible sound, try it all the way up and down the octaves for different effects.

BassPatch - The least successful of my patches. Mostly interesting for the way it uses the Performer modulation page.

Get the zipfile I've uploaded to Google Docs. These patches are for the Native Instruments Massive synth.

Legal disclaimer: I doubt I'm doing anything wrong by recreating patches from a free tutorial, but I take no legal responsibility for the use of these patches. They are released by me for free under a Creative Commons BY-NC-SA license. Enjoy!

Tuesday, 10 May 2011

Photos of Night and Fog

I was out wandering the other night and Auckland City was covered in this dense fog. I felt oh-so-very Exorcist as the spirit of Christ compelled me to take these photos. By way of disclaimer: they were taken with my HTC Magic phone and I know basically nothing about photography.
I've touched them up a little in iPhoto (I know, right!); the biggest fix was bringing the overall levels up as they were pretty dark initially. They've ended up looking pretty grainy but I kind of like that.

These lights have always reminded me of the base of space rockets taking off. I love the contrast with the sinister squat silhouette of the church.

I like the apocalyptic vibe I got when I messed with the contrast and saturation here:

One of my treasured aesthetic memories from childhood was sitting in the backseat of the family car late at night as we drove through the northland countryside, usually travelling between Dargaville or Walkworth and Auckland. I would look out across the countryside to the shadowed hills against the dark sky. There was something ineffable about the infinite obscure textures of gray and blue.

Sometimes I would look past my parents in the front seat down the length of the motorway illuminated by spotlight ochre lamps; imagine us hanging on the undercarriage of some huge spaceship as we flew by rail to a docking station. That delicious feeling of vertigo I felt as I considered the yawning maw of the sky below us.

I suppose for me there will be forever the association of being transported, safe and warm, through the night. My father would play his cassettes of the time: Rickie Lee Jones, Counting Crows, Vicka & Linda, Richard Thompson. Sometimes there would be conversation. I would ask about how some part of the world worked: the ethics of crime and punishment or New Zealand's involvement in Vietnam or the media. Mostly we were silent.

These days, I find my father's driving unnerving; he drives well but faster and more aggressively than I find comfortable. My brothers and I inherited his fahrvergn├╝gen; I'm told my driving is good but stressful. I try and drive in a reassuring manner but it just doesn't stick.

Learning to drive is a loss of innocence: you can never sit in the backseat again.

"You can't go back home to your family, back home to your childhood ... back home to a young man's dreams of glory and of fame ... back home to places in the country, back home to the old forms and systems of things which once seemed everlasting but which are changing all the time — back home to the escapes of Time and Memory." - You Can't Go Home Again, Thomas Wolfe

Friday, 6 May 2011

How Chase & Status Construct Their Beats

The audio on these two videos is pretty rough, but I found what they had to say interesting. My notes and thoughts are below.

Reusing beats - It was interesting to hear that they re-use elements from one beat to another. In the example they demonstrate, they re-use a high-end shaker pattern and a processed version of an entire beat they had made previously. I'm personally a bit ambivalent about re-using much myself, but maybe I'm being too precious about my creations. After all, when cooking a meal, one uses the same ingredients again and again.

Pick good sounds and don't over-process them - Their point about finding a great sound and not fucking with it too much is a good one, and one that I will try and keep in mind. Too often I find myself fiddling with a sound, only to listen back to the original sound I selected and realise I've totally killed what I liked about it.

Full-spectrum beats - Their break completely fills the frequency spectrum. I'm a little surprised how full they seem to build it in order to achieve that energy level. My impression is that this is very much in line with the Chase & Status sound though, and less of a must-do production technique.

Cutting the kicks from breaks - They make sure the breaks are kick-less, to avoid muddying up the punch of the low end. I personally don't like cutting out whole sections of my breaks as, to me, the point of a background break is to introduce a kind of live feel and to glue the individual hits I'm using together a bit. The technique I'm experimenting with now is isolating the kicks in the break and making them 12-20 dBs quieter. I combine this with a bit of low-cut EQ and then leave it alone.

Don't push the loudness - Loudness maximising and over-compressing is bad. I was surprised quite how little processing they do here.

Work with audio rather than MIDI breaks - Slicing breaks as sound waves, rather than into MIDI hits. I've been experimenting with this and I've got to say, it seems like the best default thing to do. I've done a bit with Ableton Live's Drum Rack and I really like using it, but unless I'm doing something clever with the individual hits of a break, though, it's probably too complex.

Overall, I'm not sure I agree 100% with their approach, but I've found plenty of interesting ideas in here. Let me know your thoughts in the comments.