Html5 移动游戏开发

    有不少游戏采用H5技术开发,好比三国来了、巴哈姆特之怒、切绳子等。咱们公司也有多款游戏用H5开发,H5开发成本低,效率高,方便作自动更新,可移植性好。受益于H5技术,咱们公司的不少产品都很方便跨平台。css


    早在2012年,我就很荣幸负责技术攻关,把咱们的游戏移植到win8和wp8平台,当时在国内的win8和wp8平台是领先的。咱们的一款游戏,跨ios、android、win八、wp8和黑莓10五大移动平台,这在国内确定是惟一的吧?html

    

    《无尽大陆》获微软win8商店重点推广android

    

    

    《无尽大陆》进入win8商店热门第4ios


    

    微软的同窗去给团队拍照,报道http://win8.xapcn.com/news/28144.htmlc++


   

    《Infinity Lands》喜获黑莓优秀H5大奖 http://blackberry.developer.csdn.net/article.html?arcid=15814719web


    也得益于在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”。还有什么比被微软的技术专家确定更让人开心呢?