我有机会参加索尼授权的培训课程,了解PS3的单元架构编程。
然而,我只对C ++有一个基本知识,并且想知道PS3对于像我这样的初学者有抱负的游戏开发是否有点过分。
还有什么是在大约2个月的时间内让我达到C ++图形编程水平的最佳资源?
答案 0 :(得分:10)
我敢打赌它很有趣,无论你在课程中学到什么,都会帮助你成为更好的程序员。
答案 1 :(得分:10)
最后一个关于我日常工作的问题.... :)
您对PS3的了解很多将适用于其他架构,因为并行编程开始看起来像未来。 PS3上使用的很多并行技术都可以直接应用在Xbox 360上。我怀疑未来很多游戏机都会朝着同一个方向发展,我们都需要开始考虑并行化的重要性。目前。
那就是说,如果你只有C ++的基本知识,很多材料可能就在你头上。这取决于你想要从会议中得到什么。您是在寻找PS3的介绍,还是希望能够在会议后的第二天开始在PS3 Linux上制作游戏?
假设你能负担得起,这些信息将会很有趣并且可能会有所帮助。除非你觉得成本超过了收益,否则我不会错过这样的机会。 (我假设有成本,我真的不知道。)
游戏编程资源遍布网络。如果你想用C ++做一个速成课程,我会选择Lippman等人的C ++ Primer。如果你想要一个图形速成课程,那么Real Time Rendering就是最好的起点,还有一本关于数学的好书,比如Eric Lengyel的3D游戏编程数学。深入学习一些OpenGL或D3D教程;即使PS3上没有常用,原则也与任何API相同。
答案 2 :(得分:9)
问题不在于PS3是否过度杀伤,而是Cell处理器因其潜力而难以编程。高度并行化的架构可能非常强大,但要实际获得这种性能并不容易。
答案 3 :(得分:2)
我认为这是一个很好的架构,为未来做好准备(多核编程)。然而,对于大多数实际目的而言,您实际上更好地学习基于Windows的游戏开发,因为使用控制台的启动成本要高得多。例如,开始编写DirectX会更容易。
所以是的,在某些方面,你正在寻找麻烦。如果您决定使用PS3,请务必查看MIT PS3课程。
答案 4 :(得分:1)
不,根本不会,如果你使用.NET作为主要语言,那就更难了。如果你想使用.NET,我会为XBOX 360推荐C#/ XNA。
修改: 这是一个很棒的链接,可以帮助您入门:http://www.cag.csail.mit.edu/ps3/
答案 5 :(得分:1)
我认为如果你有机会参加和什么都不做,你一定要去做。从比你了解更多的人那里学到东西的回报是很多人没有的礼物。事实上,它来自一个有执照的培训师,这使得它更有价值。
答案 6 :(得分:1)
他在学习PS3架构,库,特殊技巧等时特别谈论学习C ++。我不建议这样做。你需要在你的C ++功夫方面做得很好才能在PS3上编写代码,如果你出现并且甚至不懂语言,你就会自欺欺人。
最糟糕的是,你会浪费专业开发人员的时间。他们实际上可以使用这些信息,但你会花时间处理你应该知道的新手问题。
我不是要吝啬;我不会去,因为我不太了解C ++。试着去考虑那些付钱去那里的人。
答案 7 :(得分:1)
在过去的几个月里,我一直在教自己Cell处理器编程(C语言)。它绝对不是最好的开始,因为成功编程Cell需要掌握很多技能:C / C ++,pthreads,libspe,单元上的各种类型的通信(DMA,邮箱,信号,中断,原子I / O)。为了使这更难,Cell的文档可能含糊不清,难以找到和错误。如果您使用更常见的平台(XNA,pyGame,SDL),将会有更大的用户社区。这并不是说Cell没有任何用户社区,只是它更小。即使存在可能发现多处理器编程的其他环境,由于其独特的架构,将这些环境的技术转换为单元可能很困难。此外,使用带有Linux的标准PS3将不允许您访问图形硬件。
但这并不全是坏事。学习PS3 / Cell将教会你很多关于机器附近编程的知识。你真的没有任何选择,因为程序员没有很多抽象可用。 Cell上的每个SPU都有256KB的本地内存,如果你需要更多,那么你需要找出某种方案来发出正确的DMA请求,以便在正确的时间将正确的值带入内存中(希望如此)在DMA请求正在进行中时,让SPU忙于做某事。学习细胞
所以,也许不是最好的学习平台,但考虑到你有机会从索尼上课,这听起来像个好机会。
在任何情况下,如果您感兴趣,book from Scarpino是一个很好的参考,并且有一些关于使用OGRE引擎在单元格上进行游戏编程的章节,这对您来说可能也很有趣。
答案 8 :(得分:0)
虽然我没有在360或PS3上开发应用程序的经验,但我已经对这两个平台的各种优点进行了大量研究。我已经使用了很长时间的C ++,虽然我用它构建了几个MFC和BeOS应用程序,但我用它构建了许多UNIX服务器应用程序,但控制台游戏环境仍然存在很大差异。
正如其他人在这里所说的那样,PS3的Cell芯片确实是一种驯服的野兽,并且需要Carmack级别的才能才能正常使用。话虽如此,如果它是免费的,参加课程没有任何问题,特别是如果你遇到以前开发过游戏的人并且可以给你一些建议。
如果你想为控制台开发游戏,对于只具有C ++基础知识的人来说,最好的选择是使用基于C#的XNA套件来为Xbox 360.如果你熟悉C ++的工作方式, C#并不难以接受。实际上,我认为这是一个小得多的学习曲线,而不是跳到多核,多线程基于单元的编程。如果您以前从未开发过内核级应用程序,那么在准备好之前,应该避开这种类型的应用程序。两个月还不够。
有许多观点使XNA平台对有抱负的控制台开发人员非常有吸引力,其中最重要的是C#与C ++的相对安全性,以及XNA游戏可以通过微软市场销售的事实。
我不知道有很多PS3游戏都是单手开发的,但是有一些像360这样的例子就像Braid一样只是单独的努力。 XNA示例也非常有趣且具有教育意义。