Wednesday, 23 September 2009

Helpful Scripts That Help

One thing that helps a lot when working on environments are handy scripts. I've written a couple that some of us use at work that I thought I'd share and explain a bit about how they save time. We use 3dsmax so these are all macroscripts (except one) that you can bind to a hotkey, saving lots of clicking in the ui by automating some functions and adding some that you couldn't bind to hotkeys. If you want to find more scripts for 3dsmax, Scriptspot is an awesome resource. It's been around for ages and has a huge stack of scripts for almost anything you can think of. Two scripts that I always install wherever I go are Meshtools and CsPolytools, exceptionally useful for modeling, I could live without them but it would be a sad sad world. Now on to the scripts!


Macroscripts go into the 3dsmax\ui\macroscripts folder. You can find these tools under "Urgaffel"

  • urg_backfacecull.mcr - Toggles backface culling on and off for all selected objects. Usefull when you've imported a bunch of objects and you need to flip them. Also unifies the selection so if some objects are toggled  on and some off, this is a quick way of making them all have the same setting.
  • urg_bridge.mcr - This one is pretty neat if I may say so myself. It allows you to bind the Bridge command to a hotkey and will automatically adjust to the sub-object you are using (edge/border/face) and ignore everything else. For some reason the Bridge command isn't in the hotkey list so a co worker wondered if I could write a script which I gladly did.
  • urg_centerpivot.mcr - Does pretty much what it says, it centeres the pivot on all selected objects.
  • urg_originpivot.mcr - Moves the pivot point of selected objects to the origin, 0,0,0. Can be handy when you are exporting props to a game engine and you want the pivot to be on the "ground"
  • urg_resetxconvert.mcr - Resets x-form on all selected objects and then converts them to editable poly. Saves time when you have been moving, scaling and rotating things and just want a quick reset. Serves a similar function to Mayas Freeze transform if I remember correctly.
  • urg_uvwboxmap4.mcr - Applies a 4m x 4m x 4m box mapping modifier to selected polygons and selected objects. This is very very useful when roughing out an environment and you want to slap some textures on to see what it looks like. In most cases, using a 1024 texture for 4m is ok so you get a consistent pixel density as well. With a little bit of tweaking, you can have near final quality uv mapping in no time.
Script... Script

This particular script goes into 3dsmax\scripts\startup. 
  • - The same co worker who I wrote the Bridge script for wanted this little script so that 3dsmax would always start with the same layout and viewport settings. It's a simple script that can be easily adapted to whatever a person would want layout-wise, as long as there is a command for it.
Download the scripts in a tiny zip file here

These are just a few ways that I've tried to save some time by minimizing the ammount of clicking an artist has to do to perform simple, repetitive tasks. Personally I prefer to work with hotkeys since I won't have to hunt around in menus for the tools I need. It lets me keep the focus on the model and have the tools do the work instead of me working to find the tools! I hope you enjoy using them.

The scripts are provided as is and I take no responsibility for anything unexpected that might happen. They've been used in production and we haven't encountered any problems but just in case something does go wrong, please don't sue me :)

Sunday, 13 September 2009

"The Unspoken Truth About Managing Geeks" - Excellent article

A poster over at The ChaosEngine (a forum for people working in the gamesindustry, more about that below) posted a link to this article about managing geekss in IT companies and it is a very good read. It definitely applies to the gamesindustry as well and I've seen this happen in companies were I've worked. Makes me wish managment teams all over would read this and take at least some of it, if not all, to heart. Pretty much everyone I've talked to that have read it agrees that it's pretty much spot on! So, without further ado, here's the article:

The ChaosEngine

The ChaosEngine is a very good forum for people who work in the games industry. It has a private section where you have to prove that you are a developer before you can join it. The way to do this is to send a mail using your work email and if possible, to get another developer already registered on the forum to vouch for you. If you work in the games industry, you could do a lot worse than to join, it's an excellent place to talk about the industry without worrying about rabid fanboys butting in and just have a good time with fellow developers. A lot of information is avaliable there, from art to programming to managment and business advice as well as information about various companies. It also works as a watercooler where you post stupid/fun/cool/useful links and articles, such as the one above!

As an example of what this community has accomplished, the Tim Langdell and Mobigames dispute over the name "Edge" (and if you haven't heard of this, where have you been?). The blog ChaosEdge will hopefully be familiar to you since they've been posting a lot of interseting information regarding the case. It is maintained by a few people from The ChaosEngine and a lot of the stuff that has been dug up on Tim Langdell has been done by the excellent internet sleuths over at the forum. In short, it's a pretty awesome place.

Thursday, 3 September 2009

Attitude and Criticism

One thing you will face as an artist in the games industry is criticism. It's unavoidable. Your co-workers will tear your work apart, your leads will tear your work apart and your art director will tear your work apart. Maybe not devastatingly so, but they will still find things you can improve and undoubtedly you will be told to change things. So the right attitude is pretty important, on both sides if you want to keep the artists at least civil with eachother. Giving and being able to take criticism is probably one of the most important skills to have in order to stay moderately sane when working in this industry since you are working with a group of creative people who (hopefully) want to create the best looking game that they can.

In order to do so we try to help and push eachother to new heights and there will inevitably be occasions when someone will look at your screen and, depending on their social skills, say anything from "That's shit" to "Looks good, but you could chage that bit to this and this bit here to that, could be cool" to "The publisher has changed the date, we need to cut this down". That last one is especially fun. What I'm getting at is that no piece of work survives contact with your co-workers so being able to distance yourself from your work is very important. I'm not saying don't be passionate about what you are doing, you have to be if you want to be good but don't let your work equal your self esteem. I've seen a lot of young (and not so young) artists starting out and as soon as someone points out a flaw get very defensive and try to fob it off with "It's supposed to look like that, his nose was grafted on after a dog bit it off and the doctor was a cross-eyed drunk with parkinsons so he couldn't do it very well so that's why the nose looks like that, be quiet". Which isn't really helping anyone. Of course, you don't have to rely on your co-workers since there are a few simple ways to check your own work. One of them is to just mirror whatever you're working on, either in your tools or by looking at it in a mirror. After a while your brain gets used to the way things are placed in relation to eachother so flipping it will force your brain to re-evaluate the image, helping you spot flaws or maybe if you nudge that bit there a bit to the left it will look even better. Or you can flip it upside down. Another way is to play with colourschemes, again forcing your brain to refresh.

Being able to look at your work with critical eyes and a bit of distance is going to help you in the long run and make you a better artist. Being able to look at other peoples work and point out things that could be better in a nice way is also something that will help you in the long run, especially on the social side. As an example, CGTalk has battled with this for some time, on how to get people to give constructive criticism instead of the usual "AWESOME!!!11" and "That's shit!" and it's just as important, if not more so in a studio. You don't want your co-workers seeing you as an obnoxious idiot so when commenting on peoples work it's a good idea to articulate why something is great/shit and what could change. Preferably at the same time. Criticism is usually absorbed a bit easier if you point out something that is good at the same time as you point out something that is bad. Of course, once you get to know the poeple you work with you will know who you can walk up to and say "Jesus, what the hell did you do to that?!" and have a laugh and who is a bit more sensitive about their work where a more diplomatic approach is needed. I'm not saying you have to be overly nice about it but you do need to be honest. If you give honest criticism and explain why and perhaps think of a few ways it can be improved, people will (hopefully) appreciate it more. When you ask for advice they will hopefully treat you the same way since that is the best way to improve. Being nice to someone can actually do more damage than good in some cases. Tell the truth, but do it in a polite way and you get the best of both worlds. There's no need to put someone down just because they made a mistake, that is not constructive and will only generate ill will which might come back and bite you later.

Speaking of attitudes, having an open mind towards new techniques, tools and programs is really important in my opinion. In this industry the technology is always evolving and there's almost always something new popping up that looks cool and interesting so to dismiss it wihtout giving it a look seems counterproductive to me. On one hand it's easy to get stuck in your ways and not really try to evolve ("it works for me and I'm happy with it") which isn't necessarily a bad thing in itself but it does mean you can get left behind in a way. Take the not so recent transition where we started to use normalmaps. It's been used in games for at least 4-5 years by now but there are still games where the normalmaps are a mess. Wether this is due to lack of knowledge or lack of passion, the result is the same, it looks like crap. Having an interest in learning and sharing the knowledge is as much as anyone can do since you can't actually force anyone to learn new stuff unless they want to (well if you're the lead/AD you can force them...) and it will show that you're trying to improve both yourself and the general quality of work which you will hopefully be encouraged to. There are of course places where this isn't appreciated or might even be actively discouraged but you can't win all the time.

In conclusion, being able to give constructive criticism is very important as is being able to take it on board. Having an attitude of "I'm the greatest thing since sliced bread!" and ignoring what your co-workers are saying isn't going to do you any favours. Being open to knowledge no matter the source and being willing to share is the way to go. This might be a bit obvious to you but from what I've seen and heard, it really isn't that apparent to people that we are evolving as an industry every day, every week. New tools, new ideas and new processes will always come along and complement the old ways. Being able to seize on these and bend them to your will is not a bad thing and it saddens me when people treat them with suspicion. Don't fear the change!

Last of all, I want to apologize for the lack of images. This is supposed to be an art related blog and no images? Shame on me.

-Day after posting edit-

I remembered a few other ways to refresh your brain in regards to your own work. Taking a break if you can is a good way (look at this addendum as an example). A coffee break or ever better, a day or two without looking at it will make you come back to it and see it in a new light. Of course, in the games industry you are usually working to deadlines so being able to leave something alone for a day or two isn't always possible. If you're working on a texture, taking a step back and unfocusing your eyes will draw your attention to areas that stand out. If you're doing a 3d model, assigning it a completely black material will allow you to focus on the silhouette, making it easier to see how your model reads from a distance without any detail to distract the eyes. Team Fortress 2 is worth noting in this since each of the nine classes have distinctly different silhouettes. You can spot which class you're up against from a mile off thanks to the excellent character design. The Australian painter Bob Abrahams has a long list of things you can do to re-evaluate your work on his blog, worth a look if you want to read more about tricking your brain.

Worth noting is that this being the games industry, odds are you'll be revisiting things you've created in the past to give them a bit of extra polish and to optimize the assets. For example, those 16 sided cylinders that seemed a good idea at the time has turned into a problem and needs to be reduced to 6-8 sides. This is again something you'll get used to, things inevitably change. The only thing we as artists can do is to try and do the best job we can with the information we have, accept the changes imposed on us with dignity and then have a rant at the pub after work. In an ideal world we wouldn't have to change our work but then again, changes where you can add more detail and polish isn't always bad. The kind where you have to chop a couple of levels up and mash the pieces into a new one is less fun however but sadly it happens. In the end you'll just have to roll with it (but no one says you have to like it).