I was reminded this week how important a role time plays in everything we develop, and how technology is shrinking it. It’s easy to miss it in the day-to-day, but most of what we struggle with, the miscommunications we have, the problems we tackle, are ultimately just an f(t) where t is really long, too long for us to not need help. Pathfinding and UI and game programming is hard not because it’s hard, but because it takes enough work to get it right, enough time, even if you can point to the answer when you start. Design docs are just a way of pointing at a result (even if they’re ultimately inaccurate), because just making the result takes far too much time in concept, and the designer never has the time to do it all themselves. Prototyping is just another step on that path, an evolutionary time-saving improvement enabled by technology – it’s a fast way of getting something more helpful done, but still what you actually want is something else. Meeting notes may be tedious to post, but they save time communicating (and rehashing) the imperfect discussions. All these tedious problems go away if you have infinite time, or perfect technology. It’s easy to forget that – to say “don’t ever write design docs” or “cancel all the meetings!” – because in a sense they are a waste of time. But they are occasionally a necessary waste of time, and not a waste at all, because what you are really doing is steps towards solving a long, hard, complex problem like making a game. A problem that brings people together and gives us work.
We don’t have the technology to make that easy yet. Someday.