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

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

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

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 行 C++ 代码绘制 500 棵树更好。

关心游戏,而不是语言

当你没有制作任何游戏时,使用什么语言并不重要,对吗?
在 C++ 上制作游戏比在 Python 或 Ruby 上制作游戏更加要求更高、更累。当您使用 C++ 制作 1 个游戏时,您将使用 Python 制作 10 个游戏。当您使用 Python 制作 5 个游戏时,使用 C++ 制作 0 个游戏。
让我们关心游戏和乐趣,否则还有什么意义?

以上就是C++:游戏行业对速度的痴迷的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2591649.html

(0)
上一篇 2025年3月6日 16:54:00
下一篇 2025年2月19日 04:31:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Java框架与其他Web开发框架的比较如何?

    java框架因其成熟性、可扩展性和强大的生态系统而受到推崇,而其他框架如django、express和ruby on rails则以易用性、速度和灵活性见长。例如,使用java框架spring boot和python框架django开发博客…

    2025年3月6日
    200
  • 探索 GraalVM 和多语言编程

    graalvm 是一个高性能运行时,可显着提高应用程序性能和效率。其突出的功能之一是支持多语言编程,允许开发人员在单个应用程序中无缝地以多种语言编写和运行代码。 什么是 graalvm? graalvm 是一个开源项目,它扩展了 java …

    2025年3月6日
    200
  • 想成为一名软件工程师吗?自上而下学习的难度

    从小我就是一个非常好奇的人,喜欢理解和解决问题。我第一次接触编程是在高中,出于显而易见的原因,我很快就对它着迷了。 在高中时,我记得使用的第一个语言和工具是 Turing、Processing、GreenFoot 和 BlueJ。所有这些都…

    2025年3月6日
    200
  • Javascript没有全栈框架(这次将怀念全栈时代)

    本文开始了关于 Gergely Orosz 的 What is Old is New Again 演讲的一系列笔记,试图将他的预测(引起我强烈共鸣)转化为聪明的软件工程师的实际步骤。 “全栈正在如火如荼地进行” 当你开始考虑全栈框架时,你很…

    2025年3月6日
    200
  • 每个开发人员都应该了解的顶级后端框架

    在不断发展的 Web 开发世界中,后端框架是无名英雄,为我们最喜​​欢的应用程序背后的引擎提供动力。这些框架不仅简化了开发过程,还确保您的应用程序可扩展、安全且健壮。这里是每个开发人员都应该知道的 10 个后端框架。 1.Django-Py…

    2025年3月6日
    200
  • Web Development Job in 4

    简介 网络开发领域持续快速发展,为拥有适当技能和知识的个人提供了令人兴奋的机会。如果您想进入这个充满活力的行业或提升自己的职业生涯,这里有一些重要策略可以帮助您在 2024 年找到梦想的工作: 1. 掌握基本技能 编程语言:熟练掌握 Jav…

    2025年3月6日
    200
  • 函数式编程面试问答

    1. 函数式编程和面向对象编程之间的一些主要区别是什么? 答案:函数式编程和面向对象编程之间存在一些关键区别。下面让我们详细解释这些差异: 1. 状态和副作用: 函数式编程:在函数式编程中,函数用于最大限度地减少副作用,这有助于使代码更安全…

    2025年3月6日
    200
  • typescript是脚本语言吗

    否。TypeScript 是一种编译型编程语言,提供静态类型检查和面向对象特性,以扩展 JavaScript。它不是脚本语言,而是编译成 JavaScript 的编程语言。 TypeScript 是脚本语言吗? 否。 详细说明: TypeS…

    2025年3月6日
    200
  • 如何开始 Web 开发

    介绍 Web 开发是当今最受欢迎的职业之一,对于那些对 前端(用户所看到的内容)和 后端(服务器逻辑)感兴趣的人来说)。如果您刚刚起步,想知道从哪里开始或者作为开发者可以赚多少钱,本指南将为您提供清晰的路径和入门资源。 什么是网页开发? 网…

    2025年3月6日
    200
  • 全栈开发演变:趋势和最佳实践

    在过去的十年里,全栈开发发生了很大的变化。从对能够处理后端和前端任务的开发人员的不同寻常的责任到成为行业标准,这确实是一段奇怪的旅程。 如今,成为一名全栈开发人员不仅仅意味着兼顾应用程序的两个方面。它涉及掌握一系列技术并通过遵循最佳实践来适…

    2025年3月6日
    200

发表回复

登录后才能评论