首页  >  文章  >  Java  >  C++:游戏行业对速度的痴迷

C++:游戏行业对速度的痴迷

王林
王林原创
2024-07-27 18:31:42546浏览

C++ : speed obsession in the game industry

我们什么时候真正需要速度

C++很久以前就成为游戏和图形软件的标准语言。而且,这是有实际原因的——使用实时图形物理需要高性能。处理几何图形、管理缓冲区、矩阵计算 - 所有这些都需要时间。
但是,高级逻辑又如何呢?游戏机制、用户界面、存储管理、网络请求? 稳定性和安全性在那里比速度更需要。

责任分配

我们可以用编译语言(例如 C++)实现对性能要求较高的函数,并从用动态语言(例如 Python)编写的程序中调用它们。
但是,今天我们已经有了文档齐全且易于使用的 Python 库(pygame、pyopengl、pyassimp、pybullet、numpy),这些库主要在 C/C++ 上实现,并提供用于繁重计算的函数,或特别是物理/图形。我们可能永远不需要自己实现这样的库。

C++是唯一的选择吗?

人们普遍认为,垃圾收集语言(例如 Java 或 C#)比 C++ 慢,并且不能真正满足繁重计算的要求。 这当然不是真的
在某些特殊情况下,C++ 的性能可能比 Java 或 C# 提高 20-30%,但是当涉及到运行时抽象,例如动态函数调度、语言交互、异步任务、文本或抽象集合管理时, Java 和 C# 的效率比 C++ 高得多。
此外,我们可以使用 Jython 或 IronPython 在与 Java 或 C# 相同的运行时运行 Python 程序。它带来了很多好处,例如共享垃圾收集内存、类型系统以及开箱即用的轻松访问C#或Java库。在 Java 上实现了诸如 Clojure 和 Groovy 等出色的动态语言,它们可以完全访问 Java 类库并共享前面提到的优点。

真正影响性能的是什么?

今天的个人电脑比 15-20 年前快得多。但是,大多数桌面程序或游戏的运行速度不如预期(尽管它们仍然主要在 C/C++ 上实现)。今天,我们需要的不仅仅是语言速度,还需要好的算法有效的方法。 Python 上具有恒定复杂度的函数比 C 上具有线性复杂度的函数更可取。用 15 行 Python 代码绘制 100 棵树比用 300 行绘制 500 棵树更可取C++ 代码。

关心游戏,而不是语言

当你没有制作任何游戏时,使用什么语言并不重要,对吧?
在 C++ 上制作游戏比在 Python 或 Ruby 上制作游戏要求更高且更费力。当您使用 C++ 制作1 个游戏时,您将使用Python制作10 个游戏。当您使用 Python 制作 5 个游戏时,将是 使用 C++ 制作 0 个游戏

让我们关心游戏和乐趣,否则还有什么意义?

以上是C++:游戏行业对速度的痴迷的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn