首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >专业游戏开发环境中最好的C++编程实践?

专业游戏开发环境中最好的C++编程实践?
EN

Stack Overflow用户
提问于 2010-07-16 15:43:19
回答 8查看 4.8K关注 0票数 3

我受过良好的C++编程语言方面的语法,STL等方面的教育。除了一些大学课程之外,我还没有做过任何真正的项目。我的目标是开始编写进度,但尝试让它与业界的最佳实践保持一致。我的主要目标之一是在游戏行业工作。一扇门开了,我问了这些问题。

  1. C++游戏开发人员通常仅限于使用所有C++功能吗?对每个平台来说或多或少都是真的吗?
  2. 这几天STL是在环境中使用的,还是我应该避免使用?
  3. 他们是将C++视为“一切都必须是一个对象”,还是将其视为一种混合范式?
  4. 他们倾向于不使用的任何功能?
  5. C还在使用吗,显示在其中完成的项目好吗?
  6. 我确实和一位著名的游戏设计师谈过,他说他们不使用STL,并且说用类进行基本封装,但是他说不要使用所有其他高级C++特性。这样做的目的是保持简单。这很常见吗?

提前感谢!

EN

回答 8

Stack Overflow用户

发布于 2010-07-16 16:05:40

请记住,“游戏开发”涵盖了从手机到网站、PSP和DS到Wii、Xbox、PS3和PC/Mac等各个方面,因此您得到的答案可能因产品/开发人员/平台的不同而有所不同。

1)是。游戏开发可能意味着您必须为目标平台使用特定的编译器,这可能不支持C++的一些“更新”功能。您可能会受到开发工作室允许您使用的库的限制。此外,某些平台上的硬件限制可能会影响您的编码方式(例如,在某些系统上,虚拟功能的成本可能比PC过高,因此出于性能原因,您的设计可以限制在纯OO上。有些系统资源有限(内存、磁盘等),这将对您的设计产生很大影响。在Playstation3上,您可能需要编写向量处理SPU任务,而不是传统的单线程/多线程代码。等)。

2)是。(这是常用的,因为通常没有必要浪费你自己的时间

( 3)混合。在游戏中,关键的目标通常是(按大致顺序排列):按时交付不可能的东西(为什么你现在回家,现在才10点?),提供高性能,尽量不要崩溃。

4,6)通常保持代码的简单和灵活,以便您可以快速开发和更改以适应生产者的最新愿景。你通常有很紧的期限,所以很多设计和仔细的编码往往很难实现。不幸的是,这个行业倾向于“快速编写代码,这样我们就可以扔掉它,开始下一个产品”,尽管它正在慢慢地转向可重用库的想法(以及更有条理的专业实践,如单元测试等)。

一个典型的场景是,要求你为老板编写一个快速而肮脏的演示,然后当你认为你能把它扔掉并写好的时候,老板说:“我们没有时间重写已经起作用的东西,从下一个层次开始。”因此,如果你被要求迅速“不”脏,尽量不要烧太多的桥,否则你会后悔的。

5)您可以使用C,但它取决于平台和开发环境。这些天来,大多数开发将是C++,即使在语法和特性方面,代码的部分实际上“略高于C”。

票数 5
EN

Stack Overflow用户

发布于 2010-07-16 15:49:22

这些问题并不是游戏发展所独有的。你会发现,他们在不同的领域和公司的变化一样多。我可以想到两家游戏设计公司,他们在我的头顶上使用STL,也有少数公司不使用STL。

1)定义“所有C++特性”。他们通常不使用后藤,如果这是你的意思。

2)是的,使用STL。你不应该回避它,也不应该避免它--每次你有需要完成的工作时,都要使用你需要完成任务的工具。让您使用的内容与其他方法保持一致,解决类似的问题,-within (项目或上下文)非常重要。

3)取决于你在哪里,无论是在游戏中还是在游戏之外。有些人是毕业的C人,他们想要的东西更像C。其他人是C#/Java,他们更喜欢OO (对象痴迷)。

4)后藤

5)是的,也是的。懂得一门以上的语言总是一件好事。即使只是C到C++。

再次,使用可用的工具来解决您的问题。保持简单是好的,当你可以,当然。

票数 2
EN

Stack Overflow用户

发布于 2010-07-16 15:50:14

1)没有任何限制,只是您应该遵循编程指南,以便正确地使用它们(即在使用goto时避免使用恐龙 )。

2)是的,它是用的,助推也是(这是下一个STL的预览版)。

3)混合,总是混合。说C++只面向对象就是误解了语言。“一切都是对象”实际上是一个Java (或类似于它的东西);查看C++的POD概念,作为一个例子,说明不是所有的东西都是对象。

4)与1相同)

5)它被使用了,但据我所见,在C中没有创建新的项目。

6)不.他说的和我刚才说的正好相反。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3266564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档