I lied about doing no work today. Diablo III servers don't go live for another WHOLE HOUR yet. HOW THE HELL AM I GOING TO WAIT THAT LONG?! Probably by watching the devastatingly beautiful cinematics over and over and over again. I started watching the cinematic "making of" documentary on the collector's edition DVD, but it was spoilerific to the max. I should have probably expected that.
Anyway, here's a small update. Some diffuse texture tweaking, a bit of normal work, and the column mesh in a simple test scene. It probably goes without saying, but this is early days, and the lighting and shaders are miles off what we're aiming for so forgive the clunky work there. But hopefully the detail and overall aesthetic meets our benchmark. Having seen Chris Bennet's awesome WIP monster work, the pressure is on!
I think I'll hold off posting any more updates until we have a floor, ceiling, and at least first pass shaders/lighting in place, otherwise I'm being ultra granular and killing any anticipation we might (hopefully) be generating. And now I'm probably going to stop working because I'm far too anxious to concentrate. Instead, I'll go frantically refresh my Diablo 3 login screen.
Nuff said, miright?
Curse my weird preference for working half asleep. Something to do with logic brain shutting up so creative brain can blah blah blah etc. STFU and go to bed.
Tired noob mistake. I posted the wall with a diffuse texture lacking an entire group of layers and adjustments. I couldn't shake the feeling that something looked very 'murky' with the wall I'd posted, so I finally checked the file and there you go, an entire group hidden in the .PSD. I win the shit out of posting stuff on the Internet :/
I replaced the original image with the corrected version, which has tweaked contrast levels and a final colour grade. Much better. I hope, anyway O_o
Done! Kind of... Still need to create a nice shader, and run some tests to ensure contrast levels work in-game. The specular texture is also done, along with the normal map, but until I have a sexy shader I won't be showing those off. I need to spend a bit of time painting out some errors from the normal bake, too. So really, this asset is freaking MILES from being done :/ But eh, I wanted to make a diary entry!
The game mesh clocks in at 333 polygons. I might have been a leetle beet lean, but eh... it's a wall!
There's no huge slab-of-text philosophical rant to accompany this post. Just self congratulatory back patting. First asset is, more or less, done! James will be glad to see some tangible progress, I'm sure
Allowing (and planning for) time dedicated to pre-production is crucial to planning for a successful production cycle. I know this, and I'm probably fairly safe betting that anyone reading this does too. But here's the thing: Knowing the right way to work, and working in the right way, are two painfully different things. For starters, it requires common sense to connect the two - something I often (sadly) lack. But more than just common sense, it requires planning. As in... You have to plan to do some planning. To improve your plans. Which is probably dangerously close to being meta, or at least recursive, threatening to collapse this post into a grammatically incorrect singularity that'll eat up the Internet.
But despite the questionable scientific risks, it's worth repeating: You have to plan to allow time for planning.
This isn't a personal maxim, but a universal truth of creative endeavour. In fact, it's so universally accepted that it probably seems pointlessly trite to discuss it at all. But the thing is, in that initial rush of enthusiasm when the ideas are all jostling around in your head, bursting your brain-meats for a creative outlet, it's far too easy to forego the boring planning stuff in favour of diving head first into production like it's an Olympic event - the kind where they fire a starting pistol and then release the zombies - and you're driven to frothing, furious abandon by an anxious need to get shit done for people to consume.
This shit is like rabies for independent game developers. I want to get my creative bits all up in your grill, and time spent doing anything but producing makes the act of production feel so imminently urgent that pre-production is like a horrible dream where your feet are lead and your muscles are rubber bands and you can only stumble forward in hopeless desperation.
But (and this goes without saying twice but I'll say it again anyway) good pre-production is critical to maximising your chances for successful completion of a project.
Fail to plan, plan to fail. Word.
With adequate pre-production, you gain (in no particular order, as all are equally relevant):
- The creative confidence afforded by research and development.
- The workflow and pipeline benefits gained from procedure validation and prototyping.
- A pragmatic measure of your capabilities versus your creative vision, and some capacity to estimate a realistic schedule.
- A healthy team psych awarded through consensus and compromise.
I'm going to blabber on a bit about each of these points because gigantic walls of text make me feel like my blog is full of helpful information, versus quasi-intellectual rambling. Bare with me, or just skip to the end where I momentarily bitch about the pains of generating good normal maps as justification for this entire diary entry.
There are immediate and immense benefits to be gained from investing time in R&D, most notably in gathering reference and cataloguing resources. This provides you with a groundwork from which your team can leverage the experience of others in your own production, saving valuable time, and avoiding the mistakes that someone else has already paid for. Working blind is counter-productive. Worse: It's just plain stupid. Unless of course the topic you're dealing with is something with which you are so intimately familiar that you are the penultimate authority on the subject.
Taking time to research your tasks and goals (indeed, every little frightening facet of your product from pushing that first pixel to shipping the 20th anniversary edition) is ultimately the best investment you can make towards releasing a successful product. Or releasing any product. Period.
So, before you start a task you should take the time to make sure that everything you're doing:
- Is the right thing to do to achieve the ends you wish to achieve.
- Is backed up with an enormously comprehensive collection of reference material from which to draw influence and information.
Workflow & Pipeline
Unless you're gifted with psychic precognition, it's only by actually putting stuff into action that you can identify the roadblocks in your way. So dedicating some time to testing out your creative processes (particularly when you're working collaboratively and relying on an intricate relationship between your work and that of your team mates) is the best way to identify and pro-actively correct the problems you'll inevitably face. Procedure validation and prototyping help ensure your workflow and pipeline are conducive to the results you're aiming for within the proposed schedule.
The average non-super-human should be prepared to be randomly (probably quite frustratingly) stalled throughout production by unanticipated challenges. But you can significantly reduce the occurance of these challenges by testing your theories, techniques, practices and best-laid-plans ahead of the crunch.
One of the most common mistakes that people make in the creative industries - and we make this mistake even when we're dazzlingly aware that we're prone to making this mistake - is grossly underestimating the time required to complete a task. I learned in my professional career to estimate a realistic duration, considering all possible factors (both internal and external). And then immediately double it.
At the best of times, it was a strategy which left me with a few spare hours I could use to make up for the worst of times.
Shooting for the moon is a noble thing. More than that: It's an aspirational thing. Every soul on this Earth who aims too high should be damn well celebrated for it, for without these folk and their reckless disregard for rationality and realistic goals, the sum of humanity would be much less than it is. By all means, you should aim to raise that bar, and lift the whole world along with it. Design your FPSSHMMORPG real-time open-world procedurally generated infinite zombie space explorer, and go for it. The worst that could happen is you'll fail. Big fucking deal. Because even then you've just learned some incredibly important stuff, such as just how much work goes into making a video game, how frightfully untameable the production beast can be, and how to set realistic goals for your next project. And then of course you might not fail. Don't prematurely impose artificial limitations on your dreams.
But there is a place for pragmatism. If your goal is to produce a completed game and make some moneys, you should probably set aside some time for unit testing to ensure that your programming skills, artistic talents, technical proficiency, skills budget, creative aspirations, intended workflow and pipeline, and proposed time frame all align like some staggeringly beautiful celestial event that crazy people will see as a sign of the apocalypse.
Healthy Team Psych
This really does go without saying. If the idea of cultivating a good, happy, healthy team spirit seems alien to you, I suspect you're either a poor robotic facsimile of a human being, or you're corporate*. Group discussion time allows you to co-plan your outcomes: Individuals on your team can reach agreement on your collaborative expectations, and momentum can be created from clearly defined shared goals. This kind of stuff is priceless, and starting a project without this clarity is a sure-fire way to make it crash and burn.
In a world where geography is decreasingly important it's not unusual to find yourself working with folk in different timezones, so maintaining contact might require conscious effort, and you should enforce it throughout the duration of your project. But the initial pre-production meet-ups are where you will all clearly define your expectation from each other and your willingness to commit to them. By ensuring you're all on the same page, you minimise the chances of group implosion down the track when the honeymoon period is over.
Of course, making a game is not an entirely scientific process, and all of our best-laid-plans will invariably give way to production deadlines, unexpected interruptions from that annoying life thing that goes on around us, and our own creative tides moving our goals and targets about on that infinite ocean of possibility. A fluid production is a good thing: In my experience many of the best ideas come from spontaneity, not planning. But even that requires foresight, if just in the loose sense of being aware that feature creep, variations in scope, and changing desires will all likely interfere with your neatly bulleted schedule. And that's okay, because that's part of the joy of not being a banker or a stock broker or an accountant. Urgh.
The important point to be made here is that by being aware of all of these possibilities potentially working against you, and putting aside some time at the start of your production to prepare a cooperative plan of attack and shore up your production strategies, will much better equip you to handle the unexpected.
So if you made it this far, and your eyes are not bleeding from the text (OH MY GOD THE TEXT) then you might remember that I mentioned something about normal maps?
I don't do a lot of 3D stuff other than lighting. I think it says over in the little "About Me" bit on the side of my blog that I'm a lighting specialist. That means I spend about 15 minutes a day placing digital light sources, and 14 hours waiting for test renders. There's not a lot of modelling. So it would make perfect sense to anyone versed in production practice that some guy who has never done a particular task before should set aside some time learning the task before attempting to WTFPWN it.
Unfortunately, I fell victim to the rush of new project euphoria.
So I made the mistake of skipping the unit tests and diving right into sculpting unwieldy high resolution mesh on my uninspiring 3Gb-RAM PC and attempting to design a good normal-baking workflow with geometry that wanted to kill my computer. A process that - with better planning - would have taken me a couple of hours ended up taking me two days. It's all okay now: My workflow has improved, and I have solved a number of normal mapping issues which were unexpectedly difficult to solve via Google (and I'll bullet them below for reference), but more importantly I'll be sure to unit test every addition to my workflow and pipeline in future.
So the points I've got for normal baking, in what will surely be the shortest tutorial with the longest introduction on the Internet:
On Using XNormal
- Export to XNormal using XNormal's proprietary format plugin to ensure smoothing groups arrive intact. For some reason, XNormal doesn't give a shit what is and is not smoothed when using .OBJ or .FBX formats.
- Where you have used hard edges on your low-resolution mesh, separate the UVs along those edges to avoid filtering seams. A couple of pixels of UV space will do.
And that's it. Two days to arrive at that result. PRE-PRODUCTION, PEOPLE. OMG.
* Possibly the same thing.
For the last 12 months, I've been dabbling in game development with Unity. While I had produced a few small, playable test projects, I hadn't really progressed anything beyond the prototype stage. Partly, this was due to a reluctance to spend my time producing art assets; a symptom of professional burn out. But it was also the scope of such things. An awful lot of work goes into creating even the most rudimentary of games (as I've discovered over the last year) and my predisposition towards working alone would put the entirety of that monumental task in my path.
Unless of course, I stopped working on my own.
Here's where I insert an awkward segue into introducing friends and ex-colleagues, James Podesta (aka. MadPuppet) and Chris Bennett (aka. Pale-Face). We each have some shared history of varying degrees of collaboration and infuriating circumstances. I'm going to share some of this on my blog for no reason other than to tell stories (as I'm wont to do).
I studied with Chris Bennett at Queensland University of Technology in a different decade, majoring in 3D Animation back when no one seemed really sure what it was. We both landed the same gig out of college: The children's animated television series Animalia at the unfortunately ill-fated visual effects studio, Photon VFX.
Animalia was a pretty exciting project for me, as it represented vindication for years of broke-ass study and forcing my steadfastly resilient partner to co-survive on my disastrous attempts at edible cooked produce. Photon VFX wasn't exactly the smoothest introduction to the industry, but it was certainly an education, and to this day I remain incredibly proud of the sheer volume of work that us absolute noobs managed to produce.
From there, the work got less chaotic, and luckily for my partner, so did my cooking.
Chris and I parted ways, and then after a couple of smaller visual effects projects (or small parts on large projects, such as Baz Luhrmann's Australia on which my claim to fame is - with all seriousness - a tortured house fly) I started to feel that I wanted to try the games industry for a while. I had three good friends working in games at the time: Travis Draper, Iain Danvers, and Kieran O'Sullivan (who is currently working on Farcry 3 with a villain who looks like our love child, though to be fair it's much more him than me - the genes are strong in that one). They convinced me without much effort that a leap would be worth it.
I've always loved games. I'm a gamer. That's not a term to describe my leisure activities, but rather a distinct personal definition: I live and breathe video games, and I have since my parents purchased an Atari 2600 one Christmas in a different century, and I immediately stopped going outside. Ever. I believe this caused my parents some concern.
Now, I'm an almost-34 year old with video game tattoos and haircuts and a need to spend the rest of my life inspiring other people to be just as hopelessly enamoured with our craft. And I don't think my parents are any less worried.
So having experienced a small part of the visual effect industry, I left screen and started working in games at the unfortunately ill-fated Krome Studios (this pattern, I hope, had nothing to do with me). I came in at the end of a project, and Chris had just finished up another film gig at the time, so I pushed him to apply. Needless to say, his awesome skill set was in immediate demand, and a couple of weeks after I started at Krome, Chris did too. Said near-completed project was shipped, and then after some interim floundering (Krome's CEO preferred to avoid firing everyone between projects - an impressively altruistic philosophy that probably didn't help in the long run) I ended up on another project at Krome with our lead programmer being none other than James Podesta.
It's interesting to note here that apparently everyone was tensed for James and I to immediately clash and start throwing chairs at one another. It's interesting because the opposite kind of happened: James is a guy who knows what he wants to do and how it should be done, and I'm a guy who knows what I want to do and how it should be done, and it is possibly just sheer luck, but we both wanted to do the same things in exactly the same ways. And so did everyone else on the team, so ultimately that project we were both part of was, for a time, almost perfect. It seemed to be this rare collision of good ideas and great execution by a team of eclectic individuals who all instinctively shared the same creative vision.
Then Krome made a farting-like sound, and we were all jobless.
Fast forward to a month or so ago, and either I contacted James or James contacted me, suggesting some kind of collaboration. We threw around ideas for a while, trying to settle on something which suited our particular skill sets, interests, and available time frames, and eventually settled on a contemporary dungeon-crawler game of the Eye of the Beholder vein. Getting Chris Bennett on board was (luckily for us) just an email or two later. After all, it's a genre we all love, and has recently been proven to retain some modern playability by the makers of the awesome Legend of Grimrock.
We'd like to expand on that with our own take on the classic genre. But we're also bound by the usual responsibilities plaguing independent game developers: Awful stuff like feeding your loved ones and paying for those horrible real-estate folk to stop threatening to kick you out of your house.
So, inspired by Epona Schweer and her brilliant business advice over at IndieBits.com, we came up with an experimental take on funding and monetization that with any luck will help us see our game through to fruition (hold on to your hats):
We will sell the assets we create for our dungeon-crawler game as asset packs on the Unity store. This includes environment art, monsters (rigged and animated), spell effects, items, GUI art, and all the code to drive it all. There will be enough content in these packs for anyone to kick start production on their own dungeon-crawler game, adapt to suit another RPG-like genre, or simply dissect for the purposes of education or re-textualisation.
In fact, it's entirely probable that upon completion of our game, we will have released enough content for anyone to make their own dungeon crawler game from the ground up.
It is our hope that these assets, packaged under the moniker of The Dungeon Master's Toolkit, will serve to at least partially fund the development of our game: As a new level is completed, the content for that level will be zipped up and sent off to the Unity store. We're still discussing price points, and figuring out how to package assets to be most appealing to those who don't necessarily want all of the content, but I feel we might inevitably have to wing it and adjust our strategies as we go.
I'm pretty excited about the whole thing. Not just the game project or The Dungeon Master's Toolkit - both of which press a lot of my nostalgia buttons - but also the collaboration. I tend to be a bit of a loner, but so far I've been more productive on this project than I have felt on anything in a while. There's something nice about sharing the weight of a project's scope among friends. And the work James and Chris are producing is challenging me to be better at what I do. Fingers crossed that this experiment, and the game behind it, work out like we hope they will.
More meaty stuff* to come.
* Not a euphemism. I seem to have to write this a lot.