EVE Online Begins Upgrading to Python 3
The developers of EVE Online have begun a massive migration to Python 3, marking the first major update to the game's 2.4-million-line codebase in sixteen years.
The developers behind the iconic massively multiplayer online game EVE Online have officially initiated a transition to Python 3. This move represents a monumental shift for one of the industry's most famous case studies of Python operating at a massive scale. The game has relied on Stackless Python since its initial launch in 2003, with its last major language upgrade occurring sixteen years ago when the system was moved to Stackless Python 2.7 in 2010.
Upgrading a codebase of this maturity and scale is a massive undertaking. Developers are tasked with modernizing approximately 2.4 million lines of code. The migration process begins with running the automated futurize script to handle initial translation. Following this automated pass, engineers must conduct careful manual reviews of roughly 20,000 specific instances where Python 2 and Python 3 behaviors diverge. A classic example of these discrepancies is integer division, where the expression 1 / 2 evaluates to 0 in Python 2 but yields 0.5 in Python 3.
While the announcement does not detail how the team plans to replace Stackless Python within EVE Online itself, clues lie in their recent projects. At a conference last year, the developers presented a session titled "Scheduling in Carbon: Leaving Stackless Python Behind." This presentation detailed how they successfully replaced Stackless Python in the Carbon engine for their newer title, EVE Frontier, by utilizing their now open-source carbonengine/scheduler library.
For software practitioners and game developers, this migration serves as a masterclass in managing technical debt and executing large-scale language upgrades. It demonstrates how legacy systems can gradually adopt modern standards without disrupting live services. By open-sourcing components like their scheduler library, the EVE Online team provides valuable blueprints for other enterprise teams attempting to transition highly concurrent, legacy Python applications to modern runtimes.
This is our own summary of reporting by Simon Willison



