Cocos2d-x 的作者王哲說 Cocos2d-x 的開發借鑒了 OpenGL 的跨平台思想,是哪部分思想?
01-16
補充:
1、雖然出處丟失,但是我想說,王哲確實說過「借鑒OpenGL思想」或者表達過類似概念2、看來這種情況下大家更願意相信王哲,反正我也沒證據 ╮(╯_╰)╭
樓主,我沒說過這句話。
——————
2015-03-25更新:這個回答得到的贊數,居然遠遠超過我在技術問題下面花幾個小時的回答。杯具啊。有個晚上我做夢,夢到了這個問題的正確回答,然後第二天醒來只記得我夢到了這件事,卻不記得正確答案是什麼了。今天下午翻知乎,努力回憶了一下。我應該是講過這樣的話:
『Cocos2d-x的開發借力了OpenGL ES的跨平台性』。
可能是採訪錄音或者速記的錯誤,導致以訛傳訛,到樓主看到的時候就已經走樣了。
也就是說,Cocos2d-x的跨平台層,很大程度得益於OpenGL ES標準在不同手機平台上都可以運行,即使在wp8上也有Angel Project把OpenGL ES調用轉換到DirectX,所以我們一套OpenGL ES調用可以橫跨iOS, Android, WP8三個主要平台。如果像以前主機平台那樣,各平台有各平台自己的渲染API,相互不兼容、沒有工業標準,那麼Cocos2d-x跨平台做起來就相當苦逼了。
當然好日子也差不多到頭了,蘋果極力推他們的Metal,所以在Cocos2d-x v4.0裡面我們開始做GPU抽象層,也就是無法再借力OpenGL ES的跨平台性了。現在感覺還好,但回過頭去看,這樣重的研發成本在早期我們還是小團隊的時候是無法承受的。我相信王哲應該沒說過這話。OpenGL本身無所謂跨平台思想。跨平台應該不能上升到「思想」高度。OpenGL的API是由Khronos Group這個標準委員會制定的,天生就是跨平台的。而不跨平台的地方是創建OpenGL外圍環境的方式。Android需要通過Activity再調用native的NDK介面方式,iOS上用UIKit來創建UI環境再嵌入OpenGL View。cocos2d-x把這些細節都隱藏起來,打包成一個統一的介面,便是所謂的跨平台了。
為啥日報上王哲得回答跟這裡不一樣?
有說過嗎? 求上下文及出處. 這個的確很讓人費解, 假如有的話, 也就是不對具體的平台進行限制, 而是抽象概念本身的共同點, 然後在底層去適配平台. 不過這是幾乎所有跨平台的思想的共同點, 不單是OpenGL.
你是搜索了下自己的名字看到的這個問題嗎 噗哈哈
我想問下,cocos2dx在ios平台下一定要用c99標準嗎?我另外個項目用的gnu99,怎麼集成兩者
推薦閱讀:
※常規項目內的概念原畫設計更重視闡述設計邏輯還是繪畫水準?
※遊戲製作者是如何評估遊戲難度的?
※參加 CiGA Game Jam 2017(48小時極限遊戲開發) 是一種怎樣的體驗?
※作為一名畫面黨,你怎麼看數不清的VR眼鏡正在如螞蟻一樣黑壓壓的出現?