我正在設計一款遊戲,但是這個問題適用於任何需要集羣中的節點和主服務器之間進行雙向通信的情況。我是很新的集羣,但我積極計劃在圍棋和偶爾D.D或Go羣集遊戲服務器
我真的想用現代語言(不是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,合同,輸入/輸出)
的原因,我喜歡去:
客戶端可能會寫入D,但這不應該對服務器產生影響。
我傾向於D,因爲手動內存管理被烘焙到語言中。雖然它沒有RPC的漂亮庫,但我理論上可以實現這一點,但我無法在Go中優雅地實現手動內存管理。
鑑於兩種語言之間的選擇,你會用哪種方法解決這個問題?
真的沒關係。選擇一個你更喜歡的,並開始編碼! –
@BrendanLong - 這是問題的一部分,我喜歡他們兩個!我只是尋找一些指導,以這種或那種方式推動我,最好來自具有集羣/遊戲設計經驗的人。 – tjameson
儘管這個問題並沒有真正的建設性(通過本網站的定義),但它的制定很好,可以看出作者花費了大量的精力來研究這個領域,所以它很值得閱讀。榮譽。 – kostix