Project Experience - Virtuos Games

September 9, 2024

Developing; Texture Upscale Pipeline CODA (UE4) Co-development for Xbox One/Xbox Series, PS4/PS5, Nintendo Switch (2020-2022) Unannounced Xbox/PS4 game (Proprietary Engine) Remaster (Xbox One, PS4) 2018-2019 Evaluating; Popcorn FX middleware 2018 L.A. Noire (Xbox 360 to Nintendo Switch) 2016-2017 Assassin’s Creed The Ezio Collection (PS4, XBox One) 2016-2016 Heavy Rain (PS3 to PS4 port, proprietary engine and tools) 2015-2016 Batman: Return to Arkham (PS4, Xbox One, PC, Unreal Engine 4) 2014-2016 Fable Anniversary (360, Unreal Engine 3) 2012-2013 MonsterJam: Path of Destruction (PS3, 360, Wii, PSP, NDS) 2010-2011 Motorstorm: Arctic Edge (PS2) 2009-2010 PMRII (PS2, NDS) 2008 - 2009 SpeedRacer (NDS) 2007 - 2008 Asphalt 2 (NDS) 2006-2007 StreetRiders (PSP) 2005-2006

Projects

Texture Upscale Pipeline

Duration: ~4 months Size: 2 Engineers Platform; Windows PC

Virtuos Games

Technologies:

L.A. Noire (Xbox 360 to Nintendo Switch) (2015-2016)

Duration: ~11 months Size: 10-15 Engineers Title: Technical Director; working with 2 Lead Engineers, 6 Senior and 6 Junior Engineers Platform: A PS3/Xbox-360 game porting to Nintendo Switch

Virtuos Games

Technologies:

Tasks:

  • Wrote runtime component to save profile and memory allocation events with stack-trace and scope, frame number and timing information from multiple threads
  • Wrote a tool to convert the profile information to a format that could be read by FramePro
  • Wrote a GPU memory allocator based on best-fit algorithm
  • Integrated UMBRA into the data building pipeline and runtime
  • Part of the realtime MPG streams where converted to use Bink to increase CPU performance
  • Refactored a lot of global scope object instances to ‘create on initialization’
  • Made the decision and changes to have all streaming data uncompressed to increase CPU performance
  • Assisted Senior Engineer to analyze/profile file-IO to write an optimum FileReader
  • Assisted Senior Engineer to port old FMOD-Ex to FMOD Studio for Nintendo Switch

Assassin’s Creed The Ezio Collection (PS4, XBox One)

A port to the Playstation 4 and Xbox One

Virtuos Games

  • Managing a team of 10+ engineers
  • Extending the data building tools to support Xbox One Porting the runtime to Xbox One
  • GPU Profiling and optimizations
  • Constant Buffer usage optimization

Heavy Rain (PS3 to PS4 port, proprietary engine and tools)

Porting Heavy Rain PS3 to PS4

Virtuos Games

  • Replaced custom memory allocator with DLMalloc and refactored the whole code-base to use a standard memory allocation API. This allowed us to swap from a final allocator to a debug allocator very easily during development.
  • Wrote the PS4 render engine and made many render passes multi- threaded
  • Working with Artists and Graphics Engineer to integrate ‘cubemap based environment lighting’
  • Integrated Bink to provide us with movie frames in an asynchronous manner
  • Wrote a lock-less JOB system used for multi-threading animation and render-passes
  • Did a lot of CPU optimizations to get the game at 30+ FPS

Batman: Return to Arkham (PS4, Xbox One, PC, Unreal Engine 4)

A challenging port by merging engines, UE3 and UE4 and moving to a PBR pipeline

Virtuos Games

  • Setup many details on how to merge UE3 core engine into UE4
  • Extended Mercurial (Hg) to be able to handle large amount of binary data
  • Designed an Artist PBR workflow to automate and ease the validation of PBR assets

Fable Anniversary (XBox 360, Unreal Engine 3)

A port of an XBox game to Xbox 360 using Unreal Engine 3 merged with the old game engine

Virtuos Games

  • UE3
  • WWise
  • Merging UE3 and proprietary game engine
  • Designed the interface layer between proprietary engine and UE3
  • UE3 package analysis and re-distribution of objects to match story line
  • FaceFX
  • Wrote a batch convertor for Audio/Voice to Face FX animation for all supported languages
  • Localization compression
  • Scaleform

Generator Rex: Agent of Providence (PS3, 360, Wii)

Full development of Generator Rex using a custom engine and tools

Virtuos Games

  • PhysX
  • Visual Scripting
  • Cross platform custom engine Custom Editor
  • Managing a team of 25 engineers FMOD

MonsterJam: Path of Destruction (PS3, 360, Wii)

Full development writing a custom cross platform engine and tools

Virtuos Games

  • Managing a team of 20+ engineers
  • Integrated Bullet Physics
  • Terrain collision was done in a custom ‘grid’ manner to speed up raycasts
  • Full Particle System and Editor
  • WII render engine and material system

Motorstorm: Arctic Edge (PS2)

Co-development, responsible for the PS2 version of the game

Virtuos Games

  • VU0/VU1 skinning job
  • Adjust data-building pipeline to also build PS2 graphic data PS2 render-engine
  • Did a lot of implementation and refactoring of the PS2 render engine
  • Automated performance testing
  • CI/CD using Team City
  • Perforce

Pimp My Ride: Street Racing (PS2, NDS)

Full development of a Pimp My Ride game for PS2 as well as Nintendo DS

Virtuos Games

  • Re-used and extended the C# based data description and build pipeline.
  • Support for the data-pipeline to be incremental, caching converted assets and using a dependency tree
  • Big-file re-ordering based on file-order-access logged by the game
  • Designed and assisted with the implementation of a UI authoring pipeline using Microsoft Blend

SpeedRacer (NDS)

Full development, game engine, AI, Tools, UI framework and networking

Virtuos Games

  • Designed and Implemented the (Render) Engine to run at 60 FPS
  • Designed the technical aspects of the 3D track structure and how cars would drive/navigate
  • Written a full C# based data description and build pipeline
  • Worked with VFX artist to make all of the VFX just scaling effects instead of actual particle simulation
  • Big-file and index-file generation

Asphalt 2 for Nintendo DS

Porting of Asphalt 2 (N-Gage) to Nintendo DS (2006-2007)

Virtuos Games

  • Ported Render Engine to Nintendo DS
  • Optimized (the hell) out of the UI rendering to get 30 FPS Integrated distance based fade-in/fade-out

Street Riders PSP

Porting of Street Riders PS2 to PSP (2005-2006)

Virtuos Games

  • CodeWarrior, C/C++
  • CI/CD, CruiseControl
  • Wrote the complete Render Engine for PSP
  • Extended data-building tools to write out PSP graphic and texture formats
  • Optimized the skinned mesh parts (bone constraint) using minimum spanning trees
  • Optimizations, C/C++