《命令与征服》重置版将以 GPL 3.0 协议开放部分源代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
secondwtq
V2EX    Steam

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

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

    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     Solana     3179 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:12 PVG 19:12 LAX 03:12 JFK 06:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86