A Workflow that Works
After watching pretty much all of Paul's videos it occurred to me that I've had to do a ton of workflow-level stuff for the game we're working on that the community at large might benefit from. When I started thinking about the more complicated bits and the value that explaining how we're doing them might provide it became clear quickly that the single best thing we're doing is asset and file management.
A couple of quick notes before I get into the "how" of everything being set up.
- We're using Unity Indie for our game construction, this means that we can't really do decent version control on the project asset itself. Unity decided to go the proprietary-only route with their software so if you want full version control over more than just your scripts and original media assets; you have to buy their Pro software ($1200) and a copy of their version control software ($400) per seat for each contributor. Needless to say this is pretty fucking stupid but whatever.. SVN is fantastic and if I had my druthers this whole situation would have been.. subverted.. quickly. The entire reason we've had to develop this setup is because of Unity's antagonistic approach toward pretty much any open source software (Except for.. Magically.. Blender apparently.)
- I'm doing 100% of my modeling in Luxology modo. Fantastic software, couldn't give you enough accolades about it's performance, stability and all around superbness.
- We have two principal contributors to the project, a primary "coder", a primary "artist" and two people that work sort of half-time on finishing and audio.
- I have 3 computers, a home workstation, a laptop and a work workstation. All Macs.
The first responsibility that I had to tackle was managing my own workflow for the construction of 3d and 2d assets. This means have an up-to-date copy of any art that I'm working on no matter where I am. Because version control is entirely atomic when it comes to binary files; I decided to go with a local volume sync instead of constantly patching stuff into a version control repository. I made this choice not only because files would be duplicated constantly in either system, but also because you end up generating hundreds of support files as you continually lay out textures, bake to composite, split things up and merge and also reference files from each other for comp testing, etc. SVN would work fine for all of this but it would require substantially more "management" of the filesystem itself to ensure that every node on the network had immediate access to my crap. If we had two people doing art production at this level; I'd probably have gone a different route of automating subversion to auto-add new assets as they were created and cron up a commit script.
Instead, I looked around my office and found that I had a few licenses of Chronosync that were sitting idle since the advent of Time Machine. Back in the day when I originally bought into the Chronosync solution, I remembered it being buggy as hell and prone to just take over the computer it was running on periodically. I was a little hesitant to get back into all of that but considering they'd released a bunch of new versions since then; a little toe-in-water wouldn't hurt anyone.
What I found immediately after updating Chronosync was astounding. The improvements they've made, including their Chronos Agent application are fabulous. I was able to set up an agent on my home workstation, where I've got plenty of storage for all of my different projects and have updates pushed to my work computer and my laptop periodically (at the beginning and end of the regular work-day.) This means that my working folder on all systems is identical and usually (except in the case of the mobile) I can just open up modo and continue a work session. When I'm done I don't have to think about committing changes, I don't have to copy files anywhere or worry about folder structures not matching. I just set up a ChronoSync Syncronization script to merge all my working folders and I'm golden.
In order to have the Chronosync agent be able to work over the wide area network; I use my MobileMe "BackToMyMac" feature which creates a pseudo-VPN connection that I can access from anywhere.
A couple of problems however, still exist in this workflow but it's all manageable. The thing that prompted me to write this post today instead of waiting was a problem I've been having with Modo since I started using the BackToMyMac service.
Modo utilizes Bonjour for it's network rendering services. This way you can have two machines on the network that can work on rendering the same file if you're trying to output high resolution stuff, or just want faster renders. When they implemented this feature, they also introduced a new license protection scheme. With Modo you're allowed to install the application on any computer you want with one rule: You must be the only person using it at any given moment. They further reinforce this by detecting whether or not other copies of modo are running on your local network and only allowing you to start up in "Slave" mode if that's the case. What happens over the Wide area Bonjour however, appears to be a delay (or outright lag) in modo detecting another copy running on some other computer in the world. Quite often when I come in to the office, or when I'm sitting in a coffee shop on the laptop, I won't be able to start modo up at all. Instead of just getting to work immediately, I have to RDC into my home computer, open modo and then shut it down again. This dance can take and excruciatingly long time if I'm working on the "Caribou Network" at about 20kbps and it really just serves to get in the way of creativity.
I contacted Luxology support this morning and I was really surprised to get the response back that I did. Basically the support tech over there suggested that I use FTP to pass my files back and forth. While I'm sure you're grinning right now; I wasn't. Another suggestion was to have the laptop act as a local file server. This doesn't really work because that would mean having to unpack the laptop (as well as take it with me to work and home at all times.) This in conjunction with the fact that working over a network still sucks (it is 2009 right?) unless you're running gigabit.
The Chronosync solution is fantastic, but it looks like Luxology doesn't have any plans to support VPN at all (aside from using it to provide network rendering services.) This is one of those perfect cases where enforcing a licensing scheme is downright obstructive to the creative process. I'm an honest customer, attempting to use the software in a completely legitimate way; and rather than "just working" I'm subjected to intermittent delays that feel more like getting knocked out of line than being kept in the zone. Someone that's running a hacked copy of modo probably wouldn't have this problem at all, and that fact is even more frustrating.
Next up I'll get into the details about our version control scheme and how we're working around the Unity limitations as best as we can. It seems like for an indie game developer, the road is wrought with limitations from agencies that prefer proprietary solutions and the enforcement of their domain to a more pure creative process. It really makes one wonder whether or not the Blender model (with it's own limitations in functionality) might be better overall.
Some Links
- magnethead's blog
- Login to post comments
