オンラインゲーム「EVE Online (イヴ・オンライン)」は8月25日(現地時間)、ゲームの基盤を支える240万行のコードをPython (パイソン) 2からPython 3 (パイソン3) へ移行する大規模なプロジェクトを開始した。2003年のサービス開始以来、Stackless Python (スタックレスパイソン) で稼働してきた同ゲームにとって、主要言語の更新はStackless Python 2.7へのアップグレード以来16年ぶりとなる。
Simon Willison’s Weblog (サイモン・ウィルソンズ・ウェブログ) が8月25日(現地時間)に報じたところによると、オンラインゲーム「EVE Online」の開発元は、サービス開始から長らく使用されてきたPython 2ベースのコードからPython 3への移行を開始した。この大規模な言語移行は、将来的なゲームの安定性向上、パフォーマンス改善、そしてPython 3が提供する非同期処理(async/await)などの現代的な機能群へのアクセスを可能にし、開発エコシステムとの互換性を確保することを目的としている。
Python 3へのアップグレードプロセスは多段階で実施される。まず、futurize (フューチャライズ)と呼ばれる自動変換スクリプトが、240万行に及ぶPython 2の全コードベースに適用される。このスクリプトは、Python 2の構文をPython 3互換に変換する初期作業を担う。しかし、Python 2とPython 3では挙動が異なる箇所が多数存在するため、スクリプト適用後には約2万箇所にわたる入念な手動レビューが続く予定だ。具体例として、Python 2では「1 / 2」の計算結果が整数除算として「0」となるのに対し、Python 3では浮動小数点除算として「0.5」となるような違いが挙げられている。このような互換性の問題は、ゲームのロジックに予期せぬ影響を与えないよう、一つ一つ確認し修正する必要がある。
今回のPython 3への移行発表には、EVE Onlineが独自に採用してきたStackless Pythonの置き換えに関する具体的な計画は含まれていない。しかし、同開発元は以前からStackless Pythonからの脱却を検討してきた経緯がある。実際、昨年開催された同社のカンファレンスではScheduling in Carbon: Leaving Stackless Python Behindと題された発表が行われている。この発表の中で、より新しいゲームであるEVE Frontier (イヴ・フロンティア)においては、オープンソースのライブラリcarbonengine/scheduler (カーボンエンジン/スケジューラー)を用いてStacklessが置き換えられたことが説明された。この先行事例は、将来的にEVE Onlineも同様の技術でStackless Pythonを置き換える可能性を示唆している。今回のPython 3移行は、将来的なStackless Pythonからの完全な脱却に向けた布石ともなり得るだろう。
この大規模なコードベースの現代化プロジェクトは、EVE Onlineが今後も長期にわたって進化し続けるための重要なステップとなる。開発者は、Python 3のより強力なツールとライブラリを活用することで、プレイヤーに対し新たなゲーム体験や機能を提供できるようになる。
参考: Simon Willison’s Weblog (アーカイブ) — 2026年8月26日 07:59 (JST)
原文ハイライト"EVE Online: The Move to Python 3 Begins!"