因此,Native Client可以从浏览器运行C++代码,我知道NX Engine是从C++构建的,可以调整以在安卓上运行。那么,如果NX引擎可以运行Cave Story,理论上可以在本地客户端运行,那么如何让它工作并托管,以便用户可以在浏览器中访问页面和玩游戏?
发布于 2012-12-24 19:52:49
要将NXEngine移植到Native Client,您需要移植NXEngine本身(当然!)加上它的依赖项。让我们逐一考虑它们:
的naclports
社区存储库中(请参阅我关于freetype
naclports
已经移植并驻留在naclports中移植到Native Client非常类似于移植到一个新的-在很多方面更像Linux-的操作系统。但是,有一些重要的区别:
本地客户端的“操作系统”
nacl_mounts
,这是一个包装了Pepper file API的库,这样就可以将应用程序的HTML5网络存储或URL作为文件系统挂载到Web上,然后使用熟悉的fopen
、fread
等。从Pepper 25开始,nacl_mounts
的一部分包含在NaCl开发工具包中。.ttf
文件都必须作为应用程序的一部分提供,因为本地客户端将无法访问.ttf
。出于安全原因,主机系统上的文件。Chrome/Pepper25推荐:过去,Pepper API调用只能从主线程进行。这需要对游戏和其他多线程程序进行重大重构,这些程序被设计为在一个线程上渲染,在另一个线程上播放音乐。从Chrome 25及更高版本开始,此限制将不复存在。有关详情,请参阅https://developers.google.com/native-client/dev/peppercpp/classpp_1_1_message_loop。以Chrome25或更新版本为目标,从而使用NaCl SDK的Pepper25版本,可能会减少这类应用程序的重构工作量。
在网页上运行本地客户端的:这个问题提到,你可以“访问网页并在浏览器中玩游戏”。重要的是要知道,目前只有Chrome支持Native Client。当前一代的Native Client和即将推出的Portable Native Client之间也有一个重要的区别,前者需要将Web应用程序放在Chrome web Store中才能使Native Client工作,后者将允许在任何网页上显示Native Client内容。为了让网页上的访问者能够以最少的弯路使用当前一代的基于氯化钠的应用程序,Chrome web Store内联安装(参见https://developers.google.com/chrome/web-store/docs/inline_installation)可以避免用户去Chrome Web Store的需要。
关于 naclports
**:** naclports
的说明: Native Client是一个基于社区的存储库。它包含几个库和以前的端口。您可以在http://code.google.com/p/naclports/source/browse/trunk/src/libraries/上查看naclports
中的库列表。虽然它包含了如何进行移植的有用示例,但naclports
并不适合胆小鬼,因为它经常崩溃,而且-考虑到它是在志愿者/尽最大努力的基础上维护的-可能需要时间来修复。
附加提示:*在这个答案中有一些指向指南的附加提示和提示:Google Chrome Extension using NaCL with an external library。
发布于 2013-06-08 05:21:33
你问的问题很有趣,我已经移植了!它真的不需要太多的改变(但我还是做了很多改变)。
我已经有一段时间没有尝试重新编译它了,所以它可能已经坏了。也许我会花点时间试着让它再次工作。:)
你可以在http://github.com/binji/nacl-nxengine上找到它
https://stackoverflow.com/questions/13995636
复制相似问题