我正在设计游戏,但是此问题适用于需要在集群中的节点与主服务器之间进行双向通信的任何情况。我对集群很陌生,但是我经常在Go中编程,偶尔在D中进行编程。
我真的很想使用现代语言(不是C / C ++),所以我选择了这两种语言,因为:
数组切片
良好的并发支持
跨平台和本地编译(具有多个编译器实现)
GC(均在精确GC上工作)
我已经阅读了https://stackoverflow.com/questions/3554956/d-versus-go-comparison和 游戏开发的D编程语言。
在较高的级别上,我的游戏将在服务器的大部分处理工作,而客户端只是从他们的角度呈现游戏状态。该游戏是按比例缩放的,因此需要以群集的形式进行操作。组件大多受CPU约束,并异步更新到与客户端共享游戏状态的主服务器。大多数计算取决于用户输入,因此这些事件需要向下发送到各个组件(因此是双向RPC)。
我喜欢D的原因:
手动内存管理
模板/ CTFE
代码安全性(@safe,合同,输入/输出)
我喜欢Go的原因:
客户端可能会用D编写,但这不会对服务器产生影响。
我倾向于D,因为手动内存管理已嵌入到该语言中。尽管它没有用于RPC的漂亮的库,但从理论上讲我可以实现它,但是我不能在Go中优雅地实现手动内存管理。
考虑到两种语言之间的选择,您将使用哪个解决方案?
ITMISS
浮云间
相关分类