V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
secondwtq
V2EX  ›  Steam

《命令与征服》重置版将以 GPL 3.0 协议开放部分源代码

  •  1
     
  •   secondwtq · 2020-05-21 03:15:23 +08:00 · 4533 次点击
    这是一个创建于 1408 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://www.ea.com/games/command-and-conquer/command-and-conquer-remastered/news/remaster-update-modding

    开源部分限于 “TiberianDawn.dll” 和 “RedAlert.dll” 两个文件。

    EA 表示“this will be one of the first major RTS franchises to open source their source code under the GPL”。

    7 条回复    2021-12-01 13:12:00 +08:00
    dawn009
        1
    dawn009  
       2020-05-21 07:35:58 +08:00
    对于 MOD 制作是好消息。

    "we made the decision to go with the GPL license to ensure compatibility with projects like CnCNet and Open RA"

    同时关注 Open RA 项目能否从中获益。
    Cryse
        2
    Cryse  
       2020-05-21 08:50:12 +08:00 via Android
    将军要是能开源或者有个开源版就好了
    wordsman
        3
    wordsman  
       2020-05-21 08:51:50 +08:00
    希望能有个 Mac 版
    alienx717
        4
    alienx717  
       2020-05-21 14:39:22 +08:00
    疫情期间,在家萎靡不振,天天玩儿凯恩之怒
    secondwtq
        5
    secondwtq  
    OP
       2020-05-22 00:59:51 +08:00
    添加一些上下文信息以飨吃瓜群众:

    根据官方消息 https://www.ea.com/games/command-and-conquer/command-and-conquer-remastered/news/remaster-update-source-code,Remastered 将会使用岩画的所谓 GlyphX 引擎和 TD/RA1 的源代码“拼凑”而成。(据传言 EA 丢了一些老游戏的源代码,不知道是不是真的,不过 https://kotaku.com/guy-finds-starcraft-source-code-and-returns-it-to-blizz-1794897125 这种事情倒也不是没发生过)
    GlyphX 引擎应该本来是个 3D 引擎,用于岩画的 灰蛊(屎),8-Bit 系列等游戏,网上资料不是很多,可能是由 Empires at War 用的 Alamo 发展出来的,也就是说岩画一直靠这个当家吃饭,我推测开源的不会有这个核心引擎。这两个 DLL 应该主要是一些纯逻辑的东西。

    另外 EA 还放出了一个 FAQ: https://www.ea.com/games/command-and-conquer/command-and-conquer-remastered/modding-faq
    这次的公告里面提到 Remastered 发布后,玩家可以在官网上联机,但是由于疫情难以进行开发和测试(嘛,至少是这么说的),所以这次发布不会包含局域网联机功能。FAQ 中表示官网联机不支持 Mod 。官方在 Reddit 贴子 https://old.reddit.com/r/commandandconquer/comments/gnevp8/remaster_update_and_open_source_mod_support 回复说局域网功能放出后将会支持 mod 联机。
    另外 FAQ 还说单人任务也不支持 mod,根据这些信息我大致可以推导出两点:一是就算单人任务不支持 mod,也并不意味着“不能用 mod 玩任务”,因为自定义任务是支持 mod 的,那只要用地图编辑器复刻一遍原来的任务放进游戏里就可以玩了(官方在 Reddit 上也是这么说的 ...)。另外 EA 很早之前就说了地图编辑器会和游戏一起放出,当时对 mod 的态度是“不做任何承诺”,我一向比较喜欢从消极角度看事情,所以说实话,其实那时已经是事实上死心的状态。第二是确实会有一部分引擎不开源,不然怎么会有这么蛋疼的限制,而且唯一的 workaround 居然是做个新地图 ...

    不过 C&C3 、RA3 等 SAGE 游戏的模式是:exe 做一个 Launcher,可能包含一些检查更新检查 CD-KEY 之类的东西,然后把引擎整个放在另一个 binary 里面(不清楚是个 Executable 还是 DLL ),启动时由 Launcher 载入引擎的 binary 。如果是按照这种模式,那相当于 DLL 就是整个游戏了。
    我在国外论坛上和其他 modder 简单交换了意见,鹳狸猿不知道哪里来的自信,认为 Remastered 和 C&C3 的模式一样,嘛,但愿我是错的 ...

    有人认为 IO 、GUI 和渲染之类的”basic stuff“不开源也无所谓,但是在我看来区别很大——比如我曾经研究过宣传片里面那个特斯拉线圈的电弧,我觉得它并不好看,可能我想改掉它。但是如果引擎只给我提供了一个高层的画电弧 API,却不能控制底层绘制,那就算游戏逻辑开源了,这个东西还是没办法改。

    不过就算完全不支持 mod,Remastered 还是可以在 mod 社区发光发热——至少可以为 OpenRA 提供高清素材(现在有源代码就更好了)。但是不好说 OpenRA 会不会把 Remastered 的素材和功能集成进来,因为在我印象中他们蛮死脑筋的 ...
    另外由于引擎(大概)不是完全开源的,这也意味着大概只会有 Windows 版(除非拿 Wine/Proton 之类的东西试试运气)。这一点是没法和 OpenRA 比的。全面开放源代码的一个好处就是就算厂商彻底放弃了这个游戏(就像不要钱之后那个状态),玩家还是可以维护源码,不一定做什么大改,至少能移植到其他平台,解决下新系统、新硬件的兼容性问题。在我看来这也是很重要的一点。

    但是就算不是完全开源,这个事我目测还是很大一个进步。我认为做到这个程度对于一般的 mod 已经绰绰有余。各个游戏的 modder 都有很多喜欢做 total conversion 的,total conversion 必然会遇到闭源引擎的各种限制。其实我觉得做 total conversion 的就应该找个(写个)正经的游戏引擎做正经的游戏,游戏厂商的工作是提供游戏,不是提供游戏引擎。

    EA 这次选择用 GPL 协议,应该也是出于自身利益考量,这个其实很有趣:一般我们刻板印象中的带开源项目都是一个 repo,一堆 Issue 和 PR,什么 CI 流程发布流程都整上,也就是说不仅有”代码“,还有"社区”。而一般如果一个公司把自己的项目开源,社区在 excited 的同时也多少会感觉到有点钦点 ... 啊不是,“甩锅”的意思在里面。也就是说社区帮助公司维护项目,公司就可以利用社区的贡献,把这个项目用到其他非开源的项目里面。走这种模式的话,一般会用 BSD/MIT 之类比较 permissive 的协议。
    但是实际上开源仅仅是在 Web 开发等局部圈子里玩得溜,踏出这些圈子之后就是开源的沙漠。就算是 Web 开发,也很少有直接开源最终产品并且按照开源社区的方式来运营的。游戏过去也算是开源的苔原,最近稍微好一点(注意游戏界很多惹人注目的所谓“开源”项目,使用的并非真正的开源协议,只是把源码给你,你能看能改,但是一般源码的使用、重分发之类的都是受限制的,所以最多算 shared source )。而涉及到游戏成品,成熟的模式就是厂商发布,Steam 评论一波,厂商再改,更新一发,Steam 又评论一波。EA 应该不会尝试去搞什么开源社区,也不会直接采用社区贡献的代码,因此 GPL 对 EA 其实没坏处。

    主题中提到 EA 说这是首次 RTS 开源尝试之一,这句话丰富的修饰成分”one of“,”major“,”GPL“很有趣。
    RTS 作为经典的 PC 游戏类型,开源其实是早已有之。最典型的是 Relic ”开源“ Homeworld 1 的源码,注意这个”开源“并不一定是真的开源,所以加了引号,因为它的 License 其实也不是一个正经的开源 License,而是 Relic 自己的一个 License,具体文本我没有看所以也没办法确定到底算不算开源 License 。这个事确实给 Homeworld 1 的 mod 社区续了不少命。不过其实 Homeworld 2 就没再开源了(并且他们貌似弄丢了一代资料片 Cataclysm 的源码)。前两年的 Remastered 是基于二代引擎做的,所以其实一代源码现在可以看,但是用处不大。Homeworld 对我个人来说算”major RTS“(其实大概是除了 C&C 之外做得最好的 RTS ),但是这个开源不是 GPL 。
    另一个开源的 RTS 是 Warzone 2100,这个是 GPLv2,我没经历过那个时代,也没玩过这游戏,所以其实不好说到底算不算 ”major RTS“。

    虽然如此,我个人是非常支持 EA 使用 GPL 协议的。因为这产生了一个微妙的副作用:就是根据 GPL 的规定,所有 mod 里改了这些 DLL 的代码,以及其他链接过去的 binary,只要 mod 发布了,都需要开源。其实做 mod 最大的限制是一是个人的能力和时间,另一个就是闭源的游戏引擎本身。对于 mod 社区整体而言,有关引擎的技术(包括绕过引擎限制的技术,扩展引擎功能的技术)等都是最关键的技术——因为这是整个社区所有人的瓶颈。现在 mod 社区有一小撮人过于神经质,他们搞出了一些这种技术,但是并不开放给社区其他人,而是留着给自己 mod 用,甚至还千方百计藏着掖着生怕别人知道(我就被人问过如何达到这种目的 ...)。这个部分锅要给 mod 社区素质参差不齐的新手们背——一些新手连用别人的东西要声明版权都不知道,经常看见这种人真的很累。但是现实是傻逼哪里都有,为了对付傻逼搞技术封锁,对 mod 社区整体却是不利的。GPL 从根上杜绝了这种情况。
    不过这只是我打打嘴炮,因为你也看到了,modder 群体其实就是玩家群体的某种采样。有一部分新手啥都不知道,绝大部分人也并不足够了解开源,不知道 GPL 是什么,都很正常。这也不能指望他们会抛弃旧思维,更不能指望会遵守 GPL 协议的规定。EA 也不大可能会为了这点小事真闹上法庭——再说如果 EA 一边比划(自行脑补手势 ...)一边说“当然资瓷 mod 社区啦,你问我资瓷不资瓷,我说资瓷,我就明确告诉你这一点”,然后一边又把 modder 送上法庭批判一番告诉你做 mod 出了偏差要负责的,那不是狠狠的得罪了一下所有人么 ...

    考虑到现在八字还没一撇,以及 EA 弄丢老游戏源码的传言,我对后面诸作的重置和开源都不抱什么希望。其实有个人感情因素,因为我的人生目标之一是折腾出一个类 SAGE 的游戏引擎,怎么能被 EA 抢了先 ... 不过我个人倒是很希望看到二代作品和叛逆者能有一些动作,最期待的其实恰恰是理论上 EA 的下一步,就是泰伯利亚之日,除了本来就很喜欢这作以外,也是因为这个游戏本身就很像个半成品,我很好奇他们打算怎么填这个坑 ...

    将军其实有人在做,说起来将军的引擎比 2D 时代应该要庞大复杂得多,但是出了个囧事,就是 EA 把 Mac 版交给 Aspyr 来做,结果后者貌似忘记在发布包里面把引擎的 debug symbol 给 strip 掉了 ... 偏偏 RTTI 还是打开的。所以有人发现了就开始利用这个 binary 搞逆向工程: https://github.com/TheAssemblyArmada/Thyme,目标就是一点点把整个将军引擎原样复刻出来。(另外该项目开发者今天 Discord 里面说,将军的代码其实还有一点点是继承 TD 的 ...)
    这不是唯一一次,后来在 DX9 时代,Shader 本来应该是编译成 IL 的,但是 C&C3 的 Xbox 版本貌似直接忘记把源代码删掉了,结果可以拿到 Shader 的源码,并且居然编译过之后放进去还可以用。我试过改过,但是其实最多修修 bug,微调下风格,并没有太大的发挥空间,毕竟 Shader 是要依赖于上下文运行的。
    Nathanzheng
        6
    Nathanzheng  
       2020-05-23 03:58:16 +08:00
    @secondwtq #5 这么长, 看来楼主对这游戏是真爱啊
    levelworm
        7
    levelworm  
       2021-12-01 13:12:00 +08:00 via Android
    @secondwtq 做 tc 的一般都是有爱,让他们从头做游戏就不一定了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   960 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:14 · PVG 05:14 · LAX 14:14 · JFK 17:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.