Pages

Monday, August 31, 2026

The Upgrade of Tranquility To Python 3 Has Begun

A quick if belated post is warranted as EVE Online begins the process of benefiting from the crypto money pouring into EVE Frontier. That's right, last week Fenris Creations began the process of upgrading the Carbon engine running the Tranquility server to Python version 3. Success is simple. The migration will be a success if players don't notice the change happening at all.

Why do the change at all? Fenris is using an unsupported language on Tranquility.

EVE launched in 2003, built on Stackless Python, a version of Python whose lightweight "tasklets" let a single server node juggle thousands of pilots at once. Fenris Creations did not just adopt Stackless; it became one of its most significant contributors.  

Some of you may remember upgrading to Stackless Python 2.5 in 2007, then to Stackless Python 2.7 in 2010. That was the last time EVE changed its Python version. Python 2.7 reached official end of life back in 2020, the rest of the software world moved on, and a whole generation of capsuleers has been born, gone to school, and started flying frigates while EVE stayed on the same language version. It was reliable enough that a large, potentially risky migration never justified itself, until now. 

Sixteen years on the same version says a lot about how well it worked. The Carbon engine helped massively, but it, too, has moved forward now!

Eventually software needs to be updated. The code running EVE Online is no exception.

The short version: staying on Python 2 increasingly holds EVE back, and moving to Python 3 means a healthier, better-supported game for you. 

One reason is performance. Recent Python 3 releases have delivered some of the largest speedups in the history of this language. Over time, that opens the door to a faster EVE, though it is too early to say exactly what that will mean. 

Another reason is the ecosystem. Modern libraries, debuggers, and profilers are all built for Python 3. Every year we remain on Python 2, more of them slip out of reach, and the more we must maintain ourselves instead of improving the game. Better tools mean we can find and fix problems faster. 

The last point is important. Do players want developers to maintain an outdated language, or do they want time and resources spent working on game code and the game engine? Personally I'd like to see less of the budget spent maintaining Python 2 libraries.

I also want Fenris to take their time with the changeover to Python 3 as weird things can happen. In addition to 3300 lines found to block compiling the code, and even larger number can create the definition of weird.

Parsing is the easy part.  

The same scan counts roughly 20,000 lines of code that compile fine under both versions but behave differently in Python 3. The classic example is division: in Python 2, 1 / 2 is 0; while in Python 3 it is 0.5.  

In EVE where those numbers might be damage, ISK, or coordinates, each of those lines needs a human decision rather than a mechanical fix. That work is part of Stage 2, which is why Stage 1 comes first: clear the mechanical debris so human attention goes only where humans are needed. 

I don't expect Fenris to finish the process within the next year. For now I'm just happy the process started. And who knows, maybe we get a lot of unexpected performance gains out of the upgrade.

No comments:

Post a Comment