【发布时间】:2012-09-08 00:40:08
【问题描述】:
我正在设计一款游戏,但是这个问题适用于任何需要集群中的节点与主服务器之间进行双向通信的情况。我对集群很陌生,但我积极地用 Go 编程,偶尔用 D 编程。
我真的很想使用现代语言(不是 C/C++),所以我选择了这两种语言,因为:
- 数组切片
- 良好的并发支持
- 跨平台和本地编译(具有多个编译器实现)
- GC(两者都在进行精确的 GC)
我读过https://stackoverflow.com/questions/3554956/d-versus-go-comparison 和The D Programming Language for Game Development。
概括地说,我的游戏将在服务器端进行大部分处理,而客户端只是从他们的角度呈现游戏状态。该游戏旨在扩展,因此需要在集群中运行。组件主要受 CPU 限制,并异步更新到主服务器,与客户端共享游戏状态。大多数计算依赖于用户输入,因此这些事件需要向下发送到各个组件(因此是双向 RPC)。
我喜欢 D 的原因:
- 手动内存管理
- 模板/CTFE
- 代码安全(@safe、contracts、in/out)
我喜欢 Go 的原因:
客户端可能会用 D 编写,但这不应该对服务器产生影响。
我倾向于 D,因为手动内存管理已融入该语言。虽然它没有很好的 RPC 库,但理论上我可以实现它,但我无法在 Go 中优雅地实现手动内存管理。
如果要在两种语言之间进行选择,您会使用哪一种来解决这个问题?
【问题讨论】:
-
真的没关系。选择你更喜欢的并开始编码!
-
@BrendanLong - 这是问题的一部分,我两个都喜欢!我只是在寻找一些指导,以某种方式推动我,最好是从具有集群/游戏设计经验的人那里获得。
-
尽管这个问题并不具有建设性(根据本网站的定义),但它的表述很好,可以看出作者为研究该领域付出了相当大的努力,因此阅读起来很愉快。对此表示敬意。