这是对我之前提出的问题的重新措辞尝试。我想知道为什么 C++ 似乎是某些胖客户端应用程序的首选语言。我能想到的最简单的例子是视频游戏和我最喜欢的应用程序 VirtualBox。
请不要关闭这篇文章,我只是想了解为什么会这样。
最佳答案
作为从事 AAA 游戏的专业游戏开发者,我可以告诉您。第一个原因是 C++,C 可以在任何平台上编译和运行,比如 PS3 或 NDS。下一代平台制造商只提供强大的 C 库来与硬件接口(interface)。这背后的原因是 C 和 C++ 是免费的,不属于一家公司,因为它们是为接近金属的低级编程而设计的。这意味着游戏开发者需要了解形成反馈循环的 C/C++。然而,现在许多开发人员使用 C# 或 Java 制作他们的工具集,但那是因为性能并不重要。
现在这种姿势对于大多数 Web 开发人员来说似乎是狂热的,但游戏需要处理整个复杂模拟片段并每秒渲染多达 60 次,很少有 Web 应用程序必然会保持在该延迟率内,因此需求是不同的。出于同样的原因,很少有 Web 服务是用 C++ 生成的。
然而,由于开发速度的提高和微调游戏的能力,高级 AI 和游戏玩法(规则)是脚本化的。也因为这大约占资源的 15%,所以我们可以在这里挥霍一下,让设计师完成他们的工作。另请注意,编写一个灵活的规则系统无论如何都会占用大约相同的资源,即使是在 C++ 中完成也是如此。哦,并非所有平台都允许 Jit 代码,这很好 :)
当然,正如提到的内存控制,即使您使用的内存比硬件提供的内存多 1 个字节,它也不会像 PC 那样变慢。它崩溃了。所以我们喜欢我们的裸指针、自定义分配器和 RAII。
关于.net - 在游戏开发和 VirtualBox 等应用程序方面,C++ 比 .NET 有什么优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/469722/