這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
選擇golang做遊戲伺服器開發
經過大半年的手機遊戲運營、維護、後續開發,對下一個網路遊戲的伺服器端開發技術選型的需求如下:1. 體系成熟,有大型成功案例2. 開發效率高3. 效能高,最好是支援並行技術充分利用多cpu資源4. 代碼加密發布5. 開發邏輯簡單,如多線程同步、加鎖、多進程同步就比較複雜6. 易學易用,如果是新技術
可選技術對比
我對可以選擇的技術平台經過自己的一些分析總結如下(一己之言):
項目 |
nodejs |
python |
c++/ruby |
erlang |
golang |
體系成熟 |
4 |
3 |
5 |
4 |
3 |
開發效率 |
5 |
5 |
3 |
3 |
5 |
效能 |
3 |
3 |
5 |
5 |
4 |
加密發布 |
3 |
0 |
4 |
3 |
5 |
邏輯簡單 |
5 |
5 |
3 |
4 |
5 |
易學易用 |
5 |
5 |
2 |
1 |
4 |
跨平台 |
5 |
5 |
5 |
5 |
5 |
其實聰明的讀者,看以上表,你就已經知道我是最中意golang的,是的!其實以上表只是個幌子,其實選哪種都可以達到目的,同時我看好erlang和golang的並行開發模式來進行遊戲開發,我2011年就開始學習erlang和golang,一度沉迷,結合自身的條件和團隊情況,我最終選擇了golang。
我超喜歡python的代碼風格和開發效率,也用它做了近兩年的開發,但是它的效能比較低。我無奈放棄了。
我看好golang的出生(三個偉大的發明者)、簡潔(關鍵字最少的語言了吧)、開創性(struct、interface、channel、goroutine),我關注golang快兩年,直到去年它發布1.0,且越來越多的項目案例和開發人員,我認為現在可以用在生產項目上了。
給golanger的話
我很榮幸我成為了你們中的一員,希望我們可以多交流。我以後的golang代碼不涉及到商業秘密的部分我都會放在github.com上與你們共用並接受你們的協助。我主要用golang開發tcp伺服器類的應用,如遊戲伺服器。
(轉自:http://blog.5d13.cn/work/golang/2013/06/16/whyiusegolangtowritegameserver.html)