Time of Update: 2018-12-05
應同事需要,對接手的3D模組做了此效能測試,發現vector<>::size()的專屬時間居然高踞十大。查看代碼後發現,幾乎所有的for迴圈都是類似如下寫法:for(size_t i=0; i<vector<>.size(); i++){...}於是,將大部分迴圈更改成如下代碼:size_t nCount = vector<>.size();for(size_t i=0; i<nCount; ++i){...}而後,發現效率提升了接近10%!!!
Time of Update: 2018-12-05
定時器管理在MMO伺服器這類需要處理大量事務的系統中,往往是最佳化的熱點。 最簡單的輪詢式定時器的實現如(psudo code):class Player{public:void loop(){if (timer.check()){//do something;}//other timer ...}private:Timer timer;}void main(){while (true){foreach player in playerManager{player.loop();
Time of Update: 2018-12-05
如何類比《WORD》的視窗形式重點:在CChildFrame上做文章。1、利用嚮導產生一個多文檔應用程式
Time of Update: 2018-12-05
需求: 根據當前像素的Depth計算出其View空間的Position先說一種慣性思維的方法: 既然知道depth是怎麼算出來的, 那麼進行逆運算回去不就得到position了?先說說depth是怎麼出來的:Vertex shader:output.position = mul(input.postion, matWorldViewProject);output.depth.xy = output.position.zw;Pixel shader(輸出z/w):return input.dept
Time of Update: 2018-12-05
看到我的《評C/C++實戰之記憶體管理》(http://www.csdn.net/develop/read_article.asp?id=11385)有8xx點的人氣,感到非常的欣慰。應網友的要求,現將原始碼貼上如下這些代碼實現了以下功能:1。記憶體配置、記錄和釋放。2。記憶體配置位置,包括檔案名稱,行號記錄。3。記憶體流失檢測並指出導致泄漏的代碼位置,通過指出檔案名稱,行號和分配次數(用VC的條件斷點功能然後跟蹤出去,就能尋找到導致泄漏的代碼)。4。指標錯誤使用檢測。包括指標丟失,記憶體越界
Time of Update: 2018-12-05
引擎狀態監聽(觀察者) 底層變化時, 需要高層UI做出反應. 這個有一個原則, 就是下層邏輯不能依賴上層邏輯, 所以通過一個介面進行訊息的派發. 如果是.net的話, 可以用delegate/event實現. C++的話, 可以自己用模板寫個delegate用, 效率比用介面高… 實體抽象(Factory 方法) 擴充性是很強, 但是…類太多了-_-. 這裡有種基於DLL的外掛程式模型可以學習. Factory 方法需要知道具體的工廠對象,
Time of Update: 2018-12-05
網上流行的一個版本"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 一般設定"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 設定預設解碼set pastetoggle=<F4>set fenc=utf-8set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb231
Time of Update: 2018-12-05
都是些寫個自己的一些廢話或者心得,不是什麼技術文章,也完全沒什麼資本給別人扯技術..雖然自己實現SecurityManager 不是什麼好事,畢竟不如實現permission方便和安全,但是偶還是比較想瞭解哈.不知道別的同胞在實現時候有沒有遇到這樣的問題,典型的重寫checkPermission方法如下:public void checkPermission(Permission p){ if(p instanceof
Time of Update: 2018-12-05
被某人數次各應之後,我決定先寫點東西讓他鄙視我,這樣能少被各應點。第一篇我打算說說我最近的心得,關於遊戲UI設計上一些問題的權衡,以及對CEGUI原始碼以及設計思路的相似剖析。這次就先說說CEGUI吧。 現在國內很多遊戲都在用它,很多開源項目也推薦用它,它足夠的火,也足夠的優秀,我非常的感謝crazy edit寫出如此優秀的通用的遊戲UI庫,並且開源給我們這些廣大的菜鳥學習。開始之前,先說說網上傳來傳去的中文解決方案,以及我發現的幾個埋藏比較深的小問題。1,中文解決方案:CEGUI字串內部使用3
Time of Update: 2018-12-05
1.4.1. First-Person Shooters (FPS)http://en.wikipedia.org/wiki/First-person_shooter1.4.2. Platformers and Other Third-Person Gameshttp://en.wikipedia.org/wiki/Platformer1.4.3. Fighting Gameshttp://en.wikipedia.org/wiki/Fighting_game1.4.4. Racing
Time of Update: 2018-12-05
突然心血來潮想學物理引擎了...以前老覺得這東西很神秘, 很高端...但是據說有高中物理水平就能用-_-剛來北京時配了一台很NB的台式機, 衝著物理加速和PerfHUD就買了塊9800GT, 一直沒發揮出它的潛力來, 天天拿它打dota, 汗~工作(算上實習的話)將近兩年了, 發現自己對於遊戲的熱情已經漸漸往技術方面轉移了最近幾個能讓我一口氣玩通的遊戲, 無一例外都使用了物理引擎: WorldOfGoo, CrayonPhysicsDeluxe, Trine...想想國內的遊戲,
Time of Update: 2018-12-05
網路遊戲的自動更新很頻繁,而多數玩家會抱怨下載速度過慢同樣的,如果全部都從遊戲供應商的伺服器上下載,勢必導致網路資源的極大浪費,而且對於企業的補救伺服器和頻寬也是一個很大的考驗在PSP技術盛行的今天,為什麼不把這一技術應用到patchupdate中去呢?類似可以參考BT:BT下載實際上就是P2P下載的代表,該種下載方式與WEB方式正好相反,該種模式不需要伺服器,而是在使用者機與使用者機之間進行傳播,也可以說每台使用者機都是伺服器,講究"人人平等"的下載模式,每台使用者機在自己下載其它使用者機上檔
Time of Update: 2018-12-05
Copyright 1998 Geoff Howland--------------------------------------------------------------------------------"今天我有空就翻譯了一篇英文的遊戲文章, 是Game Artist類的。花了我有4 個小時, 你要是覺得還行就麻煩你放到你的首頁上吧, 我想再陸續翻譯一些比較好的遊戲製作理念方面的文章, 放在你的首頁上, 就當是為國內的遊戲製作諮訊添幾塊磚頭吧." By 餘建斌
Time of Update: 2018-12-05
最近看了一些PhysX的東西, 本想寫個demo練練手, 結果遇到一個非常詭異的問題當我興沖沖的用Wizard建了一個工程, 編譯, 運行, 竟然一片黑?奇怪啊, 這個Wizard程式應該沒問題才對, 要不然我怎麼敢發布出來?換成Release, 編譯...結果正常!用PIX跟蹤了一下發現, 兩個版本的變換矩陣不一樣!當時就茫然了...拿SDK內建的testviewer編譯運行了一下, debug版竟然是這樣的: 只能看到兩隻腳, 滑鼠操作沒有反應!太崩潰了~代碼肯定沒修改,
Time of Update: 2018-12-05
小時候,我們有的人喜歡做出頭鳥,有的人喜歡當班幹部,有的夢想做科學家,有的人想等足球健將,呵呵,誰沒有夢想。小時候,老師問,你的夢想是什麼,我們不經大腦的說出口。那就是我們的初衷,可能後來覺得那很傻很傻,其實是我們變了。慢慢的人長大了,懂事了,其實什麼叫懂事,大人說的懂事,其實就是我們學會了逃避,還有一種人,他們學會了承擔,他們就是英雄。人喜歡用一堆莫名的借口騙自己,其實這借口很容易揭穿,只是揭穿了別人就是揭穿自己。說句承擔容易,但是誰做得到。以前看血色浪漫,覺得劉燁演的那角色挺瀟洒的,不是帥,
Time of Update: 2018-12-05
一直以來這個blog不是轉載的就是學習筆記啥的, 沒多自己真正思考的東西可能因為自己還有另一個寫生活的blog, 勞騷全發那上面了不過看各位業內大牛在部落格上寫的一些自己思考的東西, 看了很有感觸.自己也應該寫點自己的想法吧, 起碼有些朋友看了會留個評論, 呵呵 今天在讀A Shader Appoach, 算是鞏固一下基礎知識吧看到一個函數:D3DXVec3Hermite. 突然想到不是有個Hermit Curve嗎? 呵呵, 這下做來畫曲線方便大了.
Time of Update: 2018-12-05
最初在遊戲裡嵌入網頁用的是LLmozLib, 說實話, 還不錯, 用的FireFox的解析引擎但是它的編譯太麻煩了, 而且跟一些引擎代碼直接連結到一起的話還會衝突最讓人覺得不爽的是, 附帶了一大堆的DLL和資源檔 後來自己用IE的IWebBrowser2實現了一個嵌入瀏覽器, 除了捲軸拖動和效率還有點問題, 也基本上能用好處是相容性好, 也不用附帶什麼 後來看到google發布chrome後就一直在想這個東西能不能用在3D遊戲中, ubrowser的作者也在研究這個.
Time of Update: 2018-12-05
轉自http://blog.chinaunix.net/u2/87718/showart_1838217.html --摘自《UNIX編程藝術》Unix哲學起源於Ken Thompson早期關於如何設計一個服務介面簡潔、小巧精乾的作業系統的思考,隨著Unix文化在學習如何儘可能發掘Thompson設計思想的過程中不斷成長,同時一路上還從其它許多地方博採眾長。
Time of Update: 2018-12-05
N3架構上是分了三層的, foundation, render, application.一直以來看的都是foundation和render, 上層的一直沒怎麼看今天大體上瀏覽了下, 感覺東西還是滿多的很多引擎都沒這一層的, 如果沒有實際項目的積累, 也沒法抽象出複用的部分來這裡說的Entity不是GraphicsEntity, 而是Game::Entity, 代表遊戲中的一個對象, 比如人, 道具什麼的一個Entity由以下幾部分組成:ID : 這個沒啥好說的AttributeTable:
Time of Update: 2018-12-05
聰明的腦袋是寶貴的有限的資源。當世界還充滿非常多有待解決的有趣的新問題時,它們不應該被浪費在重新發明輪子這類事情上。 —— Eric S. Raymond