-
Notifications
You must be signed in to change notification settings - Fork 22
Description
大家好,我对于Rust语言以及基于Rust的游戏开发很感兴趣。所以当我知道这个项目的时候就开始关注。
个人认为,作为一个依托于社区的大型开源项目,在启动阶段最好有一个大致的方向规划,而且项目的规划与方向最好是基于社区的讨论,这样有助于吸引更多的贡献者。我对于OpenRA-rs的项目方向上有一些简单的想法,希望与各位讨论。
OpenRA的项目的方向以及价值
因为项目缘起于OpenRA,那么首先大致分析一下OpenRA作为一个开源项目的价值:
- 目标:2D RTS Engine,帮助其它开发者开发自己的RTS游戏。
- 基于CC系列游戏原作,但不是简单的克隆,而是融入现代RTS设计的进化。
- 提供更好的Mod能力。
- 提供更便捷的网络对战环境。
- 因为RA已经是免费软件,所以OpenRA项目可以设置第三方游戏资源文件托管,方便广大的玩家群体下载游戏资源。
OpenRA-rs的项目方向思考
从推进项目发展的角度考虑,需要尽量发展这个项目的独特价值,进而增强它的生命力。为此,需要回答几个问题:
- OpenRA已经很成熟,为什么需要一个基于Rust的版本?
- 技术上的价值?
- 对于游戏开发社区的价值?
- 对于游戏玩家的价值?
- 开发者贡献代码的动力在哪里?
- 有没有可能挖掘更多的价值?例如未来有那些发展潜力。
个人对于以上问题的思考
为了方便展示与OpenRA的比较,我尝试使用imoji表示OpenRA vs OpenRA-rs的优势与劣势。
OpenRA已经很成熟,为什么需要一个基于Rust的版本?
在Web端以及手机端运行的潜力👍
因为OpenRA基于.net和SDL,所以它具有在移动端运行的潜力。但是因为性能问题,目前在Web端的前景不是特别好。在这两个方面,另外一个游戏开源重制项目Classic UO(一个开源重制Ultima Online游戏的项目,基于.net和MonoGame)曾经有过尝试。基于Unity3D,Classic UO可以很方便的移植在移动平台 —— Mobile UO,但是Web平台的移植限于性能问题,目前还不可行。
Bevy的图形模块基于wgpu-rs,天然具有跨Web端,以及移动端的能力。(wgpu-rs在Web端的应用处于试验阶段,但是在路线图中。)如果不考虑在移动平台的操作问题,那么OpenRA-rs相较于OpenRA应该可以实现全面地跨平台。
国内大量的CC&RA玩家👎
短期内没有优势,他们可以选择更成熟的OpenRA。
Rust的性能优势🤔
游戏架构方面,OpenRA基于SDL,是传统的面向对象架构,而OpenRA-rs基于Bevy的ECS架构。渲染方面是OpenGL vs wgpu。对于这个体量的2D游戏来说,理论上OpenRA-rs不会具有显著的性能优势。
关于ECS vs 传统架构的性能优势评估,可以参考Godot的一篇博客:https://godotengine.org/article/why-isnt-godot-ecs-based-game-engine
游戏开发的灵活性或者mod制作的便捷🤔
- 脚本系统🤔:OpenRA使用Lua进行游戏逻辑开发。Mod的制作机制不清楚,好像也是通过YAML和lua结合?目前没有看到Bevy在这方面更具优势。而且Bevy的开发者已经明确表示Bevy引擎本身不会直接支持第三方脚本语言。当然OpenRA-rs项目自己的脚本系统。
- 编辑器👍:Bevy的编辑器在开发路线图中。这也许可以为Mod制作带来便捷。
开发者贡献代码的动力在哪里?
- 对于RA的感情 🤔。习惯使用C#的开发者可以去为OpenRA贡献代码。更喜欢Rust的开发者可以为OpenRA-rs贡献代码。
- 用户的推动🤔。如果用户数量不够多,那么贡献者热情可能会很快丧失。
- 基于Rust游戏开发的热情👍
- 社区的关注👍。在项目稳定迭代之后,在Rust社区和Rust游戏开发社区应该会获得比较大的关注。
更多的价值?👍
- 3D / 2D RTS Engine in Rust。为其它游戏开发者提供一个基于Rust开发RTS的框架。
- 尝试重制其它RTS游戏。例如RA2。个人也建议考虑几款国产游戏,例如《傲视三国》。
这里有一些新的功能可以考虑,但是开发难度会大大增加。例如,因为OpenRA-rs是基于Bevy引擎(或许其它支持2D&3D的引擎),那么在后续开发中同时支持3D&2D的难度相较于OpenRA会稍微小一些(当然复杂度还是相比于仅支持2D/3D要高很多)。目前OpenRA中增加RA2以及其它2.5D/3D游戏的支持会比较困难。
为什么建议考虑《傲视三国》?
其实我自己当年也没有认真玩儿过《傲视三国》,只是在考虑这个问题的时候去查看了一下各个国产的RTS游戏,发现它挺值得尝试:
- 其本身在当年是一个设计很前卫的RTS游戏。👍
- 当年PC国产游戏行业中难得的精品,同时在海外曾经引起过反响。👍
- 具有很大的优化增强空间。可以为Mod制作者提供很丰富的舞台。👍👍
- 三国游戏玩家广泛,但是RTS类型很少。国外玩家也有可能感兴趣。例如《全战-三国》👍👍
- 但是目前网络上没有太多的资源解析文档。数据分析和资源解包是个很有难度的问题。👎
- 社区开发者玩儿过这款游戏的估计不多?或者对这款游戏感兴趣的不多。👎👎
其它可以参考的开源重制项目
- OpenPAL3: 基于Rust自制游戏引擎,渲染基于Vualkan。目前基本是哪位开发者自己一个人做。
- OpenAge以及其中列出的Open系列。
- OpenDiablo2
以上是我的一些想法,如果有错请指出。希望能起到抛砖引玉的作用。