我在C++编程语言方面受过良好的语法,STL等方面的教育.除了一些大学课程之外,我还没有做过任何真正的项目.我的目标是开始编写程序,但尝试将其保持在行业最佳实践中.我的主要目标之一是在游戏行业工作.一扇门打开,引导我提出这些问题.
提前致谢!
请记住,"游戏开发"涵盖从手机到网站到PSP和DS到Wii,Xbox,PS3和PC/Mac的所有内容,因此您获得的答案可能因产品/开发人员/平台而异.
1)是的.游戏开发可能意味着您必须为目标平台使用特定的编译器,这可能不支持C++的某些"较新"功能.您可能会受限于开发工作室允许您使用的库.此外,某些平台上的硬件限制可能会影响您的编码方式(例如,在某些系统上,与PC相比,虚拟功能的成本可能过高,因此出于性能原因,您的设计可能会受到纯OO的限制.某些系统受限资源(内存,磁盘等)会对您的设计产生很大的影响.在Playstation3上,您可能需要编写矢量处理SPU任务而不是传统的单/多线程代码等.
2)是的.(它是常用的,因为通常没有浪费时间滚动你自己,可能效率较低的等价物)
3)混合.通常在游戏中,关键目标是(按粗略的顺序):按时交付不可能的(你为什么现在回家,只有晚上10点?),提供高性能,并尽量不崩溃.
4,6)通常保持代码简单灵活,以便您可以快速开发并根据生产商的最新愿景进行更改.您通常有紧迫的期限,因此很多设计和仔细编码往往难以实现.不幸的是,业界倾向于"快速生成代码,以便我们可以将其丢弃并开始使用下一个产品",尽管它正在慢慢地实现可重用库的想法(以及更有条理的专业实践,如单元测试等).
一个典型的场景是要求为老板编写一个快速而又脏的演示,然后当你认为你能够把它扔掉并正确地写出来时,老板说"我们没有时间重写已经有效的东西,从下一个层面开始".因此,如果你被要求快速行动,尽量不要烧太多桥梁,否则你会后悔的.
5)您可以使用C,但这取决于平台和开发公司.现在,大多数开发都是C++,即使代码的一部分在语法和使用的功能方面实际上"仅仅是C".