• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            戰魂小筑

            討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

            Cocos2dx的作者王哲來到公司給大家做了一場技術答疑會

            以下是我及我們項目組的一些Q&A

            1. Cocos2dx 3.0版本在引擎退出時, 會有內存泄露

            我:本來以為這個在rc1版本中發現的問題會在final版本中解決, 但實際上還是沒有解決. 本人使用的是Windows下的VLD的內存泄露檢測, 多年來這東西一直沒有誤報過, 雖然這個泄露不是很大, 但會干擾在這引擎上開發的邏輯的內存泄露查找

            王哲:Cocos2dx的內存泄露測試是在XCode下進行的, 借助mac平臺的工具來做的, 他說, 雖然操作系統會在進程結束時會自動回收, 但還是會在patch版本解決這個問題.

            2. Cocos2dx 3.0 中的getInstance設計問題

            我:3.0中的singleton是使用自動new的方式來實現的, 對象都是分配在堆上, 而不是棧上. 這種方式的特點就是在singleton為空時, 自動new出來, 從而讓上層保證使用簡單. 但是弊端就是前一個問題說過的, 如果處理不當的話, 會導致內存泄露.

            3.0中的Director在析構時, 會先刪除Configurator的一個配置類, 但是, Renderer在析構時, 又會使用到這個配置類, 調用配置類的單件, 從而導致配置類重新實例化. 之后, 就沒有管理配置類的析構, 所以發生內存泄露. 我嘗試修復這個問題. 但是因為getInstance本身的設計弊端,導致拆東墻補西墻, 東墻又倒掉的問題.

            王哲: 已經發現這個問題, 會在未來版本加以修正

            3. 為什么不自帶更新系統

            王哲: Cocos2dx引擎一開始設計是偏重于渲染器, 所以包括網絡及其他部分都是屬于附屬. 現在開發團隊只有10個人, 所以精力也是有限的

            另外, 每個公司和個人對更新系統的需求都不是一樣的. 不過引擎會在以后版本中的ResourceManager提供一些類似的功能

            4. 幀率控制器

            我: 游戲一般分為固定幀率和可變幀率兩種更新方式. 前者在早期的日本游戲中常見, 后者是3D游戲及后期的游戲中用的比較多. 在U3D中分別使用FixedUpdate和Update兩種方法來實現類似的功能. 但是在Cocos2dx中沒有實現類似的功能.

            王哲: Cocos2dx里因為要處理一些復雜的情況, 比如接聽電話之類的, 所以這里仍然使用可變幀率來做.

            我: 虛幻里有一套更新算法, 在幀率足時, 擊中處理一些垃圾回收, 內存釋放等耗時操作. 但是超過預設的閥值后, 停止占用幀更新時間, 留給邏輯足夠的更新時間. 但是沒看到Cocos2dx內使用這種算法

            (其實王哲應該沒聽懂我說的意思)

            王哲: 我嘗試在3.0的渲染器中支持多線程, 但是在某些情況會出現crash, 而且這種技術的加入會提高引擎的門檻, 所以未來會根據實際需要加入.

            5. 為什么不統一setResourceRootPath/setResourceDirectory 的接口?

            這是我們項目的一個兄弟做下載更新時, 碰到的2.0中的一個問題. 王哲表示3.0已經做了1年半, 2.0的東西都忘記了, 但是在3.0中是統一的接口.

            6. 如何看待云風噴cocos2dx?

            這是我們項目的一知乎粉提的問題. 王哲說, 云風對C++很反感, 所以自己的代碼及項目大部分都是C. 因此對cocos2dx這種C++引擎肯定會有些反感. 但是cocos2dx的使用率很高, 不能因為一兩個大佬的意見而改變cocos2dx本身的一些優勢

            7. SpriteFrame和紋理的釋放問題, 為什么不使用智能指針?

            王哲: 我做過一個測試, 智能指針在移動設備上跑的速度肯定是要慢于retain/release這種手動方式, 所以依然在3.0中采用retain/release方式.

            我: 我們有某些資源需要常駐內存, 但是全局方式的SpriteFrameCache和TextureCache會導致這個問題很難解決. 能否提供分組資源管理概念

            王哲: 這個修改其實沒什么難度, 論壇里也有很多建議, 我們會考慮在新版本支持這些功能

            8. Scene的接口不統一, 用錯還會crash

            王哲: 這個問題確實存在, 我們會加以修正

            9. 為什么要對STL進行一些包裝, 而不是直接使用?

            王哲: 因為要適用于retain/release模式( 此時, 我終于發現我們為什么會出現第七個問題了)

            10. string為什么需要一種垃圾回收機制來進行回收, 而不是直接用string?

            王哲: 這是一個歷史遺留問題, 為了兼容objc版本的移植及風格

             

            其他的一些信息

            CocoStudio是使用WPF寫的, 底層使用P/Invoke與C++引擎層進行交互. 有人提出這個編輯器要開源么, 作者表示后期會考慮的, 但是因為代碼很亂, 所以一開始沒有考慮開源

            本人感受, 微軟的一切開發工具及代碼的東西都是按商業模式做的, 根本不考慮開發者的利益. DX7到DX11, 說好的COM兼容, 最后改的一塌糊涂. MFC那么老掉牙的東西, 到VS2013都還在更新, 這不是禍害群主么. XNA退不起來, Silverlight干不過Flash. 更別說亂的一塌糊涂的WP, WindowsRT, WinPhone. 對于VisualStudio來說, 這是地球上做的最好的編輯器, 保留這個足矣, 但是也別太依賴即可. 擁抱開源, 珍惜生命, 遠離微軟

            WP版的Cocos2dx支持是微軟設在西雅圖的一個叫OpenTech的公司來做的, 并非王哲團隊做的. 而且DirectX現在變成小眾API, 因此這公司采用AngleProject來用OpenGL模擬DirectX的接口, 當然性能上肯定有很大的損失

            最后附上王哲團隊的照片以鑒真偽

            image

            posted on 2014-04-25 18:35 戰魂小筑 閱讀(6729) 評論(5)  編輯 收藏 引用 所屬分類: 游戲產業隨感

            評論

            # re: 與Cocos2dx作者王哲及其團隊技術討論會的一些筆記 2014-04-26 09:45 楊世玲
            真的.哈哈哈哈啊哈哈啊  回復  更多評論
              

            # re: 與Cocos2dx作者王哲及其團隊技術討論會的一些筆記 2014-06-04 10:07 DelphiBoy2003
            為什么說DirectX現在是小眾API?因為大家都開始使用跨平臺的引擎開發游戲?并且主流開發者都轉移到web和手游上?PC端的已經沒落?  回復  更多評論
              

            # re: 與Cocos2dx作者王哲及其團隊技術討論會的一些筆記 2015-04-16 13:08 avi9111
            2年cocos2dx皮毛,最近在搜王哲,才搜到你這里的
            對于最后幾句不是很認同
            微軟沒考慮開發者利益?那是你公司沒交保護費而已,如果你買正版,技術支持那是多到你不信
            相對于微軟,蘋果,開源更是沒考慮開發者利益,連個文檔都沒有,根本連請人寫文檔的資源都沒有,人性是懶惰的。

            補充消息,
            1)有很多東西不是你自己寫的爽,然后出來的產品就是好的,也不是你寫的爽,別人就寫的和你一樣爽的

            2)我也是支持cocos2dx的,云風說過,他根本都不會用2dx,因為他2個星期就能寫出一個一模一樣的引擎,或者是對的,但是現在整個開源的社區,現在的開發環境,現在的商業環境,云風老頭的說法是不是有點過時  回復  更多評論
              

            # re: 與Cocos2dx作者王哲及其團隊技術討論會的一些筆記 2015-04-16 13:26 戰魂小筑
            @avi9111
            那是很多年前寫的東西了, 現在看來, 由于鮑爾默是一個商人, 無法將微軟這個技術公司做的更好.
            納德拉上任后的開源,就是討好開發者的一步
            微軟的正版服務是耳聞的, 確實不錯

            云風的能力沒必要用cocos2dx, 所以有了ejoy2d. 但cocos2dx能做到普及, 也是借cocos2d的東風.
            cocos2dx在2d的地位毋容置疑, 最近3.x版本的很多問題改進的還可以. 但是從整體架構設計, 戰略規劃上就限制這個引擎的發展  回復  更多評論
              

            # re: 與Cocos2dx作者王哲及其團隊技術討論會的一些筆記 2015-07-09 20:19 mirchd
            最新版cocos2dx還是有內存泄漏,pool內存管理這里寫的有問題,  回復  更多評論
              

            激情伊人五月天久久综合| 久久久久亚洲AV无码观看| 色偷偷偷久久伊人大杳蕉| 2021国内久久精品| 久久久午夜精品| 伊人久久大香线蕉综合影院首页| 久久久久亚洲AV成人网| 国产精品免费看久久久香蕉| 伊人久久综合热线大杳蕉下载| 久久这里只精品国产99热| 国产精品99久久久久久宅男| 国产成人精品久久一区二区三区av| 99久久夜色精品国产网站| 精品久久国产一区二区三区香蕉| 久久国产精品免费一区二区三区 | 午夜天堂av天堂久久久| 大香伊人久久精品一区二区| 99蜜桃臀久久久欧美精品网站| 久久综合综合久久综合| 久久国产成人精品麻豆| 久久夜色撩人精品国产| 久久中文字幕精品| 久久777国产线看观看精品| 精品久久久久久久久久中文字幕| 香蕉久久夜色精品国产尤物| 久久精品www人人爽人人| 亚洲成人精品久久| 久久久久国产精品人妻 | 久久久国产乱子伦精品作者| 丁香五月网久久综合| 四虎亚洲国产成人久久精品| 一本色道久久99一综合| 青青青青久久精品国产| 久久天天躁夜夜躁狠狠躁2022| 精品国产一区二区三区久久| 久久精品国产男包| 99久久国产综合精品五月天喷水| 久久久久亚洲av成人网人人软件| 91精品观看91久久久久久| 久久天天躁夜夜躁狠狠| 国内精品久久久久久久涩爱|