十多年前,我通过在Internet上可以找到的有限的教程资源,自学了游戏编程和游戏开发的基础知识。从那时起,游戏开发的格局发生了巨大变化,任何人都可以在几周的Google搜索后开始创建自己的游戏。但是,假设您想开始开发自己的游戏,但不知道从哪里开始。您去哪里了?
在编程领域,他们说一旦您学习一种编码语言,您就会几乎都知道它们。比这更细微的差别,但是您的想法比您想象的要准确。编程的困难(尤其是在游戏方面)不是实际的编码,而是学习游戏如何运作以及如何使用这些语言来组织您的思想并将其转化为现实的范例。
因此,在寻找优秀的游戏开发教程系列时,您需要一个可以教给您良好编码的实践和心态的方法,因为您可以将这些实践以任何语言或平台转换,无论是C ++,C#,Python,Java还是您打算使用的任何其他语言。这是我在自学之旅中找到的一些最有用的教程。
Lazy Foo的教程
Lazy Foo已经存在很多年了,这是一个我最初研究游戏编程时使用的主要资源。他在SDL和OpenGL这两个跨平台的图形库中分别编写了大量的教程,可以分别处理2D和3D图形。他的教程写得很好,简单明了,并且会让您熟悉使用C ++语言作为编码介质的两个库。
我建议从他的一般文章开始,然后再阅读SDL教程,然后OpenGL教程。严格来说,2D图形需要较少的数学知识,因此比3D易于掌握,因此,我建议从那里开始。但是,如果您有信心,可以尝试直接使用OpenGL。
Aaron Cox的教程
Aaron Cox站点上的教程是我学习如何使用时的另一个核心资源。节目视频游戏。他的教程专注于使用SDL图形库进行2D游戏编程,因此您可以将这些教程与上述Lazy Foo结合使用。 Aaron提供了他自己的SDL概述,并且提供了很好的基础,但没有Lazy Foo的深入。
我推荐Aaron的网站的原因是因为他在示例街机上有一个完整的部分他使用SDL创建的游戏。他具有完整的教程,可用于创建Tetris克隆,Pong克隆和Breakout克隆。作为一个新兴的游戏程序员,这些对我来说至关重要,因为他们教会了我所有有关游戏逻辑,绘制调用,实体类,代码组织等方面的知识。您需要输入“游戏程序员"的思维方式和范例,这些指南将帮助您到达那里。
游戏开发@ Tuts +
Tuts +通常只是一个很好的资源它涉及到学习新的计算机技能,而游戏开发是他们所教的内容之一。 Tuts +的游戏开发部分有一篇很棒的“从这里开始"文章,向您介绍了该网站,在该文章中可以找到的各种文章以及许多有用的链接供您在了解有关游戏开发的更多信息时查阅。当您准备就绪时,您还应该在网络上查看其精彩的游戏开发教程摘要。
Tuts +包含数百篇游戏开发文章,涉及从开始新项目到规划和开发的主题。组织,代码的实际实现,游戏的平衡,在完成下一个项目之前实际完成游戏。该网站几乎只是一个博客设置,因此很难浏览,但是文章非常详细且易于阅读。我会全力推荐他们。
GameDev.Net
最后,我们来到GameDev,这是一个来自世界各地的游戏开发者的在线社区。如果不提及GameDev,谈论游戏开发网站将是一个严重的错误,GameDev对于许多新手和高级游戏程序员而言都是一个形成性和中心性的网站。它已经存在了将近15年,并且没有迹象表明该网站很快就会消失。
在GameDev中,您会发现很多针对初学者的文章,但是最好的受益方法是访问他们的论坛。有数十个不同的部分,涵盖了“从头开始"开发,初学者问题,寻找帮助者和其他编码人员,游戏开发的业务和法律方面,以及甚至各种语言和引擎磨练您的技能的研讨会的主题。您将是本站点的傻瓜。这是令人难以置信的资源。
游戏开发引擎
您可以在上面的网站中找到大多数“游戏编程"教程,这些内容深入探讨了引擎开发的本质。他们教您如何在屏幕上绘制图形,如何从键盘和鼠标检索输入,如何处理网络数据包等。如果您打算以引擎开发人员的身份进入游戏行业,那么该知识将非常有用,但是如果所有您要做的就是创建一个游戏,您真的不需要知道细节。您需要的是已经由其他人构建的引擎。
这就是为什么您会在游戏开发世界中听到很多有关“游戏引擎"的话题,例如虚幻引擎,CryENGINE,Havok引擎,Unity等。这些引擎为您处理幕后细节,使您可以专注于实际的游戏玩法和内容。我已经介绍了五个最好的免费游戏开发引擎,您应该认真研究一下,特别是如果您是整个游戏编程的新手。
结论
游戏开发是一项艰巨的任务,但是有了这些网站和资源,您将可以尽快启动并运行。准备花很多时间进入学习曲线,因为这并非易事-并非遥不可及-但只要有足够的奉献精神和毅力,您就会到达那里。如果您还年轻,或者您认识一个喜欢计算机的年轻人,那么游戏开发可以是一种让孩子们兴奋起来并为整体编程做好准备的好方法,所以请坚持下去!
了解任何内容其他适合初学者游戏程序员的好资源?您以前使用过这些资源吗?在评论中与我们分享您的想法和经验!