In 2010, Rich Hickey spoke at Clojure Conj about ‘Hammock Driven Development’. Hickey was talking about the benefit of down-time for noodling about software design. Specifically, Hickey means using down-time after considerably ‘loading up’ your mind with aspects of the problem, in order to leverage background offline processes to solve those difficult problems.
Hickey’s advice is to wait for it. Wait overnight. Get good rest and make sure that you are sleeping well. Then you will be able to think about the clearly on the next day. If you are lucky perhaps you will receive inspiration from a dream and wake up with the problem solved. This sort of inspiration is what Hickey means by leveraging background processing.
Hickey mentions working on more than one project. By having multiple projects, you avoid the problems of creative block, or writer’s block. You can be productive simply by working on another project. One drawback is that frantically flitting from project to project can lead to problems finishing any single project. I am often guilty of this.
Eventually, I plan on writing about properly scoping projects to make it possible to get them to a finished state. One method that works for me is getting something to the point that I can write a blog post about it. Even if it’s not ‘finished’ finished, I get some satisfaction with putting it out there in a relatively well thought out and complete form.
My solution is to record, record, record. I keep lots of notes, both in more structured form on this blog and in more sketchy form in files on my computer. I also draw out visual design ideas in a notebook. Sometimes I will set up skeleton game projects simply to test out an idea. If I have some sudden insight into a problem, then all of these ideas are available later.
Hickey says to avoid being stuck, switch. That is why having multiple projects can help. Hickey also mentions a great suggestion of talking about design hiccups and problems with other people. Tweet about your design roadblocks. Write a blog post about them. Telepathically communicate about them before you go to sleep, so magical dream elves can come and solve them for you.
Summary: There is no summary. This is a rant.
Unless you are Rich Hickey or–I dunno–Gary Gygax, simply thinking about a problem a priori will not result in a great game. There is still something to be said for getting your hands dirty and iterating on a design. However the techniques highlighted in Hickey’s talk can be useful when you are stuck on a design problem.
Hit me up in the comments or on the tweet tweet if you have any great Hammock Driven Design tips that I haven’t covered here.