Pokémon GO Universal Render Pipeline Conversion

Senior Technical Artist, Graphics Migration

Pokémon GO Universal Render Pipeline Conversion

Project Overview

I helped lead Pokémon GO's migration from Unity's Built-In Render Pipeline to Universal Render Pipeline, converting core rendering systems, rewriting shader architecture, and adapting graphics features across the client.

Project Goal

This project centered on moving Pokémon GO from Unity's Built-In Render Pipeline to Universal Render Pipeline without losing the visual character or feature coverage the game depended on.

The challenge was not just technical compatibility. We needed to understand every shader path, every rendering dependency, and every graphical effect that players relied on across a very large live game.

Foundation & Planning

Before conversion work began, we documented every shader, property, and use case across the game. That gave us a complete picture of what existed, what was shared, what was one-off, and where the biggest migration risks lived.

We also collaborated with other teams that had already completed similar render pipeline conversions, using their guidance to shape our approach and avoid common mistakes early.

From there, we built a shared library of shader functions that could be reused across the project. That gave us a more maintainable foundation and helped keep behavior consistent as more systems moved over.

Shader Conversion

A major part of my role was converting all Pokémon shaders and a majority of the client shaders to work in URP.

That meant more than syntax changes. Many shaders needed to be rethought in terms of lighting models, render paths, shared functionality, and how they fit into a new rendering architecture while still matching the look players expected.

The shared function library became especially important here, since it let us reduce duplication, standardize behavior, and make future shader work easier to maintain.

Renderer Features & Graphics Systems

I also rewrote several graphical effects to use Unity's Custom Renderer Features, covering both AR and non-AR rendering paths.

These included real-time shadow solutions, screen blur implementations, and transparent warping effects that could no longer rely on their previous pipeline behavior.

That work required balancing visual fidelity, maintainability, and performance while making sure these systems still behaved correctly across the wide range of contexts Pokémon GO supports.

Outcome

The conversion was a large-scale graphics effort that touched core rendering infrastructure as well as day-to-day content production.

By combining documentation, shared shader architecture, and targeted rewrites of higher-risk effects, we were able to move the project toward URP in a way that was more systematic, scalable, and sustainable for the team.