将HTML5游戏转换为原生应用程序

10

我正在使用HTML5制作游戏。我对HTML5最为熟悉,而且更喜欢它比高级语言如C++。HTML5是编写游戏的绝佳平台。但我的问题是,我想将我的游戏作为原生应用程序运行(无需互联网浏览器功能,全屏等),但我不知道有什么工具可以使用。我找到了一些面向MOBILE平台(如PhoneGap)的内容,但没有针对桌面(如Windows、Mac和Linux)的内容。最终,在尽可能努力地搜索后,我找到了TideSDK。TideSDK类似于PhoneGap,但是适用于计算机操作系统,并在所有三个流行的操作系统上运行(Windows、Mac和Linux)。然而,TideSDK对于游戏来说并不是足够快速的,它不支持window.requestAnimationFrame方法,所以使用setInterval进行游戏循环使其变得非常缓慢。缓慢到我猜测只有2或3帧每秒。我在Chrome上尝试了完全相同的游戏,它运行得很好。

有没有其他替代方案可用于HTML5游戏,能够足够快速?(我不想通过XCode [以及其他平台上的IDE]制作Webkit框架,因为这不是真正的跨平台,而且很耗时。如果必须,我会去做的)。我使用的系统是Mac(OSX 10.8, Mountain Lion),但我可以访问Windows 7和Ubuntu 12.04 32位。


只需要在浏览器中加载游戏并切换到全屏模式吗? - user1600124
无论如何,有钛桌面..但我不确定它是否还活着。还有qt-webkit..但我不确定它的性能如何。但我认为只是使用Chrome并进入全屏模式更方便。而且你不必维护“浏览器”本身。 - user1600124
@user1600124 我目前正在使用它。我唯一的问题是,我想出售这个游戏,可能要在Steam上销售。因此,我需要一个独立版本。 - pjrader1
2
这个主题有一个类似的帖子,列出了详细的选项。https://dev59.com/2mgu5IYBdhLWcg3w3qt7#13563325 - user1600124
4个回答

10

我建议看一下Electron。

http://electron.atom.io/

它有相当不错的文档,而且看起来正好符合你的需求。

在我试用过的应用程序中,表现方面也很不错!


@cakeisajoke 这有助于你达成你的目标吗? - pipedreams2
1
注意:Electron 只能在 64 位处理器上运行。为了实现跨平台兼容性,最好使用 nw.js - Michael Schwartz
@MichaelSchwartz 这还是真的吗? - undefined

7

我自己曾经寻找全方位的解决方案。我尝试了许多工具,包括TideSDK、AppJSVB.NET中的原生代码、XCodePythonC++Electronnw.js/node-webkit等等:基本上你能想到的我都试过。

注意 Electron 很好,但它只能在64位处理器上运行。因此,如果您希望应用程序在32位和64位处理器上运行,则 nw.js/node-webkit 是更好的解决方案。

因此,我决定建立自己的开源解决方案WebDGapWebDGap可在Windows、Linux、Mac OS X、Google Chrome和Web应用程序上运行!当您将应用程序导出为Windows、Linux或Mac应用程序时,WebDGap使用nw.js作为框架来运行您的Web应用程序作为桌面应用程序。因为它使用nw.js作为框架来运行您的应用程序作为桌面应用程序,所以与Electron不同,您不必更改太多代码才能使应用程序正常工作。

例如,如果您在应用程序中使用JQuery,并使用Electron导出,您无法像加载常规javascript库一样加载JQuery
<script src="libraries/jquery/jquery.js"></script>

你需要像这样加载它...

<script>
  window.$ = window.jQuery = require("./libraries/jquery/jquery.js")
  // or if you installed jquery via npm you could use
  // window.$ = window.jQuery = require("jquery")
</script>

观看如何视频以学习如何使用WebDGap

这是一个截图。 The WebDGap Application

由于您已经是Mac用户,因此您可以将导出的应用合并为一个.app Mac文件。这可以使用Automator(和一些shell脚本)完成。

我还为移动用户制作了一个编码游乐场,它使用nw.js,就像WebDGap一样,可以将您的Web应用程序转换为本机桌面应用程序,称为kodeWeave

这是一个井字棋游戏,我将其导出为Mac应用程序: kodeWeave App

现在,这个Web应用程序作为本地Mac应用程序运行! Tic-Tac-Toe is now running as a Mac App

最后,有很多工具可以制作WebGL驱动的游戏。

我最喜欢并推荐使用Goo Create,因为你可以完全不用编程,但也可以加入自定义代码。


2
对于移动平台,我建议使用PhoneGap/PhoneGap Build/Cordova
对于桌面电脑,我建议使用Nw.jsChrome AppWebDGapNw.js是最先进的桌面网络技术平台。
Nw.js”是一个基于Chromiumnode.js的应用程序运行时。您可以使用Nw.js在HTML和JavaScript中编写本地应用程序。它还允许您直接从DOM调用Node.js模块,并以所有Web技术编写本机应用程序的新方式。 Node.js适用于32位和64位处理器,正在快速升级,开发人员非常乐于助人,因为它是基于Chromium构建的,所以非常快速。

据我最近了解,nw.js仅适用于32位处理器(除了Mac应用程序可以在64位处理器上运行)。不过这种情况可能已经改变了。 - Michael Schwartz
它也支持Windows、Linux和Mac的64位架构。 - kailniris
你知道他们什么时候做的吗? - Michael Schwartz
1
第一个支持64位Windows平台的版本是v0.11.0(2014年11月11日)。 - kailniris

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接