我已经在用golang+raylib做2D ORPG了,已经做了几个原型,很满意。接下来我想给游戏添加多人组成部分。

我有三个选择:

开发桌面版本

1. 使用golang+raylib作为客户端,使用熟悉的栈,目标是桌面环境。可以使用enet来添加网络功能,enet是一个经过时间考验的框架,有一个可用的go框架。

开发web版本

2. 使用golang+raylib作为客户端,目标是web。由于golang的raylib绑定不支持wasm,因此需要额外的工作来导入依赖(Raylib-Go-Wasm)。网络功能在web环境中也更复杂,研究表明使用Websockets存在较高的开销,不推荐使用;然而,WebTransport的替代方案较新( safari只在4个月前添加了支持!),但使用它存在更多问题。

3. 使用像Godot这样的引擎作为客户端,因为它支持直接编译到web,然而这需要学习新的语言、引擎(Godot)以及解决web网络问题。

无论我选择哪种方式,我都会有一些结果。然而...

实际的问题:

  • 开发web版本是否值得花费精力 给我的现有技能集?

开发web版本可以让更多玩家参与游戏,因为访问网站的门槛较低。然而,steam存在,人们已经习惯于在本地安装游戏,因此我是否应该花费精力来学习web开发,而不是开发桌面版本?