EVE Online, flagowa gra MMO studia CCP Games, wkracza w nową erę modernizacji, rozpoczynając migrację z Stackless Python 2.7 na Python 3. To znaczące osiągnięcie dla producenta - gra pracuje na Stackless Python od swojego uruchomienia w 2003 roku, a ostatnia duża aktualizacja pythonowa nastąpiła aż 16 lat temu. Projekt migracji będzie niezwykle ambitny: dotyczy 2,4 miliona linii kodu i wymaga przeglądu około 20 tysięcy miejsc, gdzie zachowanie Python 2 i 3 się różni - klasycznym przykładem jest operacja 1 / 2, która w Python 2 daje 0, a w Python 3 zwraca 0.5.

Proces zacznie się od automatycznego uruchomienia skryptu futurize, który przeprowadzi podstawowe konwersje kodu. Jednak autentyczna praca dopiero się zaczyna - zespół CCP będzie musiał dokładnie przeanalizować tysiące przypadków, gdzie stare i nowe zachowanie Pythona mogą się kłócić, aby zapewnić, że zmiana nie zaburzy dziesięciomilionów linii logiki gry. To klasyczne wyzwanie przy takich skalach - nie chodzi tylko o składnię, ale o fundamentalne zmiany w sposobie, w jaki Python wykonuje operacje.

Warto zauważyć, że CCP nie ujawniła jeszcze konkretnych planów dotyczących zastąpienia samego Stackless - specjalistycznej wersji Pythona optymalizowanej dla współbieżności. Jednak na konferencji studia w zeszłym roku zaprezentowali rozwiązanie o nazwie Carbon Scheduler, które wykorzystali w swoim nowszym projekcie EVE Frontier do porzucenia Stackless. Biblioteka schedulera, będąca teraz open source, może stanowić wskazówkę, jak CCP planuje podejść do tego wyzwania w głównej grze.