如何获得PS3 / Xbox 360体验而无需使用开发工具包?

我是一个萌芽的游戏程序员,试图进入PS3,Xbox 360的行业编程。我看到的主要问题是需要向潜在的雇主展示我的技能,但没有获得开发工具包的PS3或Xbox 360,做这直接是不可能的。

我的问题是,向控制台开发人员展示我的技能的最佳替代方法是什么?

用于Windows的DirectX中的C ++编程似乎接近于展示Xbox 360编程技能,OpenGL中的C ++编程似乎相当接近于展示PS3编程技巧。 不幸的是,从networking研究来看,似乎Xbox 360和PS3实际上都有自己的专有库,因此似乎并不是100%卓有成效的努力。 这种方法似乎最接近,但也是最耗时的。 另外你实际上并没有在控制台上运行任何东西。

另一方面,在XNA编程有一个好处,就是你的游戏实际上在控制台上,尽管我觉得这被认为不是“真正的交易”,因为它只是DirectX的包装,而不是使用C# C ++。

有没有人有从行业内知识或经验,以知道什么样的游戏演示将是最有用的展示给潜在的雇主? DirectX中的C ++,OpenGL,XNA,虚幻引擎,Unity3d,Flash等等等等? 白天只有这么多小时,我很想知道如何指导我的努力。

我的直觉是,DirectX将是最好的select,因为它似乎更接近于Xbox 360上的使用,但是如果在另一种语言/引擎上有很好的演示效果,那么去显然会更省时间另一条路线。

在此先感谢您的帮助和建议!

取决于你要走下去的道路,坦率地说,大多数人不会期望一个初中的具体平台技能。

如果你的游戏程序员,做了很多游戏。

如果你的技术程序员做了大量的技术演示。 阅读有趣的白皮书,尝试新的东西。 如果你做了一些有趣的事情,让程序员去努力,我们会想和你谈谈。 我们想聊聊这个有趣的事情。 它不需要是一个游戏。

关键事实:您的演示应该运行在广泛的机器上,包括video录像作为备份。 编辑不是生的。

对于一个初级角色,我不会在任何特定的API中寻找很多经验,而是能够很好地把握所涉及的概念。

如果你正在寻找一个graphics相关的职位,那么就certificate你知道3Dmath,以及如何使用一个API(OpenGL或D3D,不关心哪一个是真正的 – 只要确保你优化它)。 坦率地说,所有的API或多或less都归结为制定清单,提交和管理状态 – 并且有很好的方式和坏的方法去做这些事情,所以要明白这一点。

对于更一般的控制台编程,确保您掌握了embedded式平台所需的特定问题。 有限的内存(无交换,碎片不良等),应对崩溃的严格规则,有限的I / O带宽,无法(或有限)的修补/更新能力等等。

这是关于编码的风格,而不是具体的。

如果你正在寻找一个商业的位置,我实际上会避免 XNA,因为在这个领域实际上并不是那么有用。

FWIW,我会考虑在C#/ XNA的Xbox 360编程是一个很好的替代“真正的交易”。

考虑:

  • 在360的XNA上,你必须处理垃圾收集; 具体而言,您需要避免每帧分配太多(如果有的话)。 而在360上的C ++中,你不必处理垃圾收集(除非你正在处理像Lua这样的脚本语言),但是你仍然希望避免每帧分配很多(如果有的话)。
  • 为了充分利用360的处理能力,您需要使您的代码成为multithreading。 这在XNA中与在C ++中是一样的,如果不是更多的话,由于要补充托管代码的性能比C ++稍低。
  • 除了XNA提供的许多帮助函数和类,XNA中的graphicsAPI(基于DirectX)与360上的DirectX / C ++非常相似。

XNA的奇妙之处在于,它使您能够更less地关注在屏幕上获取某些内容的技术问题,而更多地关注制作游戏。 简单地做一个游戏(任何游戏!),这是相对无缺陷的,运行在一个像样的帧率 – 特别是在XNA提供的有限的环境 – 会给你很多的经验,你可以演示一个演示,并希望,一脚在门口。

如果你想PS3的编程技巧,你可以找:

  • PPC体系结构的知识; 这可以通过在PowerPC机器上进行C / C ++开发,无论是旧G5 Mac上的OS X,还是包括PS3在内的任何PowerPC机器上的Linux。
  • AltiVec的知识; 再次,你可以用Mac或Linux在最近的PowerPC机器上得到这个,但是SSE3的知识可能就足够了。
  • SPU的知识:你只能在PS3上用Linux来练习。

这不会教你如何编程PS3video芯片,或者如何使用官方的SDK。 虽然对于video编程来说,通用的OpenGL和DirectX技术可能已经足够,还有一些HLSL。 互联网上还有大量的信息和资料,并不是所有这些都是非法的(例如,索尼的PS3的GCC版本已经被GPL所覆盖)。

如果你想X360编程技巧,你会寻找:

  • PPC体系结构的知识:参见上文

  • AltiVec的知识:见上

  • DirectX的知识:这个你可以在Windows上练习。

  • 关于Xbox 360 SDK的知识:相似之处在于练习XNA会有很大的帮助。

其他重要技能可能包括multithreading编程(一般知识,但也包括primefaces操作,无锁algorithm),可移植性(字节顺序,指针大小,video硬件function等)。

所以是的,正如你所提到的,我相信DirectX将是你可以掌握的最有价值的技能。 但是,请注意,比赛也将采用这种方式,一些额外的可能会有所作为。

资料来源 :我做了以上所有的工作,为自己的行业做了一个非常棒的工作。

这个问题(或者说,你的愿望)需要范围。 现在在行业中几乎没有“游戏程序员”这样的东西。 除非你打算去一个非常小的工作室或渲染程序员,否则DirectX或OpenGl并不重要。 设置控制台与PC不同的是性能有限,内存有限和多核问题。 无论您渴望的行业中的哪一方面的节目,这些都是非常重要的,所以表明您知道如何处理这些意愿,帮助。 了解你的C ++。 知道C ++的陷阱。 知道如何不使用STL。 确保您的代码是独立于帧的,multithreading的,并使用自定义的内存分配器。 当然要强调一下。 我认为真正重要的是你的演示完成了 。 当核心机制起作用时,很多程序员会停下来,而游戏编程中的阻力却是最后的performance – 显示你知道如何去做。

大多数工作室想知道你的技能是什么,AI,游戏,渲染,系统,audio,物理,什么都不是。 试图弄清楚。 作为一个没有行业经验的多面手,将是一个艰难的销售。

祝你好运!

DirectX是一个不错的select。 对于我们来说,这是最简单的演示,因为我们已经很有可能使用Windows的PC。 如果你select使用控制台选项,video是一个很好的演示。 但没有什么比看着你的实时代码运行。

在多台机器上尝试运行你的代码,以确保你允许不同的video卡等。这些日子大多是自动的,但仍然会发生一些差异。

任何3D API的知识是好的。 不管它是DirectX还是OpenGL都不重要。 3D概念在任何地方都是一样的,只是API是不同的。 了解OpenGL不会让你在竞争初级XBOX作业时了解Direct3D的人处于劣势。 你需要certificate的是你编码的能力,你理解C ++(或任何其他语言),标准库,数据结构和algorithm的能力。 关于UDK或Unity等游戏引擎的知识是一种奖励。 这表明了你使用中间件的能力,这在游戏公司是很常见的。 Flash已经用于前端开发,这也是一个不容忽视的技巧。

最重要的是,你只要建立一个演示(用任何语言),把它做好,看看到底。 祝你好运!