【问题标题】:Game Programming as Hobby, should I use Java or C++ [closed]作为爱好的游戏编程,我应该使用 Java 还是 C++ [关闭]
【发布时间】:2009-06-10 09:03:28
【问题描述】:

目前,我正在从《Java 的艺术与科学》一书中学习 Java,并遵循斯坦福的编程方法课程。

我想做游戏编程,但只是作为一种爱好。

我在想,Java 是一个不错的选择,还是 C++ 是游戏编程中的事实。

【问题讨论】:

标签: java c++


【解决方案1】:

既然你正在学习 Java,我建议你坚持下去。

如果您只是为了好玩而开发游戏,那么您使用什么语言并不重要。

【讨论】:

  • 另外,C# 是学习 Java 后的一个相当容易的回避,XNA 框架非常推荐用于爱好游戏开发
  • Xna 允许您为 Windows、XBox 和 Zune 创建游戏。
  • Killer Game Programming in Java 没问题,Java 1.6 已经看到了语言的改进,但没有什么主要破坏 1.4 应用程序。但是要小心;那本书很快就深入研究了 Java3D 示例,而这可能不是您想要的路径。 Java3D 是一个基于场景图的 3D 引擎,对我来说太高级了,作为这本书的所有者,自从决定使用 JOGL 之后我就没有拿起它。绝对 +1 使用 Java。它曾经有速度问题,但现在 Hotspot VM 运行的应用程序可以与原生应用程序的速度相媲美,而且 Java 的高级特性非常好。
  • 这个答案很大程度上取决于你对“有趣”的定义:)
【解决方案2】:

这取决于,您想了解更多有关 C++ 的信息吗?你需要知道吗? Java 中仍有可用的 OpenGL 库,无论您使用哪种语言,这些概念基本上都是相同的。如果只是出于爱好,那么我看不出使用 Java 有什么问题。然而,就速度而言,更喜欢低级语言。

【讨论】:

  • 这取决于你在做什么。当实时渲染等系统需要指针运算时,C++ 会很快,而 Java 当然无法做到!就直接比较而言,尽管 Java 非常快。
  • 没有太大区别。尤其是如果您大量使用 OpenGL - 从 C++ 调用它不会让显卡运行得更快。
  • 如果您阅读有关速度比较的真实报告,则不会。 Java 是一门很棒的语言。
  • Java 的速度问题已经修复了好几年。任何抱怨 Java 速度的文章都可能已经过时,或者是由仅在 90 年代后期才使用 Java 的人撰写的,当时它确实很慢。它的速度在很多方面都可以与 C++ 媲美。谷歌的这个顶级结果很好地显示了 Java 的速度,但对它持保留态度,因为它很可能有偏见:idiom.com/~zilla/Computer/javaCbenchmark.html 同样值得注意的是,Java 用于企业级(因此是 J2EE)。如果许多大公司都信任它,我相信。
  • 我认识的在视频游戏系统上进行开发的每个人都仍在使用 C++。我不确定什么时候会改变。作为爱好,在 PC 上,我确信 C# 或 Java 都可以。
【解决方案3】:

两者都可以。出于爱好,它们都对图形等提供了很好的低级支持,并且都具有很好的游戏高级库(jMonkey 引擎、SDL、SFML、Ogre 等等)。

您也可以考虑其他语言。 Python 具有称为 PyGame 的 SDL 绑定。 C# 有 XNA 框架,现在已经出版了几本书来帮助学习框架。 SFML 绑定了 C++、C、D、Ruby,我认为是 Python。所有这些都适合用于创建游戏。只需选择一种语言即可。

【讨论】:

    【解决方案4】:

    如果你问我,Java 或 C++ 都不是有趣的语言。它们都有很多优点,但如果你只是为了好玩而没有截止日期,我会寻找一种更有趣的语言。像 Python 或类似的东西。

    【讨论】:

    • 我绝对有 Python 作为新的学习语言。但它在Java之后。目前,我正在使用 Java。
    • 然而,用 Python 制作游戏并不好玩。即使有像 Pygame 这样的东西,它也会很快变得复杂。 XNA 是我最喜欢的高级编程与有趣、简单的游戏开发和大量文档的组合。
    • 但是你刚刚说你目前正在使用 Java,所以如果你不愿意切换到 C# 尽管语言有很多相似之处,那么试试 JMonkeyEngine 之类的高级或 JOGL 之类的低级。
    • Python 是一门令人愉悦的语言,但我认为尝试用它来做游戏会杀了我。当然,除非你只想做一款益智游戏。
    【解决方案5】:

    如果你想制作游戏,你真的需要一个游戏平台和一种语言,否则你将把所有的时间都花在解决如何在屏幕上绘制精灵等基本问题上,而不是专注于构建一个有趣的游戏。

    爱好游戏开发的最佳选择是:

    • Microft 采用 C# 语言的 XNA 平台
    • Adobe 的带有 ActionScript 语言的 Flash
    • Sun 的 JavaFX 平台与 JavaFX 脚本语言
    • Unity3D 与 C# 语言
    • 使用 C++ 语言的 Ogre

    【讨论】:

    • +1 到 XNA 用于游戏原型(和 Xbox 360 游戏!),C# 在许多方面与 Java 相似。 Flash 通常不适合严肃的游戏,但我敢肯定那里有一些。 Ogre 可能很复杂,但绝对是一款出色的专业引擎。我只是迷失在它的所有文档和功能等中。另外,不要忘记使用 Java 语言的 JOGL。它基本上是 Java 的 OpenGL 绑定。您可以通过 OpenGL 的硬件加速和速度获得 Java 语言的优势。
    • 我看到很多赞成 XNA 和 C# 的投票。我也想看看
    【解决方案6】:

    您可以使用这两种语言编写游戏,但我认为您真的应该尝试 C++。用 C++ 编写的高级库和游戏引擎比 Java 多得多,因此更容易找到适合您需求的库和游戏引擎。更不用说很多老游戏已经开源了,你可以免费下载和研究代码。你可以猜出他们使用的是什么语言;)

    您还会发现更多使用 C/C++ 教授游戏编程的教程和书籍。

    无论您最终选择什么,尽情享受编写游戏的乐趣吧 :)

    【讨论】:

      【解决方案7】:

      如果你使用 Java,我推荐Computer Graphics for Java Programmers, by Leen Ammeraal

      如果您正在开发商业游戏,您将使用库而不是自己实现这些算法,但是一旦您了解了基础知识就会更容易,您可以从像这本书这样的书中学习。

      我曾经用 Java 为 DOOM 克隆写过一个软件渲染器,这本书作为参考很有帮助。

      【讨论】:

      • 非常感谢 finnw,我会看这本书的。它可能会帮助我。
      【解决方案8】:

      C++ 是事实上的语言,不仅适用于游戏开发,而且适用于几乎所有其他方面,包括您使用的浏览器及其运行的操作系统。

      因此,如果您正在考虑认真对待 C/C++ 编程,那么您应该排在首位。

      C++ 的速度一般比 Java 快。 为什么一般?嗯,事实是 C++ 比 Java 快,实际上比几乎所有其他东西都快,但有时 C++ 代码可能写得不好,Java 可能会阻止初学者犯一些错误,从而导致许多声称 Java 与 C++ 一样快,甚至有人声称 Python/Psyco 与 C++ 一样快并且比 Java 更快。

      请记住,为框架(Java、.NET、VB 等)编写的任何程序都不会比在 C/C++ 等较低级别(直接在操作系统甚至硬件上)运行的程序运行得更快、ASM、Pascal 等。

      看看这个:

      Poorly written C++ half the speed of Java, properly written is much faster

      最后,您应该使用您觉得更舒服的语言,记住 python 是企业级的、商业化的、稳定的、非常适合初学者,在“Web 2.0”项目中使用非常棒,更不用说也很有趣。

      【讨论】:

      • "请记住,为框架(Java、.NET、VB 等)编写的任何程序都不会比在较低级别(直接在操作系统上甚至在硬件)像 C/C++” 根本不是真的。
      【解决方案9】:

      Java - 我建议坚持使用并精通它。这些想法保持不变,随着您对单一语言的深入了解,您将开始了解当今许多编程方法和语言中普遍存在的缺点和优点。

      【讨论】:

        【解决方案10】:

        即使您从未打算从事专业游戏开发,C++ 也有一大优势,那就是您拥有更多可用资源。有更多书籍、更多在线教程、更多开源示例可供查看,更多人将能够在 gamedev.net 等网站上回答您的问题。

        【讨论】:

        • 是的。不幸的是,Java 游戏开发方面的内容并不多。但是使用 JOGL,您可以使用任何 OpenGL 书籍并将其应用于 JOGL,因为它本质上是 OpenGL 的直接端口/绑定。此外,你在任何书籍中找到的基本游戏开发知识都可以适用于任何语言,任何特殊算法(如 A*)只要你了解其中的要点,就可以轻松移植到 Java。
        【解决方案11】:

        我用 C++ 和 Java 开发了几个小游戏,我每次都会选择 C++。它为您提供了 Java 无法获得的低级控制。但游戏开发是完全不同的野兽。因此,如果您想学习游戏开发,请从您喜欢的事物开始

        【讨论】:

          【解决方案12】:

          如果您认为自己有朝一日可能想在该行业工作,那么您应该学习 C++。 C++ 用于制作几乎所有在 PC/xbox/ps3 上运行的商业游戏。我认为 wii 是一样的,但我不知道 100%,我从来没有在 wii 上工作过。

          我曾经工作的游戏工作室(在它关闭之前)使用 C++ 开发游戏(小部分使用 C 和汇编程序),并且开始使用 C# 作为工具。

          如果它只是一种爱好,那么你使用什么语言并不重要。

          【讨论】:

          • GameCube 是 C++。我认为 Wii 也是如此。
          【解决方案13】:

          我建议尝试使用 C 语言 Haaf's Game Engine。它是非常简单的 2D 引擎,具有良好的文档、教程和示例,可在 Windows 98 及更高版本上运行,即使用于商业用途也完全免费!

          如果您是游戏开发的新手,恕我直言,它适合您。

          【讨论】:

          • 我不确定 Java 引擎。对不起。尝试询问 Google。
          • 一些开源Java游戏引擎/库:JGame、jMonkeyEngine、jogre。
          【解决方案14】:

          只是一个爱好?如果您使用的是Java,那么Java。但首先,你在编程什么,2-D 或 3-D 游戏? Java 两者都做,它是我的游戏编程语言,但我只做二维程序。 C++ 是严肃游戏编程的事实标准,尤其是商业游戏。

          Java 有一个很棒的 IDE,叫做 Eclipse,对我来说,它值得自己做 Java...Eclipse 太棒了!而且是免费的。

          C# - 不。太依赖微软了。

          顺便说一句,如果您计划得当,Java 将作为小程序和应用程序运行,该应用程序可在所有三个平台上运行...

          所以,考虑一下。低投资、高质量工具、跨平台。如果你决定进入 C++,那也没关系。至少你会免费弄湿你的脚趾...... ;-)

          【讨论】:

            【解决方案15】:

            语言定义目标平台和公共。 Java 和 C++ 都有优点和缺点。您将在任何平台上使用相同的架构和算法。如果你知道如何用 C++ 编写游戏,那么用 java 编写游戏需要一点时间(我需要 2 周 http://madeinsoviets.net/)。 开始使用 C++ 和一些简单的游戏引擎(Ogre3D、irrlight)学习游戏编程 - 更多信息和教程。

            【讨论】:

              【解决方案16】:

              老话题,但由于人们仍在阅读这篇文章,我想添加我的 2c,因为它是独一无二的 到这篇文章。

              坚持使用 java,如果您将它作为一种爱好,它是通过 c++ 制作游戏的好方法 出于这两个原因,您自己。

              1. 相同结果的编码减少 10 倍(尽管它运行大约 5 倍 慢)
              2. Android 游戏,即使是平庸的游戏也会在 市场。如果你卖掉一个,你会感到非常自豪! (java 在 android 上也不会比 C++ 慢,因为它的 JVM 是 独特的并且针对直接访问硬件的 API 运行,这 太棒了!)

              【讨论】:

                【解决方案17】:

                如果您只是将其作为一种爱好,那可能没关系。只需使用您最舒服的任何东西,您就可以开始游戏编程。一旦你变得更好,你可能想弄清楚什么是“最好的”语言。

                【讨论】:

                  【解决方案18】:

                  如果您的意图是一般游戏编程,我肯定会推荐 C++。当然,如果您想为诺基亚和爱立信这样的移动平台进行开发,那么 Java 可能是一个好主意。

                  但如果是用于一般桌面游戏,那么绝对是 C++。如果您想通过网络部署游戏,那么 Flash 也可能是一个好主意。

                  【讨论】:

                    【解决方案19】:

                    如果您打算进入这个行业(或者也许有一天开始自己销售您的游戏),那么您必须学习 C++。

                    Java 或 C# 是创建游戏的好选择,无需过多担心机器(内存和速度)。建议初学者使用,但我个人会直接从 C++ 开始。

                    【讨论】:

                    • 我只会在 Windows 机器上工作。我不拥有控制台,也不打算为它编写代码。所以我的目标只是简单的 Windows 游戏,使用 Java 或 C++。
                    • 那么一个或另一个并不重要。使用你开始使用的那个并坚持到你的项目结束。
                    【解决方案20】:

                    如果您正在研究游戏编程,那么 C++ 是您的最佳选择。 Java 确实适用于某些游戏,但 C++ 的速度要快得多。

                    我以前用 Java 编码,然后开始用 C++ 编码。我花在 C++ 编码上的时间让我理解了某些在 Java 中被大大简化的东西。

                    根据您的编程经验,我建议您先学习 Java 的基础知识,然后再学习 C++。

                    【讨论】:

                    • 我也决定走同样的路,先学Java,精通Java,再转C++
                    • “C++ 快得多” - 实际上它是可比的 idiom.com/~zilla/Computer/javaCbenchmark.html 选择或避免使用 Java 有很多理由,但自 90 年代以来速度就没有那么快了。
                    【解决方案21】:

                    如果你从 Java 开始,我推荐这本书Physics for Game Programmers

                    【讨论】:

                    • 感谢您的参考,我也想看看那本书。
                    【解决方案22】:

                    一般中,C++ 用于真正的游戏。

                    无论我使用什么平台或程序,Java 对我来说总是很慢。

                    C# 比 Java 好,但不如 C++。

                    是的,也有例外,但它们如此引人注目的事实证明,除非你真的知道自己在做什么,否则 C++ 才是正确的选择。

                    【讨论】:

                    • 我会将最后一句更改为“只有当您真正知道自己在做什么时,C++ 才是正确的选择”。 C++ 很棒,但 Java 和 C# 更容易学习。
                    • @aaaa:我从来没有发现 C++ 像人们说的那样糟糕。我不认为这特别难。
                    • 我用 C 语言编程了 14 年,然后用 C++ 编程了 5 年。我爱它。从那时起,我用 Java 编程了 2 年,现在用 C# 编程了 2 年。除非迫不得已,否则我永远不会回到 C++。
                    猜你喜欢
                    • 1970-01-01
                    • 2010-09-09
                    • 1970-01-01
                    • 2012-03-06
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-09-06
                    • 2016-12-20
                    • 1970-01-01
                    相关资源
                    最近更新 更多