// Philip Dunstan // // @phildunstan, LinkedIn // (c) 2016 int main() { Player philDunstan; philDunstan.partner = Player("Katherine Thomson"); philDunstan.location = Location("Malmö, Sweden"); philDunstan.recent_job_history.add("Jul 2016 - present", "Massive Entertainment", "AI Team Lead", "Tom Clancy's The Division") .add("Jan 2014 - present", "Massive Entertainment", "Senior AI Programmer", "Tom Clancy's The Division") .add("Jul 2011 - Dec 2013", "", "Senior AI R&D Engineer") .add("Sep 2004 - Jun 2011", "Electronic Arts", "Software Engineer - Physics and Core Systems"); philDunstan.bibliography .add(Game, "Tom Clancy's The Division", "AI Systems") .add(Game, "AI Sandbox CTF Competition", "Gameplay", "AI Systems", "Networking") .add(Game, "FIFA", "Physically Driven Characters") .add(Game, "Fight Night", "Physically Driven Characters") .add(Game, "NHL", "Physically Driven Characters") .add(Game, "Need for Speed", "Conversion from Havok to EA Physics", "Physics features and performance") .add(Game, "Battlefield", "Conversion from Havok to EA Physics", "Physics features and performance") .add(Game, "Harry Potter", "Conversion from Havok to EA Physics", "Physics features and performance", "Core Technologies") .add(Game, "Skate", "Physics features and performance") .add(Game, "Burnout Paradise", "Physics features and performance") .add(Game, "Nerf N-Strike", "Physics features", "Core Technologies") .add(Game, "Littlest Pet Shop", "Physics features") .add(Software, "The AI Sandbox", "Core systems, sensory and perception systems, physics driven animation, technology samples") .add(Software, "Behavior Tree Starter Kit", "Behavior Tree implementations") .add(Software, "Clang C++ Modernizer Tool", "Source code transformations to apply the C++11 'override' keyword") .add(Presentation, "Blending Autonomy and Control: Creating NPCs for 'Tom Clancy's The Division'", "GDC 2016", "AI Summit") .add(Presentation, "How TOM CLANCY'S THE DIVISION Simulates Manhattan for Millions of Players", " 2016") .add(Presentation, "Believable Tactics for Squad AI", "GDC 2012", "AI Summit") .add(Presentation, "Active Skeletons and Physics Simulation", "Vienna Game AI Conf 2012", "Animation Workshop") .add(Presentation, "Behavior Tree Implementation", "Vienna Game AI Conf 2012", "Behavior Tree Workshop") .add(Book_Chapter, "Behavior Tree Starter Kit", "Game AI Pro: Collected Wisdom of Game AI Professionals") .add(AiGameDev_Competition, "Capture The Flag", "Competition organization, software core systems, gameplay and networking") .add(AiGameDev_Masterclass, "How to Build Chase & Evade Behaviors with Emergent Gameplay", "Alex Champandard") .add(AiGameDev_Masterclass, "Bug Hunting: Understanding AI Architecture with Epic Failures", "Alex Champandard") .add(AiGameDev_Masterclass, "How to Avoid Common Performance Pitfalls When Programming Gameplay and AI", "Matthew Jack") .add(AiGameDev_Masterclass, "Writing Hardware-Optimized Gameplay Code on Xbox 360 & PS3", "Matthew Jack") .add(AiGameDev_Interview, "Distributed Automatic Testing of AI and Animation in CRYSIS 2", "Wil Wilson") .add(AiGameDev_Interview, "Procedural World Generation and Simulation in DWARF FORTRESS", "Tarn Adams") .add(AiGameDev_Interview, "High-Level Character Authoring & Utility AI in STORYBRICKS", "Stéphane Bura") .add(AiGameDev_Interview, "Planning for the FALL OF CYBERTRON: AI in TRANSFORMERS", "Troy Humphreys") .add(AiGameDev_Interview, "Galactic Domination in ENDLESS SPACE", "Florian Brulhart and Adrien Allard"); Game life; life.addPlayer(philDunstan); while (!life.isGameOver()) { life.update(); life.render(); } return 0; }