03-24-2026, 08:46 PM
(此帖子最后修改于: 03-24-2026, 08:53 PM 由 小鸟unsigned.)
第十章 Kalcor 的个人博客:Youtube 封禁与版本迷信(含2016年十周年)
2018 年 11 月 21 日,Kalcor 在他的个人 WordPress 博客(kalcor.video.blog)上发布了两篇文章,给这段历史留下了几段不寻常的记录。
第一篇:《我为何封锁了 SAMP 论坛上的 YouTube》
文章全文如下:
引用:"大约一周前,我封禁了 You(Them)tube 在 SA-MP 论坛的分享权限。
2018 年 8 月 6 日,Infowars 被 YouTube 封禁。不久后,Apple、Spotify 和 Facebook(这群唯唯诺诺的应声虫)也跟着封禁了 Infowars。
言论自由发生了什么?为什么这些被洗脑的社会正义战士要对真相如此敏感?如果我想从一个正规渠道而非 CNN 假新闻公司获取新闻和信息,我应该有这个权利,但显然那些硅谷精英们不同意。
所以我做了我该做的事。任何在 SA:MP 论坛上分享 YouTube 视频的人将被封禁。
现在你可以上传视频到哪里?目前有 Twitch、Steam、Streamable 和 Dailymotion 等几个选项。这个列表将来可能会改变。
让我们保护 Infowars 继续存在。"
——Kalcor,2018年11月21日,kalcor.video.blog
这篇文章表明,Kalcor 将 SA:MP 官方论坛作为个人政治立场的执行场所,并因此单方面剥夺了社区成员分享视频的权利。
第二篇:《我对版本命名系统的尝试》
同日,Kalcor 发布了一篇介绍其自创版本命名系统 "Kalver"(Kalcor Versioning) 的文章。文章详细阐述了 SA:MP 所使用的版本号规则,并在文末附上了这样一段话:
引用:"切勿超过 0.3。进入第 4 个大版本会给你的项目带来厄运,并给相关开发者带来死亡。如果你想在那个节点继续发布更新,请发布小版本更新。"
"总之,Kalver 可能是你所能接触到的最好的版本命名系统。我是对的。如果你认为我错了,那你就是错的。"
——Kalcor,2018年11月21日,kalcor.video.blog
这便是 SA:MP 的版本号为何始终徘徊在"0.3"从未前进的官方理由:Kalcor 本人迷信数字"4"不吉利,因此宁可将版本号以字母(0.3a、0.3b……0.3x、0.3z)和 R 修订号(0.3.7-R1、R2……)无限延伸,也不肯踏入"0.4"的门槛。
2016 年十周年问答——Kalcor 关于开源的另一套逻辑
在 2018 年博客文章之前,Kalcor 曾有过一次更为系统的公开表态。
2016 年,适逢 SA:MP 十周年,Kalcor 在官方论坛开设了一个专题问答帖,回答社区多年来积累的各类问题。这是自 0.3.7 发布后他难得的一次主动与社区互动。
在被问及是否考虑将 SA:MP 开源时,他的回答如下:
引用:"我曾经让 VC-MP 开源,结果并不令我满意。当你将一个游戏相关的项目开源,你不是真的在开放代码,你是在放弃它。VC-MP 大概有四五个不同的 fork,没有一个真正成功,这说明碎片化的 mod 对玩家没有好处。它们中的很多已经偏离了原始设计和游戏艺术风格太远。
我认为一个像 SA-MP 这样项目最核心的部分,除了技术水平之外,是让项目在相当长的时间里保持在正确的轨道上——即使偶尔会稍微偏离。
如果 SA-MP 是开源的,而我仍然在主导项目,这会让我陷入一个不得不审查和接受/拒绝来自随机陌生人的代码修改的处境。我不想在 SA-MP 上承担这个角色。"
——Kalcor,SA:MP 官方论坛,2016 年十周年问答帖
这段话与 2019 年 pawn.wiki 文章中的安全论点构成了两个不同维度、互相补充的闭源理由:
2016 年的理由是项目控制——开源意味着碎片化,意味着他必须成为代码审查员,这是他不愿承担的角色。他以 VC-MP 开源后一盘散沙的结局为前车之鉴。
2019 年的理由是安全防御——封闭源代码是他对抗外挂工具的核心武器,开源即意味着将自己的防线拱手相让。
两套逻辑都是真实的,都来自 Kalcor 本人。但它们所折射出的,是一个将 SA:MP 视为个人领地而非公共资源的心态——在这片领地里,社区是使用者,不是参与者。
这一立场,与日后 Y_Less 在《我的声明》中所说的"我们不想篡夺他,我们只是想确保它的延续"形成了最直接的对立。
第十一章 社区的自我拯救
在 Kalcor 停止更新的这些年里,社区并没有坐以待毙。
除了 Y_Less 的 YSF 之外,社区还涌现出另一个重要项目:fixes.inc——一套以纯 Pawn 脚本形式提供的 SA:MP 服务端修复库,由 pawn-lang 社区维护,无需安装任何插件即可使用。
然而,无论是 YSF(插件形式)还是 fixes.inc(脚本形式),都面临同一个根本性的天花板:在没有服务端源代码访问权限的前提下,某些深层的、与服务端核心逻辑相关的 bug,无论用多高明的外部手段,都无法从根本上修复。
用 open.mp 官方博客后来的话说:
引用:"SA:MP 长期陷于困境,没有更新,到处都是权宜之计,只为让一切继续运转。open.mp 改变了这一切——它是一次完整的重写,修复了长期遗留的问题,改善了脚本开发体验,移除了旧有限制,同时保持你现有代码的可用性。"
fixes.inc 和 YSF 所能抵达的边界,就是 open.mp 存在的起点。
第十二章 SAMPE:基于泄露源码的民间分支
在官方停止维护、社区自救能力接近极限的背景下,一些开发者走上了另一条路。
SAMPC(后改名 SAMPE,San Andreas Multiplayer Extended) 是这些民间尝试中较为知名的一个,由开发者 teredokot 等人在 GitHub 上公开维护。
SAMPE 的 README 文件对自身的来源与性质做出了坦率的说明,以下为原文(英文)及其内容:
引用:"这是否使用了泄露版本的 SA-MP 0.2 源代码?
是的,我知道我绝对不应该使用它,即使 VCMP 的 0.1 源代码是官方发布的,在没有任何书面许可的情况下尤其如此。这个项目的目的不是伤害 SA-MP 的世界,而是为玩家提供更好的游戏体验和/或为服务器主提供更好的脚本体验,并延续其生命周期。正如 Kalcor/kyeman——SA-MP 唯一的开发者——于 2019 年 11 月 11 日在官方 SA-MP 论坛上所说:'我发这篇帖子,是为了让所有人知道:SA-MP 的开发即将终止。'……我知道这在法律层面仍然没有权利使用,但是非曲直请你自行判断。
SAMPE 是否与任何官方 SA-MP 版本兼容?
不,而且永远不会兼容,至少你无法用 SAMPE 客户端连接任何 SA-MP 服务器,反之亦然……如果你在寻求拥有出色界面和功能的兼容性方案,你应该看看 OPEN.MP!https://www.open.mp/"
SAMPE 的存在,是 SA:MP 生态在官方停止维护后呈现出的"众人自救"状态的缩影之一。它明知使用了来源有争议的代码,但以 Kalcor 亲口宣告的放弃作为行动的道德依据——这种处境的两难,折射出整个社区在那段时期的集体困境。
第十三章 2019 年 11 月:Kalcor 的两段话与 SA:MP 的正式终结
2019 年深秋,Kalcor 在 SA:MP 官方论坛那个关于 0.3.9 版本计划的讨论帖(帖子编号 #670043)中,先后留下了两段发言。这两段话,加在一起,构成了 SA:MP 官方时代真正的终章。
第一段话,是非正式的、散漫的,却信息量极大:
引用:"好吧,我不干了。我没有正式宣布,因为总有可能来个安全更新什么的。
在这里待了跟我一样久的人,没有一个还在玩这个游戏。如果他们还在这里,也只是为了和多年前认识的人聊天。
你从头写一个 SA-MP 脚本是在浪费时间,除非这只是你个人感兴趣的事。现成的脚本已经堆积如山了。
2019 年你不会去开一个 SA-MP 服务器。如果你想做点跟 SA-MP 有关的事,去建一个有论坛的游戏社区,运营多款游戏。
我计划迁移到 Linux 桌面很久了。在计算机专业人士和科学家圈子里,这是个趋势。"
原帖:https://sampforum.blast.hk/showthread.php?tid=670043
第二段话,是正式的,简短,措辞经过了斟酌:
引用:"我发这篇帖子,是为了让所有人知道:SA-MP 的开发即将终止。
我从来没有要求就 DL 展开辩论。我已经说得很清楚了,我不打算在下一个安全更新里加入 DL 功能。
具体会包含哪些功能,我们内部可以自己决定。不需要任何投票或话题抗议。
我咨询大型服务器主的原因,是因为他们花钱维护服务器,花在这个 mod 上的时间比任何人都多。如果服务器主对我们粗鲁或者想坑我们,我通常就直接无视他们。"
——Kalcor,SA:MP 官方论坛,2019 年 11 月
这两段话合在一起,远比一句"SA-MP development is coming to a close"更能呈现 Kalcor 在这一时刻的真实状态。
第一段话里有疲惫,有放弃,也有某种居高临下的告诫——他告诉所有人不要再写 SA:MP 脚本了,不要在 2019 年开 SA:MP 服务器,他自己要去转向 Linux 桌面了。这些话,听起来不像是一个宣告退休的开发者,更像是一个已经在心里把这件事翻篇、只是在补最后一个手续的人。
第二段话里没有感谢,没有对社区十余年陪伴的任何致意,没有对未来的任何祝福。他用了"我们内部可以自己决定"——一个始终存在的管控口吻,即便在告别的时刻也未曾松动。
这篇帖子的发布时间,是 2019 年 11 月,距 Y_Less 在 open.mp 论坛发表《我的声明》已过去约七个月。
社区的反应在这一时期是分裂的。有人感到悲伤,有人表示理解,也有人已经在向前看。一名社区成员写道:
引用:"Kalcor 值得自由。他做了这个 mod,虽然人们有时候不认同他的决定,但这是他的 mod,他的决定是最终决定。你不喜欢 Kalcor 的决定?说声谢谢他花时间做了一个我们理所当然享用的 mod,然后走人。"
另一名成员则留下了更冷静的判断:
引用:"SA-MP 不会很快死去。失败的人会离开,新人会到来。"
这两种声音并存。但在这两种声音之外,还有一支二十二人的团队,正在以另一种方式回答这个问题——他们选择了既不离开,也不等待,而是动手重建。
第四卷:open.mp 的秘密与公开(2019)
第十四章 暗中启动的二十二人团队
就在表面上一潭死水的 2019 年初,事情已经在地下悄然开始。
一支由 SA:MP 社区最资深成员组成的团队,在不作任何公开宣传的情况下,启动了 open.mp 项目。
这支团队的规模,后来在 Y_Less 的公开声明中被披露:22 人,横跨多个国家,来自 SA:MP 生态的各个层面——有运营大型服务器数年的服务器主,有熟悉 SA:MP 底层结构的脚本开发者,有参与过 SA:MP 历代 beta 测试的老测试员,还有在俄语、罗马尼亚语、西班牙语等非英语社区拥有大量追随者的社区领袖。
从项目启动的第一天起,团队便确立了一条不可动摇的原则,并在之后反复公开强调:
绝不使用任何 SA:MP 泄露的源代码。
整个项目必须从零开始、完全独立地重新实现每一个功能。这一立场,是与 SAMPE 等使用泄露代码的民间分支项目的根本区别所在,也是 open.mp 在法律意义上站得住脚的核心。
团队原计划以一次完整的"横空出世"作为首次公开亮相——在 1.0 版本完全就绪之前,对外界保持绝对沉默,让发布本身成为最大的惊喜。
这个计划,后来被迫改变了。
第十五章 2019 年 4 月 13 日:意外曝光与 Y_Less 的声明
2019 年 4 月 13 日,open.mp 项目在尚未准备好的时候意外曝光。起因是社区中流传出一条缺乏上下文的帖子,引发了大量错误解读、猜测和混乱。
同日下午,Y_Less 在当时 open.mp 团队所使用的临时论坛(burgershot.gg,也是 open.mp 论坛的前身)发布了一篇题为 《我的声明》(My Statement) 的长文。
这篇声明至今仍保存在 open.mp 论坛。以下是其完整内容的中文译文:
引用:"是时候说出我的立场了。你们都有一部分是对的,但可能不是你们认为的那个方向。我并不是要分裂社区,我并不是要创建 SA:MP 的竞争对手,还有一点重要的附带说明:我没有在窃取任何人的代码。你们所有人都认为猫已经从袋子里跑出来了,因为一篇措辞糟糕、完全脱离对话上下文的帖子。你们透过袋子瞥了一眼,就认为整件事是愚蠢的——鉴于信息的缺乏,这是可以理解的。我试图只分享重要的要点,却没有透露太多细节,不幸的是这适得其反,因为现在你们只有半个故事,却要从中得出结论。>
所以让我们把一切都摆出来。
我并不是要分裂社区。 然而,有人 正在 试图摧毁它——他们垄断了信息,扣押了社区长期渴望的更新,上周威胁要删除整个论坛,并封禁任何表示这或许不是个好主意的人。这个人已经亲手分裂了社区——发布了两个相互独立的平行版本,然后疑惑为什么其中一个的用户迁移并不像最初设想的那样全面。超过一年里,人们一再请求将 0.3.7 和 0.3dl 合并,而他只是坐在那里,自顾自地疑惑是否真的有人想要这件事。他说他相信社区正在死亡,SA:MP 正在死亡,只剩一两年;他很满足地旁观这一切发生。我们中的一些人持不同意见,并试图说服他要么继续维护,要么将主导权传给别人。社区在萎缩大概是不可避免的,但只有在得不到支持的情况下它才会死亡——而这正是现在正在发生的事。
有一个非官方的 Discord,是的,那里人们有时候会开玩笑、互相打趣。但它不是作为一个反叛之地而创立的。它的诞生是因为人们喜欢 SA:MP,而人们使用 Discord,于是社区自然而然地想将两者结合。还有一个非官方论坛,Kalcor 自己以前曾说过,如果你不喜欢这里,就去创建你自己的,但现在却封禁那些这样做的人。然而,这个论坛和 Discord 都不是由我运营的。它们只是官方渠道未能前进的自然结果。这不是分裂,这是进步。
我并不是要创建 SA:MP 的竞争对手。 这句话里有两个词是错的——"创建"和"竞争对手"。我不是在"创建"任何东西,我只是在试图衡量人们对一个已经进行了相当长时间的项目的进一步兴趣。这是过去一年里仅来自该项目的提交记录:[图片]。这没有什么新鲜的,那么这是什么?为什么它不是一个竞争对手?
我确实曾经离开过 SA:MP,是的,但那是六年前的事了——请翻篇吧!
我并没有背叛 SA:MP,我也没有背叛 Kalcor——是他在背叛 SA:MP,但大多数人无法将两者分开。是的,他创立了它,但这不意味着它属于他。数百名其他人花费了无数的小时、天、周、年在这上面,让它成为今天的样子,但仅仅因为 Kalcor 独占了其中一个小小的部分——服务端代码,他就认为自己是最重要的部分,可以决定项目的去向和终结时间。在一开始,是的,他做了大部分工作,但请扪心自问,你真心认为在过去几年里,谁为这个 mod 做了更多——Kalcor,还是以下这些人中的任何一个:[图片]
我们不想篡夺他,我们不想贬低他或他的贡献。他创立了这个 mod,他让人们参与进来,但所有那些其他人帮助他把它带到了今天的位置,而正是那些人——社区——正在被压制和忽视。我曾多次试图充当调解人,将 Kalcor 的观点带给人们,将社区的观点带给他,并为此从双方都受到了无尽的批评。我也多次试图让 Kalcor 把 mod 的运营/更新传给别人(不一定是我,但没有其他人站出来)。得到的回应是什么?
- 他不相信我有能力添加重大新功能。当然他自己也没有在添加,而且实际上根本不认为有任何值得添加的功能,所以这又有什么关系呢?
- 他想要一个计划。我的主要优先事项是修复 bug,改善 API 中明显的空白,以及为其他语言创建一个更好的平台——也就是一个合适的 C/插件 API。这些甚至不是困难的任务,而且我早已证明了自己有能力完成。但显然这不算是一个计划。
- 用他的原话说——"他们不配拥有它。" 这就是他对这个社区——而我显然是在试图分裂的那个社区——以及有人试图延续它这件事的评价。
引用:没有人介意他想要退出,这显然是合理的,完全自然的。我们反对的是他要把其他一切都一起拖下去。这是一个社区——这是一个拥有很多非常优秀的长期朋友的伟大社区,以一个封闭源代码的 mod 为中心,而这个 mod 有一个偏执的、控制欲强的领导者。我们想要移动这个中心,仅此而已。我们不想摧毁 SA:MP,我们不想分裂社区(之所以被发现,是因为我试图让长期被忽视的俄罗斯社区参与进来,从而重新吸引已经被分裂出去的人),我们想确保它的延续——因为 Kalcor 并不想。
所以我给你们:
open.mp
这就是这个项目(和域名,burger-shot 论坛只是一个临时方案,直到我们建立真正的论坛,这还没有完成)。来自圣安地列斯多人联机顶端的二十二名成员——服务器主、脚本开发者、测试员和其他社区领袖——正在合作,从头开始重建整个项目。创建一个新论坛很容易;始终巩固 Kalcor 控制权的东西,是他对 mod 源代码的独占访问权。确实存在一个泄露版本,但从一开始我就绝对明确地表示,我们将在这方面走正道,并断然拒绝以任何方式使用它。所以我们一直在从头开始重新实现整件事。我们最初想要发布一个完整的 1.0 版本——以那个公告作为任何人听说此事的第一次——但这现在不会发生了。但它也不太远。
有过一些分支项目,但它们有两个主要问题:1)它们使用了被盗的代码,这是我们没有做的,2)它们试图重新发明轮子——新的脚本语言、完全不同的功能等等。我们正在制作完全向后兼容的版本。 你可以将你的服务器切换到我们的平台,运行相同的脚本,你的玩家甚至不会注意到任何不同。当然,随着时间的推移,新功能和改进的计划是有的,但目前重点是向后兼容性、稳定性和 bug 修复(我们作为社区已经以前做过的修复,因为 Kalcor 不会做)。
我为与 Kalcor 合作改进 SA:MP 而努力了超过一年,只是碰巧有一个备用计划。所以你可以坚守他的阵营,如果你相信他的方式即将改变,更新突然会发生(如果这场风波迫使了这一点,那我们实际上已经成功实现了最初的目标)。或者你可以坚守社区的大多数,他们知道存在问题并想要解决它——那些一直在那里支持你的人,帮助、教导、托管和领导。
由你来决定你认为谁背叛了 SA:MP……你知道在哪里可以找到我们。"
——Y_Less,open.mp 论坛《我的声明》,2019年4月13日
这篇声明发布后,跟帖迅速增至数十条,来自世界各地的社区成员纷纷表态。
TommyB(open.mp 团队成员,德克萨斯州,美国)写道:
引用:"很遗憾事情不得不走到这一步,但让我们向着更美好的明天干杯!!!"
adri1 提出了质疑:
引用:"你被重新加入了论坛 beta 测试员名单(所以 Kalcor 信任你),而你和其他人却在秘密进行那个项目,你本应该拒绝那个职位。我认为,如果你只是说'嘿,看,我们在开发一个新的多人联机!'而不是攻击 Kalcor,什么都不会发生。你基本上说的是'Kalcor 正在杀死 SA:MP,来加入我的新 MP mod'。我认为是他所信任的人的失望让他做出了大规模封禁的决定。"
Y_Less 对此只简短回应了四个字:
引用:"正好相反。"
TommyB 随即补充了更详细的背景:
引用:"公平地说,Y[i]Less 并没有要求重新进入 beta 测试员名单。他只是在与 Kalcor 公开互动之后被直接加入了,在那次互动中他表达了愿意接管 mod 开发的意愿,这是 Kalcor 之前曾拒绝过的。在他短暂回归期间,发生的事情几乎只有在 beta 区域发了一些关于 SA:MP 未来的论坛话题。这些话题里充满了对 Kalcor 就 SA:MP 未来方向应该去哪里的宣传和建议,几乎所有东西都要么被忽视,要么被否定,因为'samp 只剩 1 到 2 年了'。几乎每个想法都被否决了,或者从未走到任何地方。YLess 在 beta 区域多次询问是否可以接管 SA:MP 的方向和开发,但这也被拒绝了,因为 Kalcor 根本看不到这个必要性。[/i]
当面对一个已经拿定主意、坚持自己的立场、不会让任何人动摇其看法的人时,继续与他争执的意义何在?很明显,社区中还有很多人希望看到 SA:MP 继续发展繁荣,但数百位社区用户的抱怨和建议都落入了聋耳。现实地说,当你走到这一步的时候,你可以做什么?你可以继续与一个显然不会改变立场的人来来回回,或者你可以另起炉灶,自己继续推进。Y_Less 和 open.mp '团队'选择了后者。"
一位来自罗马尼亚的用户 Reachless 写道:
引用:"我可以向你保证,每天拥有超过 5000 名独立玩家的罗马尼亚社区将支持 open.mp。我们已经等了太久太久的 SA:MP 更新了。"
这场声明,就是 open.mp 历史上真正意义上的"宣誓就职"。
第五卷:从无到有的漫长建设(2019–2022)
第十六章 2019 年 11 月:Kalcor 的最后声明
2019 年 4 月,Y_Less 的《我的声明》在社区引爆了一场风暴。open.mp 的存在公开了,二十二人团队的名字公开了,Kalcor 多年来的所作所为也被逐字逐句地摆在了所有人面前。
在那之后,Kalcor 没有回应。
没有公开反驳,没有公开澄清,没有任何公开表态。open.mp 团队继续推进,社区在争论与期待中等待,服务器还在运行,玩家还在上线。
七个月后,2019 年 11 月,Kalcor 终于再次出现在 SA:MP 官方论坛,在一个关于 0.3.9 版本计划的讨论帖里,留下了他最后的话:
引用:"我发这篇帖子,是为了让所有人知道:SA-MP 的开发即将终止。"
一个存在了将近十五年的游戏模组,以这样一句话,宣告了它官方时代的终结。
而那支在地下已经耕耘了将近一年的团队,此刻正在继续写另一个故事的开头。
第十七章 2020 年 4 月:open.mp 的公开答疑
2020 年 4 月,open.mp 团队通过 VK 平台发布了一份面向社区的 FAQ 文档,系统回答了社区最关心的问题。以下是该 FAQ 的完整内容:
问:GTA SA 和 SA:MP 中的 bug 会被修复吗?
引用:会的!你也可以向我们反馈我们尚未知晓的 bug:github.com/openmultiplayer/samp-bugs/,或在论坛提交:burgershot.gg/showthread.php?tid=99
问:哪些 SA:MP 版本将受到支持?包括 0.3DL 吗?
引用:我们不会支持 0.3.7 以下的版本,但你可以自行实现(这正是开源的魅力所在)。如果大多数项目愿意尝试 0.3DL,我们会支持它们。我们也进行过调查,多数人支持 0.3DL,所以我们很可能会做,但肯定不会在客户端的前几个版本中。
问:open.mp 客户端会有固定的更新周期吗?
引用:不会。固定周期需要一支流程成熟的大型团队,而我们目前是一支志愿者队伍。也许情况将来会有所改变,我们不敢打包票。代码开源之后,你们可以随时关注项目进展。我们会尽一切努力在版本更新之间保持与社区的沟通。
问:我们可以提交新功能建议吗?
引用:我们非常欢迎社区参与,可以在这里留下建议:burgershot.gg/forumdisplay.php?fid=42\&page=6。当然,我们无法保证每个想法都会被采纳和实现。但由于代码是开源的,你随时可以自己动手实现。
问:会有反作弊系统吗?
引用:会有。
问:open.mp 会继续使用 Pawn 吗?可以使用其他语言吗?
引用:所有的开发工作、测试和文档均以 Pawn 为基础完成。不过,我们提供了 C API,允许任何人在此之上实现其他语言的支持。我们也讨论过引入一些半官方的语言模块,但 Pawn 依然是主要且受官方支持的脚本语言。
问:SA:MP 的插件能在 open.mp 中使用吗?
引用:"插件"这个词目前用来指代旧式插件——即那些为 SA-MP 编写的插件(例如 sscanf、MySQL 等)。open.mp 提供了加载这些现有插件的 API。我们对新式插件的称呼是"模块"——无论是外部插件还是内部代码,只要使用 open.mp 更新、更强大的 API,统称为模块。旧式插件仍然可以正常运行,并会持续得到支持,除非它们依赖内存黑客手段(例如 YSF),因为那类插件依赖特定的内存地址和数据结构,而这些在 open.mp 服务端上是完全不同的。不过,大多数老式内存黑客当初存在的意义,恰恰是为了补全一些功能——而这些功能将直接内置于 open.mp,所以那些插件本来也就用不着了。
问:数据库功能只能用 SQLite,还是也可以用 MySQL?
引用:默认的数据库功能与以前一样,仍然是 SQLite。但如前所述,open.mp 提供了加载现有插件的 API,因此数据库方面无需在内部做任何改动——通过现有插件依然可以实现。第三方模块在 open.mp 中是完全受支持的"一等公民"——无论是回调还是原生函数,其可用性与内部代码完全一致,因此将功能放入外部模块不存在任何劣势。
问:会有更多自定义选项(HUD、体力值、小游戏、CEF 等)吗?
引用:关于这个话题我们收到了太多提问,请先去泡杯茶——这个回答会有点长。
我们的开发团队里有 Hual(SA:MP+ 的作者),未来会带来什么,谁知道呢?
SA:MP 与 MTA 最本质的区别,其实在名字里就说得很清楚了——SA:MP 就是字面意思上的"圣安地列斯多人联机",是 GTA 圣安地列斯这款游戏的多人版本;而 MTA 则是一个架设在这个世界观之上、更偏向通用平台的存在。SA:MP 在加入新功能时,始终紧扣原版游戏的体验感,尽管走出框架并非不可能,但整体风格一直非常保守。我们之所以长期坚守 SA:MP,正是因为认同这种态度。但我们希望拥有更多一点的自由度(这也是我们另起炉灶的原因),同时又不想走得太远。我们会引入一些新功能,其中有些在原版游戏中并不存在,但我们仍然会审慎地权衡每个功能带来的影响。
让对话框稍微宽一点,算是突破 GTA 正统边界的疯狂改动吗?大概不算。加入 CEF 是否走得太远了?是的,这不会发生。平衡点就在两者之间。
主要的顾虑集中在客户端层面。我们不希望服务器主可以向玩家分发任何具有潜在危害的内容。圣安地列斯本身并非为多人联机或 mod 而设计,许多文件加载器对损坏或恶意文件缺乏防护——当初根本没有这方面的需求。这正是 SA:MP 在引入自定义模型时遇到的难题,对我们来说同样如此。
至于资源保护——坦率地说,这在根本上是无法实现的。要让客户端显示一个自定义模型,就必须把这个模型文件传给它。文件一旦传到客户端,它就在对方的电脑上了,对方拿它怎么做,我们管不了。有些方法可以让盗取变得麻烦一些,但没有哪种方法是绝对可靠的。
问:NPC 会有更好的支持吗?
引用:这不是我们当前的优先事项,但从客户端角度来看,NPC 本质上与普通玩家没有区别。我们至少希望 open.mp 的 NPC 功能能够对标 FCNPC 插件的水平,这是未来版本中我们可以认真考虑的方向。
问:你们说 open.mp 移除了所有限制——这具体是怎么实现的?它像 streamer 插件一样吗?
引用:原理类似,但与 streamer 相比集成度更高,因此我们同样可以对载具和玩家进行流式处理,并能以远超插件能力的方式操作本地 ID。
问:玩家可以被附加到物体上吗?
引用:可以,我们已经实现了这个功能。
问:可以用 SA:MP 客户端连接 open.mp 服务器吗?
引用:SA:MP 是通过逆向工程对第三方程序进行交互的 mod,open.mp 也是如此,我们的法律立场与 SA:MP 完全相同。我们没有使用任何 SA:MP 的泄露源代码——这一点已经反复强调,代码开源之后,社区自然会看得清清楚楚。
问:五年后,你们认为 open.mp 会是什么样子?
引用:不必担心这个,我们有很多长远的想法。
问:五年后,你们认为 SA-MP 会是什么样子?
引用:那是 SA-MP 团队的事,不是我们该操心的——在这个问题上我们没有立场去猜测。
问:你们有没有想过放弃 open.mp?
引用:有过,因为我们也是普通人。
最后,也是被问得最多的问题:我们什么时候才能看到 open.mp?
引用:等它准备好了。
祝大家接下来的一周愉快!带着满满的爱,open.mp 团队 ?
第十八章 重写、内测与 MTA 的合并提案
2021 年 6 月,open.mp 团队宣布启动第二次完整重写。第一轮开发的代码库由于架构过于复杂、协作成本过高而被整体放弃,团队重新确立了核心原则:先做 SA:MP 行为的 1:1 兼容替代,功能新增置于其后。
2022 年 1 月 1 日,open.mp 团队发布《2022 年更新》公告,宣布启动首批半公开服务端内测,面向服务器开发者招募测试员,同时披露团队正在探索为《GTA SA 终极版》开发客户端的技术可行性,目标是实现 PC 原版、Android 版与终极版三端玩家的跨版本互通(cross-play)。公告中附有史上第一段三端客户端同时在线的测试视频。
也是在这一时期前后,MTA(Multi Theft Auto) 的团队代表 Jusonex 发出了一封公开邀请函,以下是该信的完整内容:
引用:"你好,
在正式开始之前,先允许我做个自我介绍。我是 MTA 团队的成员,长期深度参与多人联机模组的开发工作。本帖内容也已获得团队其他成员的认可。
过去这几天,我们一直在默默关注 SA-MP 的近况,以及你们测试团队的动向。我们刻意等待了一段时间,让局势稍微平息,这也是我们迟迟没有表态的原因。
在我们看来,眼下的局面对 MTA:SA 和 SA-MP 来说,恰恰是一次难得的相互靠拢的机会。我们理解你们对现状的不满,但我们认为,为《GTA 圣安地列斯》这款已有相当历史的游戏再从零搭建一个多人联机项目,似乎并不是最明智的选择。我们对圣安地列斯的热爱,与你们一样深厚。尽管近来在线玩家数量基本保持稳定,但不可否认的是,吸引新玩家的难度正在与日俱增——尤其考虑到玩家群体结构的变化。
因此,我们诚邀你们加入 MTA 社区。从技术层面来看,我们认为最务实的方案是实现从 SA-MP 到 MTA 的兼容层,这样也能帮助你们更快推进前期更新的发布。
说几个数据:过去三年,我们发布了四个新版本,并持续推出大量迭代更新和反作弊升级;而 SA-MP 的最后一次官方发布,距今已超过四年。
除少数例外情况,MTA 在技术上已基本能够"模拟"SA-MP 的全部功能。我们相信,凭借你们作为资深开发者的经验,双方完全可以共同实现客户端兼容。此外,我们已有一个名为 amx 的资源,可在 MTA 内部运行 Pawn 虚拟机。该资源目前版本较旧,可能需要重构,但核心功能依然可用。
我们相信这将是一个对双方都有利的合作,也是两个社区难得的机遇——不仅能汇聚各自优秀的开发者和新鲜想法,还能为玩家带来真正丰富的游戏体验,甚至可能吸引新玩家加入,并催生一批概念全新的脚本功能。
如果你们对潜在问题有任何顾虑,欢迎随时与我们深入探讨。谨致问候,代表 MTA 团队。"
——Jusonex,MTA 团队代表
open.mp 开发者对此的回应出现了明显分歧。
MyU(open.mp 开发者)的个人意见:
引用:"首先声明:以下内容纯属个人观点,与 open.mp 项目及团队立场无关。
事实上,已经有一些人指出,MTA 和 SA-MP 本质上是两种完全不同的东西——确实如此,差异相当显著。MTA 走的是不断创新的路线,而 SA-MP 则始终'守着老传统';正因为长期没有更新、也不理会社区的功能需求,才会是今天这个局面。
我个人两款都玩过(MTA 是大约两三年前,当时 OOP Lua 刚加入不久,玩了一两个月)。玩了一段时间后,MTA 对我来说变得有些'吃不消'——那时候我的电脑配置比较低,加上遇到了一些 CEF 相关的问题,虽然我相信这些问题现在应该都已经解决了。
SA-MP 相当'轻量':一个压缩包、一个 samp.dll、一个启动器,再加一两个文件,就全了。而 MTA:SA 则捆绑了 CEF 文件、CGUI 文件、本地化文件等一大堆内容。我个人认为,把这两个多人联机合并在一起是行不通的——它们太不一样了,目标也各不相同。SA-MP 里安装 mod 极其简单,丢进游戏文件夹就能用;MTA:SA 则更像是一个经过精心打磨、功能完整的多人联机模组,但玩家有自己的偏好,这无可厚非。
简单总结一下:SA-MP → 轻量、易上手,但在某些方面存在局限;MTA:SA → 体量较重,但功能全面,有时略显复杂,稳定性却强于 SA-MP(玩家们甚至会利用 MTA:SA 的崩溃报告来排查问题——这本身就说明很多问题)。
不过我认为,玩家并不希望社区就此一分为二、各走各的路。竞争本身,以及由此带来的优胜劣汰,对整体发展是有益的。"
Sasino97(open.mp 软件开发者):
引用:"我认为加入 MTA 最大的好处,是可以直接接触到庞大的现有玩家群体,以及 MTA 客户端本身极为强大的功能上限。至于缺点嘛……他们的论坛实在是太丑了,抱歉直说。不过,我个人很认可 open.mp 这个项目的理念,所以我觉得两边应该作为独立项目,各自继续发展下去。"
JustMichael(open.mp 论坛跟进者):
引用:"我们需要在团队内部充分讨论之后,才能就该提案给出正式回应。这绝非一个小提案,我们需要时间消化并核实帖子中提及的所有信息。因此,请不要将这条回复理解为拒绝——我们绝对没有在拖延,会尽快给出正式答复。"
最终,这场讨论以双方维持独立发展收场,没有发生任何形式的合并。
第六卷:发布、传承与现状(2022–2026)
第十九章 2022 年 11 月:Kalcor 最后一次现身
距 Kalcor 宣告放弃 SA:MP 已过去整整三年。
2022 年 11 月 16 日,他在个人博客(kalcor.video.blog)发布了一篇简短公告:
引用:"一个重要的客户端更新(SA-MP 0.3.7-R5)现已在下载页面提供。
客户端存在一个漏洞。这是一个严重的 RCE(远程代码执行)漏洞,允许服务器主在玩家电脑上执行未授权代码。此更新修复了该漏洞。0.3.7 服务器运营者应检查客户端版本,并建议仍在使用旧版本的玩家进行更新。-R 版本包含 bug 修复和安全更新。请始终使用最新版本。"
——Kalcor,2022年11月16日,kalcor.video.blog
RCE(远程代码执行)漏洞的严重程度无需赘言——一旦被恶意服务器利用,玩家设备上可以被执行任意代码,后果不可估量。正是这一威胁,让 Kalcor 在沉寂三年之后重新露面,打了这最后一个安全补丁。
这也是 Kalcor 迄今为止最后一次以 SA:MP 开发者的身份公开发声。

