看板 GameDesign 關於我們 聯絡資訊
想找一篇文章, 如果有違反板規請版主刪掉。 我記得是Blizzard的設計師所寫的, 主要是說當初在寫某個遊戲(魔獸或暗黑我忘了)的經驗, 記得依些片段, 1. 寫到一半被抓去支援其他遊戲 2. 程式有一推BUG 3. 「繼承」的概念沒有很好用 4. 存檔的功能好像有些問題 記得好像是在PTT看到的吧!? 有中文與英文一段一段翻。 現在這裡謝謝各位前輩了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.16.135
VVll:從星海板 轉過來的星海1->Diable 07/24 18:13
VVll:StarCraft 的開發歷史 http://ppt.cc/yakR 07/24 18:17
StupidGaGa:就是這篇,謝謝大大 07/24 19:16
littlcrn:#1GK8xjQk (GameDesign) 07/25 12:54
StupidGaGa:在請問各位大大,請問有第二部分跟第三部分嗎? 07/25 14:08
cjcat2266:原文有第二部分連結,第三部分好像還沒出 07/25 14:48
cowbaying:沒耐心的可以先看程式碼 07/25 15:34
franknine:http://blog.chunfuchao.com/?p=141 這個嗎? 07/25 16:34
Killercat:這code頗怪 混合了C跟C++的概念(抓頭) 07/25 19:05
VVll:這篇 程式設計師犯的最大錯誤, 批評自己不熟悉的語言 07/25 19:06
Killercat:老實講拿掉operator=跟template 我會以為這是C code 07/25 19:06
Killercat:而且老實講我不了解 這實作看起來並沒有任何比std::list 07/25 19:10
Killercat:優越的地方,是我忽略了什麼重點嗎.... o_oa? 07/25 19:10
Killercat:應該說 std::linkedlist 07/25 19:10
Killercat:std::linkedlist配上boost::shared_ptr應該會好一點 07/25 19:10
Killercat:er...是std::link...java寫多了C++ STL class都搞混了 07/25 19:12
Killercat:還有一個可能是STL的記憶體配置方法採取的演算法頗暴力 07/25 19:17
Killercat:一次都是要一塊以後 超過就要兩倍... 不過我還是不明白 07/25 19:18
Killercat:的是 自己做一個std::list<T, allocator>會簡單的多 07/25 19:18
Killercat:有板友能看出為什麼他捨去這方法而用自製的理由嗎? 07/25 19:19
VVll:因為作者 是寫c code的, 他對c++還有oo 完全不熟 07/25 19:24
azureblaze:而且他的時代oo才剛起步一團糟所以他的印象也很差 07/25 20:38
azureblaze:而且那個時代的硬體會讓人很計較4個byte或indirection 07/25 20:39
Killercat:那我可以完全理解為什麼這東西怎麼看都是披著C++皮的C.. 07/25 21:23
StupidGaGa:Cool!感謝各位大大幫忙,我一直都想了解頂尖程式人員 07/25 21:23
StupidGaGa:的想法與經驗,沒想到得到的比我想像中的多^^ 07/25 21:24
Killercat:還有那恐怖的Macro(我還特地gcc -E看了一下) 07/25 21:24
cjcat2266:那個macro我倒覺得沒什麼耶...適度的用是ok的 07/26 00:08
cjcat2266:inlist在遊戲開發算是頗熱門的結構,Box2D也用它 07/26 00:09
cjcat2266:Patrick的inlist用到的bitwis運算子的確有點太超過 07/26 00:57
cjcat2266:我看過的inlist中已經沒人在這樣搞了XD 07/26 00:58
Killercat:不用阿 -_-a 直接繼承std::list其實就是in-list了 07/26 08:28
Killercat:等等...不是繼承list... 早上起來腦袋不清醒 XD 07/26 08:29
cowbaying:頂尖程式員會讓一般人覺得很跳針 XDDDD 07/26 08:57
StupidGaGa:請問有前輩可以第一個圖跟第二個圖嗎? 07/26 10:15
StupidGaGa:忘了說,是第二部分文章的圖 07/26 10:16
StupidGaGa:我看得懂程式碼跟圖 07/26 10:17
StupidGaGa:但是我看不懂為什麼這個程式碼會形成這個圖~"~ 07/26 10:18
StupidGaGa:希望有前輩可以指導討論一下 07/26 10:18
cjcat2266:喔,他的std::list圖畫錯了,下面comment有講 07/26 10:38
cjcat2266:別擔心,如果你看得懂程式碼,那你想像中的圖應該是對的 07/26 10:38
cjcat2266:他畫的是std::list<T *>,不是std::list<T> 07/26 10:39
cjcat2266:這篇文的插圖有比較清楚展示inlist多重link的結構 07/26 11:20
cjcat2266:http://bit.ly/12PaKjS 07/26 11:20
Killercat:其實std::list是可以改造成in-list的 不過我剛剛試作了 07/26 14:57
Killercat:一下,並不是很簡單就是,所以早上我說的「繼承std::lis 07/26 14:58
Killercat:t」是句還滿糗的話 07/26 14:58
Killercat:另外 改造成in-list的話 std::list的allocator整個廢掉 07/26 14:58
Killercat:不過還是很有改造價值.... 07/26 14:59
Killercat:我是用SGI版本的std::list實作版本魔改的 要是改的出來 07/26 14:59
Killercat:的話,晚點跟大家分享一下 07/26 14:59
FukadaKyoko:我有看過一本書還是哪邊寫 不要繼承std的東西 XD 07/26 15:36
FukadaKyoko:真的要用的話 就把std的東西宣告成自己class的member 07/26 15:36
cjcat2266:或是用private繼承,然後自己定義新的介面也ok 07/26 15:57
franknine:Effective C++ 的 item 7 Declare destructors virtual 07/26 16:17
franknine:因為 std 的東西 destructor 不是 virtual 07/26 16:33
Killercat:其實effective c++(還是more?)有一個很經典的例子 07/26 17:16
Killercat:他告訴你要實作一個大小寫不分的string 07/26 17:16
Killercat:要怎麼繼承basic_string, 怎麼繼承怎麼修改template 07/26 17:17
Killercat:整個流程其實把修改stl該注意的東西都含括了70%了 07/26 17:17
Killercat:不過std::list要改成in-list可能得用別的小手段來做... 07/26 17:18
Casval:那個時代別說沒有標準程式庫,連C++都沒有可相容的標準,所 07/27 15:47
Casval:以多半都要自己手工打造所有的部分。現在語言有標準,程式 07/27 15:48
Casval:庫也很精良,正確的使用下效能沒問題,安心地用吧! 07/27 15:50