游戏开发,初学者的语言?

Jon*_*sso 12 c c++ python programming-languages

我一直在搜索网站,寻找最适合初学者游戏开发的语言.许多人说基于C的语言,其他人则建议Python.

通常我会选择一个,但这是我的困境.我不确定这是否正确,但我从这里的程序员那里读到C渲染速度要快得多,而Python则不然.然后人们发布支持声明Python可以在3d渲染方面表现出色.

我也不知道.

我目前的目标是制作一款类似于暴雪暗黑破坏神II的游戏.

我有PHP,JavaScript框架和纯SQL的经验.此外,我在Mac环境中工作,并且可以访问Windows XP.

尽管如此,我应该从哪里开始,为什么?

干杯

编辑新问题

好吧,这对我来说都是压倒性的.如果我忽略了任何事情,请原谅我.我一直在查看Unity 3d和XNA,但这些主要是与.NET Framework一起使用的游戏引擎,主要是C#?

如果我想完全在OS X上进行所有开发,但是为多个平台编译,这是最佳选择吗?

Sin*_*ion 17

选择一种语言是因为它最终对于你尚未编写的程序的执行是必要的,这是一个非常好的过早优化的例子.尤其如此,因为您将编写一个程序作为学习练习.

学习C++,学习3D渲染API,以及学习游戏编程技术是三个艰难的目标.一次做一个这可能是一个非常好的主意,这样你就不会在同一时间与这三个人一起努力.

如果您已经决定使用C++和特定的图形API(OpenGL,DirectX,等等......),那么我建议在三个单独的项目中按顺序学习它们,首先是一个简单的控制台C++应用程序,或者一个系列比如项目Euler上的练习,然后通过一些图形化的可视化工具熟悉API,一旦你合理地征服了这两个人,就可以继续构建游戏.

如果你没有真正与任何平台或工具链结合,你应该从学习游戏编程技术开始.不幸的是,PHP和JavaScript都没有真正适应这一点,但正如其他人所建议的那样,使用PyGame库的python是一个非常容易接受的东西.

一旦你对游戏编程如何用简单的语言有所了解,你就可以开始学习3d api,建立一个适合你目标的游戏.在您开始遇到性能问题之前可能不会太久.只有这样你才能考虑将关键代码路径重写为另一种语言.

  • +1:"你尚未编写的程序的表现". (5认同)
  • 关于Python:在C或C++库上挂钩python相对容易,可以将繁重的任务卸载到更快的语言中,并且仍然可以保持脚本的简易性.我想这就是PyGame的作用? (2认同)

Rob*_*ner 15

我会尝试XNA游戏工作室,看看你是否喜欢它.到目前为止我已经使用它了一点点.它与.NET相关联,这是一个非常可靠的框架,可以在任何简历上开始使用.

我认为从一个框架开始帮助您创建这些游戏是一个明智的想法.否则,制作任何有意义的游戏的任务对于任何一个人来说都太大了.此外,您将重新发明大量功能.我建议这样做的唯一方法是,如果你想要一个学术练习,只是想了解这些引擎如何从头开始工作.

建立游戏既困难又有趣.游戏创作提供了一些有趣的挑战,这是一种变得更聪明并构建您可以享受的东西的好方法.从小处开始,坚持下去,不要放弃!谁知道,也许在一年左右的时间里我会检查你的游戏.

这是一个帮助您入门的链接.

  • OP没有指定熟悉任何.NET语言,所以它是六个中的一个,另外六个是. (2认同)
  • @orvado作为暗黑破坏神II是一个相当简单的等距2D游戏我认为Python/pygame实际上可能是一个很好的选择.我不会推荐它用于3D游戏. (2认同)

li.*_*idm 5

...我从这里的程序员那里读到C渲染速度要快得多,而Python则不然.然后人们发布支持声明Python可以在3d渲染方面表现出色.

这真的取决于.C总体上要快得多,但是当涉及到游戏时,你的瓶颈通常是图形渲染 - 然后,优化你的OpenGL调用,例如,可以让你用Python编写游戏并且仍然可以获得不错的性能.但是,Python本身并不是过于复杂/ 3D游戏的好选择.你会想要使用像Panda3D这样的引擎(这里已经提到了).为什么?它提供了用C++编写的渲染代码(在本例中),以提高性能,允许您在Py​​thon中编写更高级别的逻辑,但如果速度绝对必要,仍然使用C++.如果你还没有学过一门语言,那么Python就不会那么令人生畏了 - 但从长远来看,C会提供更好的性能.请注意,过早优化(即在编写大量内容之前担心性能)并不是一个好主意.

另外,请注意,无论哪种方式,如果您真的想要性能(或使用游戏引擎),您可能会学习原始OpenGL .

...图形类似于暴雪的暗黑破坏神II.

因为这是一款较旧的游戏(如上所述),性能和速度可能不是绝对必要的.Python以快速原型设计和更快的开发而闻名.

... Unity 3d和XNA

据我所知,XNA通常只支持Windows,但如果你是游戏开发的新手,那就太棒了.Unity3D支持Windows和Mac,即使它使用.NET语言.它还支持一种名为Boo的Python方言,因此这可能很有用.

对于Python引擎和库,您将拥有PyGame和Pyglet for 2D.Pygame是SDL的包装器,它似乎更受欢迎.Pyglet是Python和OpenGL的窗口框架,但它也提供动画,事件循环,媒体播放等.但是,这意味着你必须学习OpenGL,而使用PyGame,可能没有必要.XNA让您不必学习DirectX,Unity为您提供了引擎.Panda3D已被提及用于3D; Pyglet + OpenGL也可以处理3D.

Unity看起来最好; 然而,它可能是压倒性的.Python是可以的,但并不总是提供.