25 January 2015

Enough with the command-line tools!

There's a large subset of the game development industry (and any software creation, really) that thinks "nobody but me is going to use this, and I know how it works, so I don't need to do any documentation or make a UI for this."
I don't like this way of thinking. It's naive to think that, if you make something really cool or useful, that others aren't going to want to use or license your tech and use the same tools you used to do so. It's even more naive to think that down the line, when you want to re-use or expand upon your code, you'll remember exactly how everything works. I could take a look at something I wrote 3 months ago, sans comments, and only have a vague idea of how it works.

And even the best developers fall victim to this. Valve software, who have in the past have made their games very mod friendly, have a directory full of hard to use, barely documented command line tools, which effectively lock off some of their coolest engine features. In some cases, such as their material system, it was necessary for the community to use, so some of the more code-minded members reverse engineered the material tools and created gui-based tools to use them. In other cases, such as their flowmap technology introduced in Left 4 Dead 2, there is literally no support in the tools. By reports, Valve uses a plugin for the software Houdini to generate the textures that store flowmaps. Houdini is commercial software, so its understandable that they can't release that with the free SDK. But their custom plugin could have been, and the community could have then reverse-engineered it to work with other, more accessible softwares.

But I'm sick of seeing bad tools that are bad simply because people thought "Eh, nobody else will use it". By the simple virtue of me seeing it, that has been proven untrue.

So make your tools under the assumption that you're releasing it, fully compiled, to the public in some way, shape, or form. It will take a teeny bit more effort to make the GUI and write the documentation, but when other people potentially use it down the line, they'll get more out of it, and, more importantly to you, your workflow will be boosted by the fact that you have an easier to use process for whatever it is your tool does.

No comments:

Post a Comment