Assassin’s Creed: Revelations

How I got there

 

After Assassin’s Creed hit its first major milestone, the project needed less pushing in terms of gameplay code and the Revelations team needed supports for a month on an ‘exotic’ sequence that was crafted in Singapore. I got loaned to the project for 3 months before going back to Assassin’s Creed 3.

What I got to work on

 

Small boat sequence for a Linear Gameplay Experience.

For “Forum of the Ox” LGS, an initial sequence was planned in which the player chased a bunch of NPCs in a boat. I developed the cameras, controls and animation logic for this sequence before it was cut, after producers fully understood how much a 3 min high speed sequence would mean in terms of assets.
What remained was the foot chase, in which Ezio parkour around an underground river to catch the NPC boat while it fires at him. This, I re-shaped the tech to drive the NPC boat so that it would drive both the boat trajectory and its characters animation (the rowing, steering, aiming and firing animation) from a level designer driven river-path. I also added an LD friendly system for synchronizing a shot

I also helped created reusable level designer code to have Ezio ‘seamlessly’ transition from cinematic pose to specific behavior (for instance, already standing on a beam or halfway through a climb).

For Cappadoccia, the underground city

Off Duty Guard: part of the crowd (which were lightweight AI-wise), these guards needed to enter combat if the players were making too much of a ruckus. This was an interesting and tough assignments, because it touched on many systems (crowd composition, fight engagement rules, reactions) whose design needed to be bent for this special case.

Special Rooftop guards: until Cappadoccia, roofs in AC cities were very much aligned on specific heights ; and traditional archers on rooftops could only engage and pursue player with these metrics in mind. Cappadoccia was a lot more organic than these – roofs turning to streets or merging into others – and these guards had to navigate more freely while remaining predictable.

Tools

C++

Take-aways

The art of tinkering: on AC3 preproduction, we interacted with a lot of modules of the engine, but we created our 3Cs and AI from scratch, injecting ourselves into the overall architecture. The nature of my tasks on Revelations required me to go a lot deeper in a lot of modules, but the restriction on time and support from the main studio meant I had to often tinker with the systems to understand how their worked. I sometimes built erroneous mental models and broke things without realizing it straight away, but it was a great learning experience; allowing me to quickly XP on a legacy engine that had shipped 3 games across 6 years.

… and the craft of recycling: when the boat driving sequence was cut 1 month and a half in the making; I had done many things for it; including LD tools to author the river path and width. Instead of burying all the code away, I kept and expanded the level tools and worked with our visual scripting tools, to automate the animations and progression of the boat, making iteration a lot less painful for LDs.

Making tools for Level Designer is great: on AC3 preproduction and Showtime, I had mainly worked with Game Designer, establishing mechanics, AI and game loops for general purpose. It was very interesting, but it sometimes felt a bit abstract since we worked mostly in gyms. On Revelations, I worked with Level Designers instead which meant I built tools and systems with specific situations in mind. It was extremely gratifying to hammer at code and see a direct, tangible and experienceable consequences on the game I was part of. It was greater still when I could expand those tools to enable the LDs even more. Best is that I got to wok with a level designer who became my best bud: Mark Ravindran Sanjay.