EVE Online 启动 Python 3 迁移计划
EVE Online moves to Python 3
运行了二十多年的 EVE Online 终于开始向 Python 3 迁移。作为 EVE Evolved 计划的一部分,这次迁移旨在利用 Python 3 的性能提升和现代工具链,为游戏带来更快的运行速度和更高效的开发体验。尽管代码库庞大且包含大量历史遗留代码,团队正通过自动化工具和分阶段测试,确保在 Tranquility 服务器保持 23.75 小时在线的同时,让这次升级对玩家完全无感。这不仅是一次技术升级,更是为未来二十年游戏发展奠定基石。
这次迁移成功的定义很简单:除了偶尔感觉运行更顺畅外,玩家应该完全察觉不到任何变化。
HN 评论区
218- ryukoposting
给那些像我一样从未听说过 stackless python 的朋友,这里有一些基本的示例代码:https://github.com/stackless-dev/stacklessexamples/blob/main...
快速连续说五遍 "stackless tasklet"。
- simonebrunozzi
有经验的玩家能给我们总结一下如今 EVE Online 社区的“氛围”吗?我大概 15 年前浅尝辄止过。
- est
Stackless python 曾拥有巨大的潜力,在 Agent 时代,它对于处理带有持久状态的长运行任务将极其有用。
现代 Python 朝着 asyncio 的方向发展,但结合 tasklet 和 continuation,它本可以成为更强大的组合。
- Cakez0r
> 那么你们如何迁移 240 万行代码?
> 非常谨慎地,分多个阶段进行。
这个回答感觉像是三个月前的老黄历了。
- markkitti
如果我是 Fenris Creations,我会复刻 Allegiance。
- ufo
Stackless python 后来怎么样了?他们把所有 stackless 的东西都砍掉了吗?
- santiagobasulto
当 Python 开始引入 asyncio 时,我最初的反应相当负面。我当时就像个爱抱怨的老程序员(“现在的年轻人应该学习如何使用并发,而不是去搞一套全新的运行时!”[0])。
但在将其用于一个生产项目后,我必须说,我对它的成熟度、API 质量以及整体性能深感满意和惊讶。
事实证明我错了,而且我很高兴自己错了 :)
[0] 指“老头对着云大喊”这类网络迷因
- shevy-java
> 你们中有些人可能记得 2007 年升级到 Stackless Python 2.5,然后在 2010 年升级到 Stackless Python 2.7。那是 EVE 最后一次更改其 Python 版本。
天哪。2010 年……Python 简直是永生的。
不过,抛开这一点不谈——我认为当“脚本”语言能够弥补与 C 语言之间的速度差距时,即使由于各种原因无法完全达到 C 的速度,它们也会成为真正的竞争者。