Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两全其美:浏览器和桌面游戏?_Java_C++_Browser Plugin - Fatal编程技术网

Java 两全其美:浏览器和桌面游戏?

Java 两全其美:浏览器和桌面游戏?,java,c++,browser-plugin,Java,C++,Browser Plugin,在考虑游戏平台时,我决定使用多平台(Win/Lin/Mac),但对于浏览器和桌面,我还拿不定主意。由于我的发展还不算太远,现在有了新的想法,我想听听你的意见 使用Java小程序的基于浏览器的游戏: 市场渗透率相当高(对于版本6,我认为大约在60%左右?) 使用JOGL,3D性能/质量相当不错;当然好得足以渲染我制作的糟糕的3D图形 将某些东西移植到安卓系统(很小?)的可能性很小 非常适合经常更换电脑的玩家;可以坐在任何计算机上,加载网页并播放 对于那些喜欢在浏览器中玩游戏但又不想在电脑上安装

在考虑游戏平台时,我决定使用多平台(Win/Lin/Mac),但对于浏览器和桌面,我还拿不定主意。由于我的发展还不算太远,现在有了新的想法,我想听听你的意见


使用Java小程序的基于浏览器的游戏:
  • 市场渗透率相当高(对于版本6,我认为大约在60%左右?)
  • 使用JOGL3D性能/质量相当不错;当然好得足以渲染我制作的糟糕的3D图形
  • 将某些东西移植到安卓系统(很小?)的可能性很小
  • 非常适合经常更换电脑的玩家;可以坐在任何计算机上,加载网页并播放
  • 对于那些喜欢在浏览器中玩游戏但又不想在电脑上安装更多东西的休闲玩家或知识水平较低的玩家来说,这也是一个不错的选择
  • 用一种强的高级语言<强>我比C++更熟悉——但同时我想提高我的C++技能,因为这可能是我离开学校后我在游戏行业的方向…
  • 更新过程更简单:重新加载页面
使用OLE C++和OpenGL的桌面游戏
  • 100%的市场渗透率,假设完全跨平台;但是,当你考虑下载和安装一个可执行文件时,这个数字会减少,而只是浏览网页并点击“是”到安全警告。
  • 跨平台维护更加困难;但同样,出于学习目的,我会接受挑战和我将获得的知识
  • 更好的性能全面
  • 真正的全屏,而浏览器游戏通常难以实现平滑的全屏图形(以我的经验,尤其是在Linux上)
  • 可以利用配送平台,如Steam
  • 更可能被认为是一款真正的游戏,而浏览器和Java游戏通常被认为不是真正的游戏,因此不是“铁杆玩家”玩的
  • 安装程序可以很大;不必太担心下载时间

有什么方法可以两全其美吗?我喜欢Java小程序,但我也很喜欢编写桌面游戏的理由。我不想在java applet项目和C++项目之间不断地把所有东西都移植到一起;那将是工作的两倍

Unity选择编写自己的web播放器插件。我不喜欢这样,因为我是不会为任何事情安装web播放器的人之一,而且我不认为自己能够说服我的观众安装浏览器插件


我有什么选择?除了Unity之外,还有其他具有浏览器和桌面版本的游戏吗?我在上面的赞成/反对列表中遗漏了什么吗?

你在问题中提到了Android-你有没有考虑过纯粹为Android开发游戏


实际上,你可以两全其美,易于维护,易于发布新版本,易于赚钱,并获得少量收入,而且你也没有编写自己的安装程序或更新机制。

我认为你无法真正比较这两者:

我认为:

  • Applet、flash和其他基于浏览器的游戏通常是免费编写或添加广告的小型“玩具”游戏。例如,查看网站
  • C++游戏更可能是由工作室编写的重量级游戏,依赖于专用的物理引擎、图形引擎等(尤其是在Steam上发布的游戏,我会认为)。学习曲线可能会更陡峭,因为C++天生就比java/flash更难学。

如果你不熟悉C++,我的建议是用JOGL来引导java。这样你就可以在需要处理C++之前缩放开放的GL学习曲线。 编辑


为了解决你在浏览器和桌面形式上实现游戏的问题的另一部分,你可以考虑在java中实现游戏并部署applet和独立版本,从而独立的java版本可以利用Java的全屏独占模式API。您可以将两个应用程序基于相同的代码库。您还可以考虑通过在服务器端保留数据文件(例如游戏级别)来缩小Applet的足迹大小,并在需要时动态地检索它们。

< P>如果您真的想要这样的渗透,那么我建议HTML 5 +JavaScript取决于您需要的性能。

< P>您可能想查看谷歌的它允许你在C或C++中编写你的应用程序(或者是编译到本地代码的任何东西)。SDK的一个新功能是LLVM支持,它将(希望)允许NaCl软件针对运行Google Chrome浏览器的任何平台(或NaCl插件使用的任何浏览器,目前支持x86和ARM,IIRC)。

而WebSense不允许我直接浏览该网站,原因很明显,当阅读这个问题时,首先想到的是一个类似游戏的问题。它是用Java和JOGL编写的,实现了内容流和本地缓存,并且似乎触及了很多您感兴趣的地方。它是一个桌面Java应用程序,而不是真正的“在浏览器中”,但我认为您仍然可以从它的实现中学到很多东西

浏览器内的游戏总是有关闭或刷新窗口的危险,导致它突然失去状态,除非所有内容都保存在服务器端。这意味着你要么有非常简单的游戏,可以保持同步