I recently performed a lateral shift from visual designer/shader artist at 17-BIT to Director of Partnerships for Shinra Technologies, Inc. Things are very interesting. I don’t sleep as much I used to. More to come.
I recently performed a lateral shift from visual designer/shader artist at 17-BIT to Director of Partnerships for Shinra Technologies, Inc. Things are very interesting. I don’t sleep as much I used to. More to come.
Earlier this year I got the opportunity to do a commercial for the game I’d been working on, Skulls of the Shogun: Bone-A-Fide Edition. For previous trailers we’d done full animation consisting of sequences exported from our game engine and composited with parallax-heavy 3D backgrounds inside After Effects. For the commercial I wanted to do a throwback to deliciously terrible Eighties video game ads, where something would explode out of the television, and everyone would start freaking out like they were on LSD. My boss Jake had absolutely no problem with this, so I wrote a script and made storyboards where the Shogun exploded out of a TV and sucked the kids into the Samurai Afterlife, where they’d start slaughtering everyone and eating their skulls.
I had run some tests combining 2D animated footage with live-action plates earlier in the project, and got up to date with motion tracking inside After Effects. For reference I watched a bunch of films that did the same (specifically Roger Rabbit and Space Jam, both of which use really expensive tone mapping passes on their characters and use realistic shadows).
We work in a warehouse, and were able to quickly convert the studio into a soundstage. Our producer Paul installed black plastic curtains on rails to eliminate all outside light. Unfortunately, we were located right next to a noisy road so we’d have to loop all our dialogue later, but this wasn’t a huge issue.
Talent on the set.
For lighting, we went cheap, with Home Depot worklamps combined with the brighest CFLs we could find, diffused via duct-taped IKEA cloth storage boxes. We combined this with a pair of standard worklight halogen sets – we weren’t able to properly diffuse these, and wound up bouncing the light off the ceiling and wall (which was, fortunately, painted in a reflective white). These burned extremely hot, so we had to turn them off between shots (and keep bringing our talent water). After finishing the shots on the living room set, the kids took a break as we set up the greenscreen. Our set only had two walls, so we shot the reverse shots later as traveling mattes.
Sample Traveling Matte.
For cameras, we used a single Canon T2i running Magic Lantern firmware, shooting between ISO 640 and ISO 800 depending on the shot, shooting at 29.97fps at 1/60 at 1080p. For greenscreen footage, we concentrated every light we had on the scene, and had to push the ISO up to 1250 for faster exposure (this is critical for reducing motion blur in fast-action scenes, which most keyers have problems with).
“Now scream like ‘aaarghhh!'”
By the way, our talent was fantastic. The kids were great – and none of them had acted before. They were a lot younger than we had originally thought they’d be, and we had one last-minute replacement after one of the kids saw our setup and freaked out (it did not help that our warehouse looked like a dungeon). I kept things moving as quickly as possible, walking the kids through each shot and explaining what was going on, since almost every shot had some imaginary component to it. We finished in about two hours – the kids were a little tired, but still bouncy. Mission accomplished.
Next up was the hard part, animation and post. To start, all footage was run through the Neat Video plugin for denoise/grain reduction/sharpening, and then dumped out as a PNG image sequence for After Effects.
In the opening sequence, the kids are playing what I can only describe as the dumbest military shooter ever. We shot this sequence ahead of time in the back hallway of our office, using whatever props we had on hand and lighting it in as gaudy a fashion as possible. (My boss Jake plays the bad guy, while QA guys Ben & Isaac and Skulls programmer Brett stand in as the tactical team.)
For the 2D animated elements, I spent two days porting all of our characters from our slightly clunky custom animation tool to After Effects just to speed up our animation workflow, and handed them off to our animation guru Callen Wagner. From here, I just comped them in, and added effects…lots of effects.
For each animated element I’d create a fake rim light/tone map by duplicating the element, filling it in black, and then using the Bevel Alpha effect to make the edges pop. Then I’d slightly blur and offset it, and make the layer Additive.
Shadows were similarly faked by filling the layer in black and spinning it around in 3D onto the ground. I could have used real lights, but this was much quicker and saved rendering time. Roto Mask was used extensively for foreground/occluding elements; fortunately, the denoised plates were clean enough that this went very quickly. For added effect and to accentuate any camera Z-moves, multi-layered smoke and dust particles were added.
For keying, we used Keylight from the Foundry, which provided very, very clean keys and dealt very well with some of the remaining shadows in the background (our greenscreen had not been ironed ahead of time, and had a few worrisome wrinkles). The kids’ live-action heads were simply dropped into existing (headless) characters and were tracked by hand, and all scenes were composited in standard After Effects 3D.
Typical scene setup with accommodations for a 90-degree camera spin.
To create the Skulls look, we usually have a flat 3D plane for the ground, which is covered by forward-facing deco elements (rocks, grass, etc). The camera is allowed to track in and out on the Z axis and “strafe” left and right, but we rarely rotate the camera in any direction, which instantly breaks the look. Whenever we do something splashy like a 90-degree camera spin, it’s carefully orchestrated (read: fudged) and we usually turn on motion blur to hide the effect breaking.
Dialogue was looped later – we recorded with a Rode microphone and a TASCAM recorder, and the voiceover artist (and audiobook superstar Chet Williamson) sent us the final take from his studio. Oddly, directing the kids and getting them to loop their lines correctly was much harder than directing them on-set. Music and sound effects were taken from in-game assets, with quite a few samples purchased from the SoundSnap library. (Oh yeah, I do the voice of the Shogun — it’s just dropped a few octaves.)
Maya was only used for the final shot. Callen rigged an existing skeleton model in about a day, and scaled the parts to match the kids. He hand-animated thescene, and recreated set elements for shadow casting; the final Maya rendering consisted of three passes for diffuse, shadows, and AO.
Actually finding the “look” for the skeleton kids took over a week of tweaking. Originally the skeletons were more realistic, with scorch marks under each one where the lightning had hit, and realistic black smoke coming off their bodies. We all agreed this was pretty morbid/creepy and tried a toon-shaded version in response, which looked completely awful; then we shifted their colors to green, which was more in line with the in-game look, but then they looked like plastic Halloween skeletons. We added a glow, which looked better but not great. Finally, on a whim I knocked back the opacity on the diffuse layer to 66%, and everyone was like “Oh! That’s great!”
“Now pretend you’re eating an apple, like nom nom nom nom!”
In the end we were really happy with the final spot, which took about 1.5 man-months of production (one full month from myself, and a half-month from our animator). Even happier were the kids, who went absolutely crazy when they saw the ad, and kept forcing us to play it over and over as they laughed hysterically. Check it out and let us know what you think.
“Now Eat Their Skulls!”
1m42s, 1080p @ 29.97fps
Production time: 1.5 man-months (1 editor/compositor, 1 animator)
Hardware: Canon T2i, Rode VideoMic, Canon HV20 (reference only), homemade counterweight stabilizer
Software: After Effects, Photoshop, Vegas, Audition, Audacity, Neat Video, Keylight, Color Finesse, Custom Skulls Animation Editor
So here’s what I’ve been working on lately. We found out (with 2 weeks notice) that we’d be showing off our game at E3, and needed a trailer to go live ASAP. I took some deep breaths, called up our animator and our voiceover artist to confirm they’d be available for some one-off anims and pickups, and started doing layouts and boards for a minute-thirty trailer:
The cinematic (non-gameplay) footage at the beginning comes from the extended opening sequence, which was finished back in March and hasn’t been shown yet. I had to lay out and composite a handful of new shots (the “Scully” narrator shots, the infantry/archer/cavalry shots, and the final “expendable” shot), but fortunately we’ve got a huge library of assets that allow me to do speedy scene assembly, and I just recycled some particles/FX/post effects I’d made back in March.
Camera blocking + simple simulation inside After Effects
I wound up animating Scully, and animator extraordinaire Callen Wagner handled everything else. (Scully is also voiced by my dad Chet, who happens to make a living doing voiceover and audiobook work.)
Our workflow is pretty simple. We export .PNG sequences out of our custom animation editor, I import those into After Effects, do all comp / FX work there, and export each shot as a PNG sequence. I edit that footage and do all SFX/music work inside Vegas, which is my new favorite NLE — I can edit super fast with it and it likes working with weird, fiddly formats like FRAPS.
Final version of the opening title sequence inside Vegas.
The game’s still slated to ship alongside Windows 8 — and no, I don’t know when that’s coming out!
Quick update: In January I left Square-Enix, ending a very long run with a bunch of terrific people. I’m now working with Jake Kazdal at Haunted Temple Studios in SoDo — we’re located right next to Safeco Field. My first goal is to help Jake ship his Xbox Live Arcade game Skulls of the Shogun, adding all the fixin’s and polish that I possibly can.
The other awesome thing about Haunted Temple’s location is that they’re a 30-second drive from Seattle Gracie Barra, which lets me get my Brazilian Jujitsu fix seven days a week; I just started in February and I’m trying to train on a daily basis because I’ve got a lot of catching up to do! The people there are a wonderful bunch of guys and girls and I highly recommend it to anyone with even a passing interest in grappling.
Back to work — hopefully I’ll have something awesome to show from Skulls of the Shogun by the end of the month!
So let’s continue the story: I was about to graduate from a university in Tokyo, and I thought I had everything nailed down for the future. I had been doing some part-time freelance translation / voice casting for a small company, and it looked like I’d be able to get a work visa through them. Long story short: they flaked out on me with 2 weeks until my student visa expired.
At this point, I was in a panic. I had no leads for future employment, my tiny dorm room was packed full of stuff that I had to get rid of, and I had to exit the country in 14 days.
After a brief freakout I pulled myself together and surveyed my dorm room. First thing to get rid of: The TV. It costs money to dispose of pretty much anything in Japan, so it’s best to hand off stuff to your friends as opposed to pay $40 for the government to take it. I called up my friend Hiroshi, who worked at a small game company for whom I’d done some English checking and playtesting.
He picked up on the first ring. I told him that I had to get out of Japan and asked him if he wanted my TV.
Hiroshi: “Wait, why are you leaving Japan?”
Me: “The guy I was working for wouldn’t sponsor my work visa. I’ve gotta get out of here in 2 weeks.”
Hiroshi: “You need to come to our office right now. We can hire you.”
(Another pause as my head exploded)
Me: “Hire me to do WHAT?”
Hiroshi: “I dunno, teach us English or something. Just come here, okay?”
I threw on my backpack and hauled ass out the door, breaking several land-speed records sprinting to the train station. My stomach twisted in non-euclidean ways as I tried figuring out whether or not Hiroshi was serious or not, and how this had the potential to let me remain in Japan and get my first Japanese game industry job, despite a clear lack of experience. I started brainstorming whatever useful abilities I had, along with how I could pitch myself in the most important job interview in my life, which was about to happen in 45 minutes.
It turned out that I shouldn’t have worried. The company had been looking for an English speaker, as there weren’t any native speakers on staff for quick communication with the American publisher. I had a quick chat with the company president, we figured out the legal steps we’d need to take in order to procure a working visa, and I was hired on the spot as a planner. (The “planner” position is a weird one, and a predominantly Japanese concept. Planners do pretty much anything regarding to game design — writing documents, designing levels, and anything that doesn’t involve programming the game or working in Maya.)
I showed up the next day, bright-eyed and bushy-tailed. I’d be working with about 15 other guys — no outsourcing here! — on an Xbox launch game that was based on a . I had my very own desk (made out of plastic) and a folding chair, and was seated next to the director, Hiroshi. I had my own PC running Windows NT, a copy of Visio for creating visual design documents, and a copy of Softimage. (No, not XSI — the clunky one with the super-obtuse interface.) This was my first full-time game industry job, and I was ready to prove myself. Would I succeed or go face-first into the dirt? More on that later! And don’t look at my resume…that’s cheating.
In my last post, I talked about the awesome experience I had at Kansai Gaidai University in Osaka, and what a fantastic foreign exchange program they had. Midway through the second semester, I realized that Japan was a happening place to be — I was getting plenty of work writing for IGN Dreamcast and C|Net’s Gamecenter (remember, this is back in 1999-2000 right before the Internet bubble exploded). After a year of dynamite fun in Japan, returning to rural Pennsylvania for another year to finish my college degree seemed, well, pretty crappy. My question was: How can I extend my stay here?
The answer lies within! Note the PaRappa the Rapper keychain attached to my bag.
A few months before the end of the second semester at Kansai Gaidai, I figured it all out: I would transfer my credits from Indiana University of Pennsylvania to Temple University Japan, which had a Tokyo branch. I got in contact with the school, which was incredibly friendly and accommodating–during my trip to Tokyo Game Show I took a day to visit the campus, where we sat down and laid out a road map that would let me graduate in 3 semesters, while changing my major from Communications Media to Asian Studies to speed things up.
Things got rolling quickly. I got all of the college paperwork ready, prepared to change my visa from Student to Cultural Studies (Temple isn’t an official Japanese school because of squirrely government nonsense) and started packing for Tokyo. Temple had a dorm in Tokyo, so I had everything shipped there ahead of time. After the final Kansai Gaidai graduation ceremony, I bade my tearful goodbyes, then got the bullet train to Tokyo the very next day so I could make the start of the summer session. I’d be taking five intensive-study classes during the short summer semester, so there wouldn’t be much time for anything else, much less exploring Tokyo! Worse yet, I knew a total of one person in Tokyo, my friend Alissa Takaya (who was working 24-hour crunch sessions — including weekends! — at a small developer called Anchor Inc.).
(Side note: At the time I attended, Temple University Japan was not an accredited Japanese school, meaning you coudln’t get an official Student visa, nor could you apply for the student discount when purchasing your commuter pass. I was told that no foreign schools were accredited because if they approved of an American school, then they’d have to approve of all the Korean schools too. Some Tokyo people will speak ill of Temple grads because of this lack of Japanese recognition, but they can stuff it.)
Temple University, which is basically a converted office building in Minami-Azabu, doesn’t have any on-campus housing, so students stayed in one of several “inexpensive” ($700 a month) dorms a 40-minute train ride away (not at all terrible). My dorm was located in Toda-shi, which is in Saitama, north of Tokyo — my actual train stop was Nishi-kawaguchi, which has a reputation as the Tokyo area’s biggest red-light district! In all honesty, though, a few blocks away from the station the hostess clubs and “soaplands” gave way to beautiful parks and lovely rural surroundings, so I was never one to complain.
Kyoritsu Dormy (sic) Nishikawaguchi 2. Ever-so-tiny rooms, but at least they had a sink.
The dorm room was tiny — 122 square feet — and the showers were shared, but there was a sink in each room, which made things more bearable. There was also a gigantic bathtub — maybe you could fit 10 people in it — that was always empty when I’d roll down to the public bath area at 9AM. There was also an air conditioner in each room, which was greatly appreciated — though the dorm manager always questioned the astronomical electricity bill I’d have every month (multiple PCs, game consoles, and the air conditioner running full blast).
The majority of the people in the dorm were students or workers from out of town. (I can’t imagine leaving your family behind to live in a tiny room five days a week, but that’s just me.) This dorm was guys-only and was relatively quiet. The manager and his wife, who lived downstairs, cooked breakfast and dinner daily, which was more than filling enough for a poor student.
Each morning, I’d grab my free breakfast, unfold my Razor kickboard — I assure you, these were all the rage back in 2000 and could shave twenty minutes off my commute — and head off to class.
TUJ professor Jeff Kingston, Ph.D., an all-around great guy. You’ve probably seen him on CNN or NBC commenting on Japanese stuff. Here he’s making fun of one of my boneheaded theories on the whiteboard: “Williamson Thesis: 1.) Masochistic impulses of Koreans who sought to become even more imposed on culturally, etc. 2.) Effective brainwashing deceived by Japanese duplicity.”
Temple was great. The staff were all Asian Studies specialists, and I took some amazing courses in Japanese history and Chinese poetry (!), taught by people who were passionate about their stuff. Also indescribably fantastic were the film courses, taught by none other than Donald Richie himself; he would roll in, we’d watch an Ozu movie, and then he’d go into exquisite detail about the films…many of which he was on the set of. He was 77 years young when he taught my class, and sharp as a tack. I am certain he has many, many years left — I remember randomly running into him hanging out in Shibuya. What a guy.
Field trip to Oshima Island, home of GOJIRA!!!
The TUJ student body was diverse. Some students were there on a one-semester visit from other schools, while others were bilingual Japanese kids; many of them had grown up attending international schools. The actual graduating class was very small. I am amazed by anyone who goes for a challenging college degree in a language other than their native tongue. The only bummer was that I couldn’t keep taking Japanese language classes, as I had to hit the required courses in order for me to graduate on time in three semesters.
Can you spot Colin?
Though my schedule was filled with classes, I managed to start exploring Tokyo and making some lifelong friends. And after three genuinely awesome semesters, it was graduation time. We put on our robes — a ceremonial garb which baffled a lot of the Japanese students — and had the ceremony in a Japanese hotel’s ballroom. I received my diploma, and stepped through the door into unemployment, and the realization that my visa was about to expire in a week with no future plans. More on that next!
Studying at Kansai Gaidai University was flat-out awesome. The coursework was challenging, but the teachers gave you enough slack to take some time off and enjoy the wonders of foreign exchange. They hooked me up with a great, loving homestay family and a good conversation partner to meet with a few times a week. The non-Japanese language courses were also varied and insightful — I especially remember the classes on Gender Roles in Modern Japan (Hester), Death in East Asian Society (Kenney), and the film class where we blasted through tons of Kurosawa movies in the university theatre.
The library was also a majestic building full of great research materials. The only weird thing was that you had to run your university ID through a special reader to get in. Maybe it was to keep out the homeless people. Of which there were none.
There was great food, too! Foreigner-friendly delicacies like hamburg steak and curry rice were plentiful and cheap at the cafeteria, and the popular hangout was a place called Sakedojo, where you could get plastered for cheap with other foreign students in an eating environment that hadn’t passed health inspections since 1923. While everything was covered in a horrifying layer of dirt and grime, the chicken katsu with the top secret “dojo sauce” always tasted awesome, and the girl waitresses were hot.
One thing you might want to be careful about is clubs and activities. Some Japanese university clubs have lunatic schedules, meeting once or twice every day, including weekends. While this is great if you want to become some kind of kenpo monster, you might want to do what I did and take a club that only meets twice a week. My friend Evil Colin took shodo (Japanese calligraphy) and I went for Judo at first but then switched to Ballroom Dancing for obvious reasons.
After class we’d hop on the train and head to Osaka to places like Den-Den Town, which was a veritable smorgasbord of used games, CDs, and various geek stuff that kept us shopping until the shops closed down at 7pm. (I still believe that Den-Den is ten times better than Akihabara.)
One side effect of being in Japan and living with a host family: I was no longer fat. I entered Japan at roughly 230 pounds, and after a few months I realized that none of my clothes fit. The combination of eating healthy home-cooked food, walking to school every day, and not putting crap like Taco Bell in my body had turned me skinny. I could actually run kind of fast. And I could do a pull-up!!! Wonder of wonders.
After a few months of this pure concentrated awesome experience, I started thinking “HMM, I really should think about spending another semester here.” All of my friends shared my sentiment, and we all applied for a second semester so we could spend a full year abroad. The paperwork was easy-peasy and we all headed back home for Christmas, or stuck around Osaka for the holiday season (my friend Jason has some amazing stories about this one-month vacation). I was in full Japanophile mode, I was missing my Japanese girlfriend, and if I remember correctly was pretty unpleasant and down on America. I thank my parents for being so patient with me that holiday season.
So I headed back for another round of Kansai Gaidai fun. The second semester was even better than the first, since we knew the ropes really well and had established incredibly strong friendships. As the semester came to a close, we realized that this amazing part of our lives was going to wrap and we’d all be going back to the United States.
…or would we!?
To be continued…
DM-Tokyotrainwreck is basically the first time I’ve worked in 3D or level design since I doofed around with the Doom editor back in 1996. I’m pretty happy with the results, and was surprised how easy it was to get up and running in UnrealEd. I attribute a lot of that to the fact that Epic has amazing free documentation, and the supportive modding community that is always willing to lend a helping hand or give advice. I was super lucky in that I had the help of my friend Rob who did custom modeling and shaders galore, and my other friend Satoko who did some really immaculate texture work. Near the end I had my friend Kay record some announcer dialogue for me in Japanese and paint some posters, my friend Nick from Go Studios contributed extra signage, and finally my friend Alan from Petit Panda Extreme did an interactive soundtrack. Here is a video I cut together.
It wasn’t done in time for the Make Something Unreal contest, but we did manage to submit an earlier version of it to the IGDA Level Design Contest and won 3rd place.
Finished level vs. Original reference shot
CONCEPTION & TEST
I always went home through Shinjuku Station’s Oedo Line, which is one of the deepest subway stations in Japan. Whenever I’d go home I’d have to go through 4 sets of stairs and elevators. Some parts of the station were newer than others, so there were always interesting transitions from the older, gritty 1980’s architecture and surfacing into a cleaner, late-90’s look. I thought that this would be a quick and dirty level to crank out, but once we started creating our own content, development stretched into about a year of on-again, off-again work in our spare time.
To start, I took a few reference photos, got some maps of the real-life station and started building in BSP. After a day or two I had managed to build out the base Shinjuku subway line. I threw in some pathnodes and weapons and started playing.
No surprise, it sucked! Real-life layouts again proved to be uninteresting for deathmatch. Disappointed, I started punching out walls and honeycombing in tunnels, taking a lot of ideas from Hourences’s tutorials. The general rule of thumb is that each room should have at least two exits and never be a “trap.” I added in some one-way transitions (falling through ceilings) and decided the defining part of the level would be a train that collapsed through a ceiling, which could be used for traversal.
Another requirement was player-activated traps and environmental hazards. I love Unreal Tournament maps like DM-Pressure where you could trap someone else in a room and make them explode. There are three main hazard areas:
I am also a big fan of underground structures like the Tokyo G-Cans drainage system, but this was executed so well in Mirror’s Edge that I figured I’d try something else. I wound up making a big wind tunnel that lifts you up to more weapons with a GravityVolume.
I did a lot of testing early on; I would cook a PS3 version and bring it to friends’ houses for them to try. I noticed the most common problem was people going up the down escalators or vice-versa, so Rob added a glowing arrow at the base of every escalator indicating which way to go.
The biggest problem was communicating how to use switches. In UT3 there is no Use button. You could jam your body against a button Quake-style, but that seemed sloppy and imprecise, especially if you want to press the button with perfect timing. I wound up putting a big pink button on the ceiling that you could jump to activate. After a few tests it was obvious that nobody knew how to activate the switches, so my artist created a two-frame billboard animation of a jumping man (she had been playing a lot of Portal, I guess). After that everyone immediately knew what to do.
I started out using Epic assets as placeholder, then would rough in proxy custom meshes with BSP. Rob would take the proxies’ measurements then crank them out as static meshes in 3D Studio. (I always found it was a great motivator to tell Rob, “You know, my BSP modeling is pretty good as-is, we should probably just leave that as BSP.” This would always drive him crazy and he’d crank out an actual mesh to replace it in less than 24 hours.)
I know a lot of people don’t do lighting until the level is done, but I found that dropping in proxy lights as I worked totally helped in detailing the level and figuring out how to transition between zones.
I also had an enormous problem. The stock UT3 lighting system is pretty flat and there’s no ambient occlusion or radiosity, so you have to do a lot of fudging. I was able to fake radiosity by just dumping in a ton of small point lights where lights would bounce, but shadows remained a problem. Objects on flat BSP surfaces looked like they were just floating and not part of the scene:
You don’t notice this in games like Gears because they have really high-frequency texturing, but in our map it’s mostly simple, smooth surfaces, so I had to find a solution.
I wound up creating three decals. One is a circular gradient, the other is a rectangular blob, and the other is a flat gradient. I went through the map and started slapping these down on the ground to fake shadowing. I also threw down some dirt and grunge on the most-traveled areas of the floor.
Aha! Much better. Objects look like they’re more rooted to the ground. Additionally, the gradient decal let me fake hard edges in some areas, kind of a throwback to when everyone would do shadows in geometry like in N64 Goldeneye:
Performance didn’t take too large a hit either — make sure that the decals are only affecting the surfaces they need to, though. If a decal volume clips through the ground and affects geo underneath it, that’s extra draws and it will start bogarting your performance very very quickly.
Nowadays Unreal has Lightmass which supports radiosity, ambient occlusion and cool dominant direction lights, so you probably don’t have to do dumb stuff like this anymore. You can play with it for free if you download the UDK from Epic.
The level was originally built on a low-powered laptop and targeted towards the PS3, but it still went out of control. Lighting was taking upwards of 15 minutes per build and the engine was chugging more than I’d prefer. Fortunately I did two things that dramatically cut down my level size and brought performance back to 30fps on the PS3. Here were the two major optimizations I did.
All static meshes in Unreal default to vertex lighting. However, if your mesh has a second UV channel you can use lightmaps instead. Lightmaps are super awesome for two reasons:
For example, let’s say I use a total of 8 girders at 842 tris each. If I use vertex lighting, my lightmap size is a hefty 111kb. But if I change it to use lightmaps at 32×32 pixels each, that total is cut down by a factor of ten to about 11k! And it looks almost exactly the same.
Of course, in some areas vertex lighting might look better than lightmaps, or you might want to bump up the lightmap resolution if a shadow’s falling across geo in a weird way. I wound up going through the map piece by piece, and adjusting on a per-object basis. Girders up near the ceiling where light wasn’t reaching could get knocked down to 8×8-pixel lightmaps with no loss in quality and a huge reduction in the memory footprint. My lightmap size plummeted from 40mb down to 12mb.
Note that if you’re using lower-polygon meshes, sometimes vertex lighting can be better. It’s all about balance. Here is an Excel sheet from Epic that shows you when it’s cheaper to use a lightmap than vertex lighting.
When Unreal draws a scene, it uses crazy Tim Sweeney Voodoo Math to figure out if the object in front of you is blocking your view of anything further down the road. Multiplied by several thousand objects per scene, this can get kind of slow. Instead, you can tell the engine “If this object is X units away, just don’t draw it” by setting each individual object’s CullDistance under the rendering tab. I went through the map, manually setting CullDistance on every individual object as I moved through the editor, figuring out how far I could move away from an object before it wouldn’t be visible from any angle. This made my performance skyrocket, especially on PS3. I also manually set CullDistance for particle systems too, because I think they always render no matter where you are in the level. (You can also use a CullDistanceVolume as well, but it can create weird popping effects and it isn’t so hot for dense indoor levels.)
SOUND, MUSIC, AND POLISH
Near the end of the project I read this tutorial on implementing interactive music and asked my friend Alan to make a few tracks. I think they added a lot to the overall atmosphere, plus they’re low-key enough to not be annoying after 20 minutes of looping. I also wrote a bunch of dialogue for station announcements and had it translated into Japanese, and got my friend to record the lines. There’s a chunk of Kismet that randomly fires every minute and triggers one of 10 announcements. (Note that the jingle that plays before each announcement is the Unreal Tournament 3 theme, but in a major key.)
To make the station feel like a real place while not infringing on any train companies’ copyrights, we decided to basically create a “fiction” to unify the level’s look and feel. We fired up Yahoo Japan Maps and laid out two new, theoretical subway lines. We gave each of them a name and a color code, then we created color and B&W corporate logos for both the train company (ISR) and the construction zaibatsu that built the station (Sanmaru Heavy Industries, a play on san-roku-maru, the Japanese name for the Xbox 360). Because of this, all the in-station signage is accurate, and locations referred to in the station’s billboards correspond with “Points of Interest” on the Exits & Facilities guide.
Also, if you zoom in on the LCD monitors, you’ll notice that the train station’s software is running on Apple IIgs BASIC. Yes, I am a huge nerd.
Last-minute change: Video!
A few days before release I realized that you can put your own prerendered Bink videos into the engine and they hardly take any CPU time. Fortunately, my friend Vanessa was in town, so I grabbed all the lights in my apartment, put her in front of a camera, and she tousled her hair around. After about an hour in After Effects I made this video loop.
STUPID STUFF I DID
I went into this from zero, so I made a lot of dumb mistakes. Here’s what I learned:
This goes without saying, but I’m persistent enough (and so crappy at Maya) that I will totally go out of my way to do extraneous detailing in BSP. This results in nasty subdivisions of level geo that you just don’t want. That’s not to say that you should never ever use BSP — Mirror’s Edge does all of its interiors in BSP:
Left: Mirror’s Edge BSP only. Right: Mirror’s Edge with static meshes added.
Of course, they’re just doing simple surfaces, and you should too.
There are one or two totally ridiculous long sightlines in the map that could have been fixed back when I was BSPing everything out. These make for bad performance and annoying gameplay when someone’s got a sniper rifle.
Making traps is easy but making bots actually use them is hard. I wound up scripting behavior exclusively through Kismet, which resulted in this mess of spaghetti-script:
Barf. It almost works okay because it keeps checking a lot of variables (is the weapon I want there? is the door already open? has someone else activated this switch? is someone else in the vicinity of the trap and likely to enter it so I can kill them?), and the break cases kind of work because “Move to” commands can be interrupted. It’s still a mess, and it breaks so horribly in Team Deathmatch that I’m totally embarrassed.
In the end, I’m happy with the way it turned out. You can grab it here if you have a copy of Unreal Tournament 3 and want to give it a shot.
(Address / Phone number available on request)
colin underscore tokyo at hotmail dot com
Experienced game producer with rare cross-cultural expertise and 10 years experience delivering top-tier market-ready games seeks a Producer or Associate Producer role in which to drive and motivate a creative team using a combination of technical skill, excellence in management and a passion for game design.
Square-Enix Inc. Tokyo, Japan / Seattle, WA
Producer, July 2009-Present
• Job description available on request. Omitted for confidentiality.
Square-Enix Co Ltd. Tokyo, Japan
Developer Relations Guy, Aug. 2008-June 2009
• Job description available on request. Omitted for confidentiality.
Squaresoft, Tokyo, Japan
Localization Specialist/Editor, Dec. 2002-Sept. 2008
• Served as in-house company editor, polishing, rewriting and culturally adjusting voice and text scripts for Western audiences
• Established Square-Enix house style and maintained consistency across multiple RPG/MMORPG projects
• Created internal websites and demo events to educate staff on Western game production and dev culture
• Acted as consultant on Western trends and middleware to CEO and team leads
• Localization expert panelist at Game Developers Conference 2007 and CESA Developers Conference 2007
Level Designer, Sept. 2008-Present
• Created “Tokyo Trainwreck” Unreal Tournament 3 level with volunteer team of 2 artists
• Released level on PC and PlayStation 3
• Designed level, lighting, scripting and shaders with emphasis on performance optimization for PS3
• Level took 3rd place in IGDA level design contest
Anchor Inc. Tokyo, Japan
Assistant Director / Designer, Sept. 2001-Nov. 2002
• Created textures, interactive menus and realtime/prerendered cutscenes for WWE-branded games
• Worked as liaison between developer and American publisher THQ
Nativesens (Contract), Tokyo, Japan
Localization Specialist, May 2001-Aug. 2001
• Translated technical documents and voice scripts for large-scale RPGs
• Cast and directed voice talent
Anchor Inc. (Contract), Tokyo, Japan
Localization Assistant, Sept. 2000
• Performed QA and editing roles for UFC game on Dreamcast
Bethesda Softworks, Rockville, MD
Art Intern, May 1999-Aug. 1999
• Created design docs, 3D models and environments for The Elder Scrolls III: Morrowind
PC Gamer Magazine (Contract) Brisbane, CA
Contributing Editor/Columnist, Sept. 1996 to Sept. 2001
• Wrote previews, reviews, strategy guides and cover stories for an international print publication with a reader base of over 280,000
• Conducted on-site interviews with North American and European developers
• Wrote monthly print column (The Killing Box) and weekly online column (Colin’s House of Shame)
Temple University of Japan, Tokyo, Japan
Bachelor of Arts in Asian Studies 2000-2001
Indiana University of Pennsylvania, Indiana, PA
Original Objective: Major in Communications Media, 1996-1999
Overseas study at Kansai Gaikokugo Daigaku, Osaka, Japan, 1999-2000
Gamespot, IGN, Games Magazine, II Alive Magazine, AMG All-Game Guide
Sept. 1996 to Sept. 2001
Microsoft Office : 11 Yrs
Unreal Editor : 3 Yrs
Premiere / Vegas : 9 Yrs
After Effects : 9 Yrs
Photoshop : 9 Yrs