顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2016-10-18 15:27:26
看板 Soft_Job
作者 godspeedlee (妳,我可以)
標題 Re: [請益] 碰到與主管在設計理念上不合該怎麼自保
時間 Tue Oct 18 15:22:32 2016


題外話,網路遊戲設計已經有不少專著了,下面這本日本人寫的就很不錯,
有點出問題關鍵

https://www.tenlong.com.tw/items/7115349355?item_id=889819

如果你讀完之後,發現主管的作法不 make sense,又不能理性溝通的話,
那就...

雖然小弟沒寫過什麼遊戲,但這種 client 跟 server 要資料,
UI 要不斷更新的程式寫了過一堆,而且回頭看遊戲設計的專著,
赫然發現跟遊戲大同小異。


thread 開越多通常越沒好下場,而且以你提供的圖來說,
client 這幾條 connection 都可以用 select() 搞定,看不出有需要
create thread 的需要。

game server 十之八九也是 Linux,epoll() 一次就可以處理上萬連接,
網路上搜尋 C10K Problem 已經很多人討論過了,國內已經有很多家用 epoll()
成功設計出 game server,已經是很成熟的應用。

最近強國人寫了一本書,我個人十分推薦

http://m.sanmin.com.tw/Product/Index/003673602
三民網路書店>Linux多線程服務端編程:使用muduo C++網絡庫(簡體書)-陳碩
[圖]
《Linux多線程服務端編程:使用muduo C++網絡庫》主要講述採用現代C++在x86-64 Linux上編寫多線程TCP網絡服務程序的主流常規技術,重點講解一種適應性較強的多線程服務器的編程模型,即one loop per thread。這是在Linux下以native語言編寫用戶態高性能網絡 ...

 

有點出 Linux C++ server 的要點,就是 per-event loop thread,
如果你去看 nginx 也是如此,只是從 thread 換成 process 罷了。
(不過看你們使用的是 golang,不知道有沒有幫助就是了)


BTW 如果你們處理這種東西還在土法煉鋼,連 ProtoBuf、ZeroMQ 這些
都沒聽過的話恐怕就...

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 178.17.173.22
※ 文章代碼(AID): #1O1Ss-1b (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1476775358.A.065.html

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 232 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇