C 很久以前就成为游戏和图形软件的标准语言。而且,这是有实际原因的——使用实时图形和物理需要高性能。处理几何图形、管理缓冲区、矩阵计算 - 所有这些都需要时间。
但是,高级逻辑又如何呢?游戏机制、用户界面、存储管理、网络请求? 稳定性和安全性比速度更需要。
我们可以用编译语言(例如 C )实现对性能要求较高的函数,并从用动态语言(例如 Python)编写的程序中调用它们。
但是,今天我们已经有了记录良好且易于使用的 Python 库(pygame、pyopengl、pyassimp、pybullet、numpy),这些库主要在 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 代码。
当你没有制作任何游戏时,使用什么语言并不重要,对吧?
与在 Python 或 Ruby 上制作游戏相比,在 C 上制作游戏要求更高、更费力。当您使用 C 制作 1 个游戏时,您将使用 Python 制作 10 个游戏。当你用Python制作5个游戏时,用C制作0个游戏。
让我们关心游戏和乐趣,否则还有什么意义?
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3