Story Time: The great rebuild (MW3, the first one)

Story Time: The great rebuild (MW3, the first one)

Personal stuff

Rewind a bit..

I didn't mention in the last update, I got married sometime during MW2. I had no idea I would be capable of such thing. No forward thought was ever put into it, I wasn't thinking about finances, ever. In each of the titles we released to this point, I never stuck around to participate in royalty benefits. We're not guaranteed tomorrow so why invest so heavily in it if you need a break now. The experience and memory of it was payment enough.

Numerous conversations were had about my full-time employment. I was informed of a rough number that I would have been involved with, On a team of 50-60ish (it was an awesome number), but passed. Nothing was worth going out and working through a burn-out that I often felt as a designer. It took one uninsured doctors visit to help me shift gears in that thought. It wasn't just me taking care of me. I was starting a family. I also have this kind of core-value of being transparent about who I am and my intentions. "OK, I'll come out there and make some money's but I really don't like living so far from home and I'll very likely harvest and return". Being home was always priority. It was during MW2 that I moved out there.

The events that followed MW2 ( a significant portion of the team from top-down left ) very much benefitted this original goal, I was sad to see my peers go and I knew what going represented, uncertainty and a longer stay in CA was not something I was interested in at the time, coupled with, we were expecting our first child. I didn't entertain the thought, I also knew that there would be no hard feelings from those guys, they knew what I was about from the start. The team that was left, was a lot of fresh talent, IW didn't mess around with hiring, We had a lot to work with.

Back to work

Early on, there was a lot of un-ease.. How do we move forward? We would stick it out, and I got to work with these newer folks. There was a lot of amazing work coming out of them, London being the first artistic showing that I recall. A new type of environment was really shining. I wasn't doing geometry in this anymore and I'm glad I stepped out of that at this point. The work being done here was on another level. What I would find is a lot of repetition in explaining some of the tribal-knowledge to new hires. "I know it's quirky, but that's just how we do it.." We don't even think about it any more. That would be a new focus for me, as well as trying to go back and make things easier/better with all of the existing scripts. I would take on upgrading our Script setup process and try to improve that in anyway possible.

Culture Shock

Part of early recovery in this was to involve some of the other studio's as we rebuilt. I don't remember exactly the details, but the studio's would bring in strong suites of Call of Duty tools, that we just weren't used to. These studio's had "tools teams". Up to this point, myself and another scripter would get into the Radiant ( Level editor ) and add things that we thought would improve our workflow. We would write bugs, but generally they went into the large backlog to be handled by someone who wasn't necessarily focused on the tools. The other studio's being remote, had their own complete asset viewing and discovery suites tied into a Database, that we didn't have access to. We would load them up thinking that we could use them but then nothing but spinney wheels. It was kind of an oil and water, but I was there, backed with a long history with the company, I would be able to help sort out these sort of things. I got the Asset Database thing working with help from the IT department, but there were other concepts that were culturally difficult to navigate.

We didn't understand Continuous Integration, and all those things, it was a wild-west at IW prior, Engineers submitted binaries directly, Designers were responsible for submitting their own compiled maps. The other studio's workflow was much more mature and we had difficulty understanding and adapting it. I remember thinking, how can you merge art? They were doing it, two people could work on a space and their efforts would get merged..

Script Setup 2.0

This would prove a great place to improve and upgrade our own scripting setup. Instead of pointing people to a wall-of-wiki page to setup their stuff, I would produce and executable that would modify configs and get people going. The wiki would be an onboarding to how to use all the things we had. I was also getting a little bit more heavily invested in our Search Tool, We called it "UE Search Tool" ( ultraedit search tool ), and after decoupling it from it's original Perl Script that wrote to ultraedit's console to a full fledged WinForms application that featured Highlighting in the results ( something that to this day is hard for me to go back on ). It would become a sort of swiss army knife tool for Scripters. Housing no only search results, but other things to help. Our asset pipeline was not unified. Some systems used CSV files, CSV files defined the assets that would go into "fast files". Some files were in plain text, written as a series of variable settings, localization was in it's own sandbox, made easy to outsource but perhaps harder to tool for. Sounds were CSV files describing all the attributes and could have different attributes based on context. It was kind of a zoo to try and learn and sort out, but Search Tool was there to help in anyway. Users could press F6 on anything to learn about how it got included, What dependencies it had, they could even play sounds right from the text editor, they could get timing information out of animation assets, model bone information for attaching things in script. One of the displays I had for VFX would show all the materials used by that VFX, It highlighted the fact that an explosion effect was borrowing a rather large Material from another Tank! All for a tiny bit of the debris. Stuff like this would later become an obsession.

All of these things were side projects, Rogue-Nate trying to work on the betterment of the workflow ( so all this new talent could ramp up faster ).

A Script Editor IDE:

I was browsing the tools binaries and came across this shiny Lime Green Icon, labeled ScriptDevelop, what's this? A tool to help develop scripts? Naturally I ran it to see what's up. To my surprise a very familiar looking view popped up. It looked a lot like Visual Studio. Once I figured out how to load a level into it I was very pleasantly surprised to see that it offered a project view, autocompletion, and features that I was used to using in Visual Studio. Also very conflicted because this is stuff that I had already in UltraEdit in some form or another. It was very unstable, clunky in comparison to UltraEdit when typing, and I fixed a few bugs in it at first. It was also primarily written for WPF ( Windows Presentation Foundation), a framework that I wasn't familiar with. Since I had a standalone search tool I could hook it up. I spent a great deal of time figuring out how to make these tools work together. Search Tool would learn to serve BOTH UltraEdit users and the bold early adopters of ScriptDevelop, I don't think so much in this game. I think I was just dipping my toes in and talking about it. I wanted to leverage the stuff but others were more ( rightfully so ) concerned with shipping this game.

I warned you.. these next articles are going to become more and more about me as a tools engineer and less about the designer.

London Train Crash

Being the "vehicle guy", sure I could do a train sequence.. I think initially this was designed to be player inside the train.. Knowing that this would require new tech to allow not only player movement, but AI movement on a moving object, not to mention a narrow play space (remember the uboat on MOH:AA?), I threw up a little protest. Lets just put the player on a truck and we can animate the AI to make them look like they are intelligently moving about. I scripted ai's running up to the Door and often times, didn't need to, there was so much flash and action that I got away with the door to the train just opening up so they could shoot at the player. A little bit of fancy animation blending was added so that we could use one shoot animation and have them track the player. I also got to do some fake walk around on the back of the utility truck scripting, Basically, I had an animator setup a straight move of Tags in the X and Y Directions ( two animations, that I would blend based on what the player was trying to do ). The end result being that you'd be able to go hide behind stuff on the back of the truck, without the full fledged engineering team effort that would be required ( spoiler, we would get that technology one game later ). I had a bug about not being able to jump on the truck and promptly WNF'd it (Will Not Fix). There are some hacks you just got to live with, can you imagine if I enabled proper jumping how many players would get annoyed by accidentally jumping out of the car?

The crash was a hand-off to Animation department, but we, or I had a lot of misfires with how long the crash would happen, We made a geometry adjustment to the length of the crash area, It was pretty bad but chalk it up to iteration is necessary sometimes. I just remember counting the number of pillars to gauge how we were going to get animation and level geometry to align.

There was also a point on this where the 20hz scripting limitation would clearly need to be understood, not only by me but the animator. You see we can only begin events on a 20hz beat, animations were animated at 30hz. A frame set in 30hz rarely aligns with the 20hz that we're signaling new animations to play. To try and explain, if an animation call as described in the 30hz animation lands a fraction of a second before the next server frame and that was the intended start point that fraction of time is lost until the next server frame can play the animation.. At the end of the crash, we were trying to swap in a player view model and animation to grab on to the truck as it rolled to it's side. I think sometimes having the animations get within a frame off we get away with it, but when the train is moving at So many Miles per hour this differences means the players hands are WAY off of the intended rail. I came up with the solution to simply have the view model play in sync with the beginning of the train crash ( the animation starts as the train goes through that last tunnel ), the animator would put it under ground, it could just be still ( animation compression would keep its size down ).

There was cool stuff on here, a culmination of past vehicle chase scripts. Yep I borrowed them. There's no new train physics.. they just go the same speed so they down detach from each other. Action packed to the end! Enjoy

Hamburg

Designing stuff is hard! Some things become extremely iterative. It's proof of the value of having good tools, without which I would have more difficult of a time abandoning a plan that was deep down a rabbit hole of just not being fun and start over..

Early on Hamburg was a Tank Drive mission. At this point I was really tuned in with how tanks worked, it wasn't the strong point of Call of Duty games in my opinion but somehow it kept coming back to me. I would give it a college try though. An early version of this had a fancy view from the inside of the tank and ability for the player to take up different positions within the tank itself. You could also switch to "Heat Sensor" visions to highlight tanks, and enemy ai's. It was as cool as I could get it, but still didn't feel good or fun. The geometry throughout this first area was very intricate, giving AI's with RPG's a nice set of cover to run to.

We also entered the mission, on the back of those large hover crafts sitting on the Gunner seat of the tanks. From the vantage point you didn't get to really appreciate how the tanks got deployed so it kind of was feeling like a loss of effort. The hovercraft animation went through a lot of iteration. Those things in real life actually deflate very slowly and It was a place where the gameplay was really suffering. I kept going to the animator and requesting it be "Faster Faster"

There's a lot of talking points about Hamburg. I was vouching hard for Multiple scripters working in one level, we had done it in London. We think of it as levels within a level. London had an a, b, and a c section, each had their own isolated small test map where iteration could happen the same. Hamburg was an exercise of this cross studio, I would do the A side and Raven would do the B side. My portion of this covers all the way to where the car port gives way and the heavy tank Crashes through the ground. Here you get to appreciate the original interior of the tank that we setup for the original tank driving that was to happen.

I'm proud of the work on Hamburg, It was next level on all fronts. Had Everything, probably even the kitchen sink somewhere! All of these vehicles and things I spent time on individually getting behaviors functional and working were coming together.

This game would become a proof that the studio's could work together on these games, it marks the heaviest bit of cross collaboration to this point, and paved the way for many more. It's also the game where I moved back home, I was ready to take the money (earned from MW2 royalty) and go find the next thing, be it doing contract work or perhaps getting into a different field. When I brought this up to the studio leads, something amazing and unprecedented happened. Something that would earn New IW a real point of loyalty for me. IW would offer me a full-time, full-benefits, work from Washington State.

Stay tuned for more Rogue-Nate working on tools and doing everything possible to help this game succeed with New Infinity Ward. A situation that could have very well been similar to MOH:AA's fate but I was going to be there on that other side helping to keep Call of Duty relevant.


Chris Staples

Audio Designer - 18 Years of AAA Game Dev Experience X-Infinity Ward X - Activision X - Blizzard X - Microsoft

1 年

Thank you for posting this, Nate! For what it's worth, I am proud to say that I processed and implemented the dialog for the London scene.

回复

Nice, Nate! About to read this. Funny enough, I am in the middle of writing my article on those times as well.

要查看或添加评论,请登录

Nathan Silvers的更多文章

  • Story Time: Ghosts

    Story Time: Ghosts

    MW3 felt like a rescue mission, tons of Activision resources poured into it. It was not so much an InfinityWard game.

    1 条评论
  • Me-now, Tools engineering person.

    Me-now, Tools engineering person.

    I'm excited to talk about me-now. So far, all of my articles and things have been about my glory days as a game…

    2 条评论
  • Story time: IW's Swansong (Cod:Modern Warfare 2)

    Story time: IW's Swansong (Cod:Modern Warfare 2)

    This next game was probably the smoothest work ever from the Original Call of Duty team. We had a foundation of assets…

    10 条评论
  • Story Time: It keeps getting better (Cod4: Modern Warfare)

    Story Time: It keeps getting better (Cod4: Modern Warfare)

    Finally, I get to start talking about some early tools engineering! The timeline really gets hazy with this because I…

    5 条评论
  • Story Time: Call Of Duty 2

    Story Time: Call Of Duty 2

    While I was working on the Expansion pack for Call of Duty, InfinityWard was working on Call Of Duty 2. I don't think…

    2 条评论
  • Story Time: United Offensive

    Story Time: United Offensive

    Standing on top of that second story unfinished wall with the only support from falling from 2 stories up being the…

    9 条评论
  • Story Time: Time to Reflect

    Story Time: Time to Reflect

    The decision to leave InfinityWard early on, if I remember correctly was multifaceted. I was a little burned out…

    1 条评论
  • Story Time: Call Of Duty

    Story Time: Call Of Duty

    After having parted ways with Medal Of Honor, we had to start something new. Once again I have a very vague…

    11 条评论
  • Story Time: Spearhead

    Story Time: Spearhead

    There's probably some really good juicy bits of story to tell in and around this time regarding the transition from…

    4 条评论
  • Story Time: First AAA Game ( MOHAA )

    Story Time: First AAA Game ( MOHAA )

    Adam brought to my attention in the last article some of the early goings on at 2015 with MOHAA, We didn't really get…

    8 条评论