Html5?

有很多遊戲採用H5技術開發,比如三國來了、巴哈姆特之怒、切繩子等。我們公司也有多款遊戲用H5開發,H5開發成本低,效率高,方便做自動更新,可移植性好。受益於H5技術,我們公司的很多產品都很方便跨平臺。

早在2012年,我就很榮幸負責技術攻關,把我們的遊戲移植到win8和wp8平臺,當時在國內的win8和wp8平臺是領先的。我們的一款遊戲,跨ios、android、win8、wp8和黑莓10五大移動平臺,這在國內肯定是唯一的吧?

《Infinity Lands》喜獲黑莓優秀大獎

也得益於在win8和wp8平臺發展的早期上線數款遊戲,幫助微軟豐富了win8&wp8商店產品。我們和微軟建立了深厚的合作關係,成為微軟在大陸的重要合作伙伴,前幾天又喜獲微軟Xbox Live大陸首家發行權。嗯哼,公司的win8和wp8產品是我負責開發的呢^_^

本來這篇文章應該多談談開發技術,但是兩年前我開發完,已經沒有平臺需要拓展了。我又轉去先後做cocos2d-x和Unity3D開發。很多實現上的細節已經遺忘了,談幾點能想到的吧:PhoneGap、加密、更新。

PhoneGap:很多團隊做H5移動遊戲使用PhoneGap,我不建議。因為這個庫很大,太繁雜了,而我們只需要用到不多的功能。所以,我建議不要使用PhoneGap,根據自己專案的需要,自己實現一個就可以了。ps. 注意多執行緒安全。

加密:H5的js、css和html都是可以直接看到的,所以,為了安全一定要做加密。推薦DES加密,自己寫一個打包工具,把所有js、css和html加密。

更新:用H5做更新真是方便,完爆cocos2d和Unity3D。cocos2d的jsb也可以更新,但是如果c++庫有問題,就沒法更新了;而使用h5,我們可以做到只上傳一次版本,在ios這種稽核嚴的平臺,更新無疑是非常有用的。自己寫一個簡單的打包工具,生成更新包、一份檔名和對應MD5的列表,就可以了。

在做win8版本更新功能的時候,有個小插曲。由於win8的安全限制,win8的webview不允許載入包外的本地檔案。這樣的話,雖然把內容更新到了本地,但是不能載入。更新功能必須做,win8又不允許載入更新到本地的檔案,怎麼辦?對於js/css/html這種文字內容,很簡單,讀到記憶體裡執行就可以了,但是圖片呢?H5不支援顯示記憶體中的圖片。

我想了挺長時間,最後靈光一現:你只允許載入伺服器上的檔案,那我就在本地開一個http伺服器不就得了?然後,我實現了一個簡單的http伺服器,http的目錄指向更新內容。完美解決了這個問題!http伺服器的埠號我設為了9527,看過《唐伯虎點秋香》的同學會心一笑。所以,如果哪個技術同學分析我們的應用,會驚訝的看到我們佔用了9527這個埠,想不到幹嘛用的吧?

後來,微軟的一個技術總監來交流,我跟他們談起我的實現方式,他哈哈大笑,“為了安全,我們限制載入本地檔案,沒想到被你輕而易舉破解了,還是使用我們合法的API”。還有什麼比被微軟的技術專家肯定更讓人開心呢?

相關問題答案