But more, much more than this…

Being an independent developer is a little daunting as it gives you the freedom you’ve always craved but also the responsibility you never had. And being determined to make this work I’ve made some decisions on approaches that I feel couldn’t be done within the rigid structure of a larger studio, let alone a Japanese one. If it will all work out nicely and provide me with a stable income remains to be seen, but I have no desire to make the same mistakes I so often see in the industry; mistakes I feel that are responsible for many lackluster games and the annual Christmas company bankruptcy season. I have been very lucky to be working with someone who is, by and large, on the very same page as I am regarding many of the issues discussed below, and indeed on paper it all sounds good and dandy. The real challenge is to stick with it and make it work…

Tools, tools, tools
Somehow it is impossible to convince a studio head or director that time and money spent in advance of development can and will lead to significant savings later on. The feeling is still very much “if I am spending money now, I want something tangible for it NOW”, hence my very stressful experience with industry tools so far. How often have substandard tools slowed down the workflow tremendously? How much time have I wasted re-exporting or fixing perfectly serviceable art because something minor and foreseeable changed in the tool? Let me count the months. I have also seen work on sequels that could have been done in half the time they eventually took if only proper systems and tools were put in place during or, preferably before, the development of the previous titles.
For this reason our first project is proceeding slowly, infuriatingly slow, in fact, but for all the right reasons. By creating a toolset and pipeline that actually makes the flow of work easy, quick and comfortable future development not only on this title but next ones too will go a lot smoother and quicker. Getting a proper tool up and running, though, is no easy task and is taking a good deal of time, time, however, I think we’ll be making up for in the future.

Ambition in different areas
One major reason for the bad tools in big studio development is because each project has to be pushing some envelope, raise the bar or invent new techniques because somehow producers think that is important. Add more bloom, attach normalmaps to every surface, up the polycount on everything, add unique one-off elements in each level, etc., all the things that publishers want, regardless of the fact these more often than not don’t make the game any better. So tools are always changing drastically and can never settle, mature and be turned into something usable. Ambition is a good thing, but is best spent in other areas, like art direction, polishing, usability, playability and that all elusive fun.

Data driven
Listen to Tim Moss’s GDC speech of a few years back regarding the development of God of War. It’s eye opening, if, in retrospect, rather obvious. Data driven systems allow level design to be done by level designers, animation by the animators, etc. So far, and again, especially in Japan, each little aspect of development required at some point some programmer interaction. I make a small change in the UI, for example, I want to be able to see it and tweak it in-game, rather than request a programmer to do that for me. Tim Moss’s speech also talks about their connection between Maya and the engine, with changes exported back to and fro. It sounds, to me at least, wonderful. Using tools or scripting each development discipline should be able to do his or her own work.

Pander to the people, not my ego
There is a lot of ego in our industry; a lot of well-informed people who have their own opinions. Often this leads to interesting and creative results…but not always a success. All too often the customer is forgotten during development in favour of the designs and desires of a few planners or directors. Especially in Japan things like playtesting and market research are quite rare. As an indie it is too easy to become isolated and myopic regarding your own project and thus it is more important than ever to include as many potential customer-types to playtest and give feedback as often as possible. If people don’t like my game, I don’t get money, and I won’t be able to afford booze.

Rigid structures and trust
Even though I am taking on a lot of different roles for this project, I can’t do everything. Luckily I have found someone on the same page as I who can do all the things I can’t (and more). One thing I have always liked in the Japanese development system is the fact a single person stands at the top making all the decisions. What I didn’t like was the inability for these people to delegate. Even areas they had no expertise in didn’t escape their scrutiny and arbitrary change requests. One thing I know is very important is to work with people you can trust to make their own decisions. I do not want to have to worry about certain aspects of the development process but put that responsibility on someone with the expertise and knowledge, knowing it will get done properly. This requires finding the right people, which is hard, but there is no point in hiring someone for their skills and then to not let them use it; something that happens all too often in big studios.

Spare the rod, spoil the customer
DRM is an onerous thing indeed; personally, as a consumer, I hate it with a passion as usually it is the paying customer who enjoys all the pain (boot discs, install limitations, etc.) whereas the pirate has the better experience (NoCD patches, unlimited installations, etc.) especially as some of the more popular methods install all manner of hidden content, often interfering with or breaking drivers and whatnot. I have the greatest respect for developers who put their games out without any DRM whatsoever, however I don’t quite trust the majority of the consumers yet. But then again, I really don’t want paying, loyal customers to suffer. So what is the alternative? Reward paying customers; give away extra free content for registrations, for example. Sure, these things can and will be pirated too, you can never plug that hole a 100%, but as a consumer I know it means a lot to have your loyalty rewarded, not punished. Keeping a good and benevolent relationship with your customer is something that takes time and dedication but is something the smaller independent developer can do better than a huge faceless corporation, and is something that I think will pay dividends in the long run.

All these things are very much pie in the sky thinking, but that doesn’t mean they cannot be goals to strive for. Commercial realities will sooner or later force some changes I might not be comfortable with, and I am not stupid enough to believe these are entirely avoidable. That said, with a good mindset at the start and building up slowly but steadily towards something good is a fairly noble pursuit, even if only for my own mental wealth.

The only real problem I am facing right now, though, is work ethic. Once I had had enough of my break and loafing around the house actually became boring I got to work. However, not having colleagues surrounding me, a clock to stare at all day and, annoyingly, working on things I really enjoy has lead to some stupidly long days focused and dead to the outside world. I’ve already had a few 10 hour days without breakfast or lunch simply because I was on a roll. If I am to survive it is imperative I force myself into a more rigid working hours system. One thing at a time though.

13 comments:

  1. You, sir, have echoed so many of my own sentiments in a fashion that can only be described as eerie.

    Or you can describe it as awesome.

    I look forward to following your blog more closely in the future.

    ReplyDelete
  2. Back when I was working on the initial version of a PS3 / Xbox 360 engine I added support to the game to receive commands from tools over TCP/IP. This proved to be invaluable and nearly every tool developed from that point on used the functionality. The other developers on the team came up with really smart ways to use the system that improved productivity in the tools they developed.

    At that time we had no PC version of the game so this was the fastest way to see changes. Even better, it was exactly as they would appear in the shipping version of the game on the target hardware.

    If you're working on a non-PC platform I highly recommend a similar system. Even on PC it might be useful, depending on your game, so you can remote control some aspects of the game from a separate PC.

    Which reminds me, that remote control was great fun and allowed me to be very mischievous. It was awesome watching my coworker from across the room launch the game on his 360, connecting to it from my PC, and then doing things like spawning a bunch of explosions or turning all fire effects green on their 360. Every single person initially thought there was some strange bug affecting them. I loved watching them try to figure it out as I continued to toy with them in more and more devious ways.

    ReplyDelete
  3. Random comments:

    Don't over engineer your tools. Design what's the most bang for the buck you can get. A tool that does 80% of what you need in 1 month is better than a tool that does 100% in 12 months. (and my experience is that usually when shooting for pie-in-the-sky tools they never actually achieve their goals and have to be scrapped or re-written)

    The other is, if you can find an office, take it. I'm reading into your post that you and I have similar issues. I was a contractor once and worked out of my apartment. I got almost nothing done. I woke up and could go straight from my bed to my desk in my underware but for some reason I could just never get motivated (even if I got dressed and took a shower) Something about all the distractions being there it was easy to procrastinate. It was also depressing to always be "at work" even if I wasn't working since I knew I *should be working*.

    What made all the difference was someone offered my a desk to use at their office, another indie guy. I took him up on the office and my productivity soared! I'm sure all the following had an impact. Separating work from play put me in an "I'm at work, so I work" mode. Being at an office meant I was around others. Getting out of bed, getting dressed, and going to an office probably woke me up. Less distractions at work.

    So, ask around, maybe someone has some space they can loan you. Or heck, maybe you can use a karaoke box for the all day price for $5.

    ReplyDelete
  4. Interesting post, although I didn't fully understand the discussion of tools. I have no experience with art tools, but I can only imagine that much like different compilers they don't take too long to get used to. When you talk about setting up the proper tools, do you mean getting a whole bunch of tools working together correctly? Sorry for the rookie question, even though I only program I'd like to know a bit more about the art side of things.

    Also, you can count on at least one playtester right here! Braiiinnnsss...er, I mean, Gaaaammmmess!

    ReplyDelete
  5. Data driven is not the holy grail though. Yes it sucks if you need a programmer for literally every little change. But wanting a data pipeline that is powerful enough to never need a programmer, or only very rarely, overshoots the target; by definition that data will become code. People call it 'scripting' but if it becomes that powerful, it's really just programming again and now you have a situation where people who are not trained to be programmers, write code. So you get things like people building a flash GUI with no programmer interaction -- and then finding out very late in the project that those screens take up 300 MB on a 360. And all the other things you can expect from poor code like hard to find bugs, mystery crashes, performance problems from scripts hogging resources etc...

    So to echo what Mark said: think about what you need, and optimize for the common 80% case. If you need a programmer for the other 20%, it's still a five-fold-speedup and/or frustration-drop.

    ReplyDelete
  6. Regarding the new lifestyle: In my experience, working from home is way more draining than working in an office. I have been doing it for...6 years (some of that time all 5 workdays, some of it just 2). And it has taken me at least half that time to really get into a groove. The tendency is definitely to lose touch with the real world.

    I try to meet up for breakfast or lunch with colleagues regularly. And colocation working is getting more and more popular in my area - but I have not tried this yet (doing sound stuff makes it more difficult).

    ReplyDelete
  7. I've been working from home for the past few months and though the transition took some time I am now working effectively.

    At first it was easy to fall victim to the distractions but I've managed to block the vast majority of them out while working. For some reason I'm also able to easily mentally separate work time from relaxing-in-my-house time despite the fact I live in a tiny 1K apartment in Tokyo.

    The bigger issue for me is what Nathan touched on - losing touch with the world. Like when Gman worked at home, I can roll out of bed to my desk without bothering to get dressed, work all day, then become tired after a long day of work. Since I'm already at home after work I often just stay at home and relax. That's a lifestyle with low human interaction that I don't think is sustainable for professional development in the game industry.

    ReplyDelete
  8. Thanks for all the advice, guys!
    Yeah, the tool will not be 100% for this first project, nor should it be, but it needs to be able to evolve, without hacking, so that need to be planned into the structure. On top of that, we're focusing quite a bit on the usability of the tool so anybody who comes on board can use it easily and quickly.

    As for work-space, I don't have the choice right now, really, I'm stuck with what I have for the immediate future. So, I just need to be critical with myself and make sure I divide "home time" and "work time". It can be done, I'm sure. At the moment at least I'm erring in favour of the "work time", so it's not that huge an issue.

    ReplyDelete
  9. Independent development seems to be coming along! That's great.

    Best wishes for more of that coming along!

    ReplyDelete