EVE Online 启动 Python 3 迁移计划

EVE Online moves to Python 3

运行了二十多年的 EVE Online 终于开始向 Python 3 迁移。作为 EVE Evolved 计划的一部分,这次迁移旨在利用 Python 3 的性能提升和现代工具链,为游戏带来更快的运行速度和更高效的开发体验。尽管代码库庞大且包含大量历史遗留代码,团队正通过自动化工具和分阶段测试,确保在 Tranquility 服务器保持 23.75 小时在线的同时,让这次升级对玩家完全无感。这不仅是一次技术升级,更是为未来二十年游戏发展奠定基石。

这次迁移成功的定义很简单:除了偶尔感觉运行更顺畅外,玩家应该完全察觉不到任何变化。
  1. ryukoposting

    给那些像我一样从未听说过 stackless python 的朋友,这里有一些基本的示例代码:https://github.com/stackless-dev/stacklessexamples/blob/main...

    快速连续说五遍 "stackless tasklet"。

  2. simonebrunozzi

    有经验的玩家能给我们总结一下如今 EVE Online 社区的“氛围”吗?我大概 15 年前浅尝辄止过。

  3. est

    Stackless python 曾拥有巨大的潜力,在 Agent 时代,它对于处理带有持久状态的长运行任务将极其有用。

    现代 Python 朝着 asyncio 的方向发展,但结合 tasklet 和 continuation,它本可以成为更强大的组合。

  4. Cakez0r

    > 那么你们如何迁移 240 万行代码?

    > 非常谨慎地,分多个阶段进行。

    这个回答感觉像是三个月前的老黄历了。

  5. markkitti

    如果我是 Fenris Creations,我会复刻 Allegiance。

    https://en.wikipedia.org/wiki/Allegiance_%28video_game%29

  6. ufo

    Stackless python 后来怎么样了?他们把所有 stackless 的东西都砍掉了吗?

  7. santiagobasulto

    当 Python 开始引入 asyncio 时,我最初的反应相当负面。我当时就像个爱抱怨的老程序员(“现在的年轻人应该学习如何使用并发,而不是去搞一套全新的运行时!”[0])。

    但在将其用于一个生产项目后,我必须说,我对它的成熟度、API 质量以及整体性能深感满意和惊讶。

    事实证明我错了,而且我很高兴自己错了 :)

    [0] 指“老头对着云大喊”这类网络迷因

  8. shevy-java

    > 你们中有些人可能记得 2007 年升级到 Stackless Python 2.5,然后在 2010 年升级到 Stackless Python 2.7。那是 EVE 最后一次更改其 Python 版本。

    天哪。2010 年……Python 简直是永生的。

    不过,抛开这一点不谈——我认为当“脚本”语言能够弥补与 C 语言之间的速度差距时,即使由于各种原因无法完全达到 C 的速度,它们也会成为真正的竞争者。

同日更多故事

2026-08-29