c++ - 电子游戏只是一个大的while循环吗?
问题描述
视频游戏只是 C++ 中的 while 循环中的一个大笨蛋吗?制作 AAA 级视频游戏的复杂代码非常复杂。但实际上,当 main() 被调用时,是否只有一个函数在一个大的 while 循环中运行所有其他函数?
我拥有计算机科学学位,我什至不知道这是否会导致内存效率极低。我的意思是不会超过 O^2 或其他任何值。基本上是两个嵌套的 for 循环。
也许他们使用对数算法。我什至不知道那是什么意思。除了我猜对数,算出一个数字的平方。我不知道这对人类有什么帮助。
但说真的,Triple A 视频游戏 C++ 代码是什么样的。它可能真的很奇怪或异国情调。它肯定不是您在有关 C++ 的培训视频中阅读或看到的任何内容。
为什么每个 C++ 培训材料都有一个 Employee 类?哇。做一个太空船类。
员工是这个星球上最无聊的事情。流浪班会更好,更有趣。
解决方案
是的,游戏通常会运行一个游戏循环。这与大 O 无关。O(N^2)
描述了一种算法,其资源使用(通常表示为时间,但有时表示内存)随输入大小呈二次方增长。游戏循环不依赖于任何输入的大小;它被设计为永远运行(或者更确切地说,直到用户停止播放)。但是,由于游戏循环需要快速,因此对从游戏循环中调用的内容有一些限制,以使游戏不会卡顿;这些子程序确实有输入(例如要渲染的精灵、需要测试碰撞的游戏对象……),并且通常希望确保这些子程序尽可能高效地运行——因此大 O 是适用的。
推荐阅读
- react-final-form - 另一个字段更改后字段更改时的反应最终表单句柄以及为什么formspy运行2次?
- docker - 如何使用 docker-java 的 detach 启动 docker 容器?
- cordova - Adobe 已停止 PhoneGap Build 并结束对 PhoneGap 和 Apache Cordova 的投资
- html - 如何在href标签中传递变量?
- reactjs - 测试套装因“SyntaxError: Unexpected token 'export”' react typescript using jest 失败
- node.js - Nodejs 和计算繁重的操作,通过工作线程最大限度地利用 cpu,同时仍然获得一些响应能力
- javascript - Jqplot - 单击一个点将其从数据库中删除
- python - Visual Studio Code Debugger - 询问 CLI 参数
- java - 在执行之前打印 SQL 查询的preparedStatement
- python - Pip 选择要求版本