我经常被问及:一个具有很少甚至没有编程经验的人要如何开始游戏制作。直到目前为止,我总是尽我所能一个一个解答。然而,问题的数量已经增长到了一个难以处理的水平,于是,我便决定把所有的建议汇总在一篇文章里作为参考提供给人们。
这篇文章主要面向那些想开发自己的游戏,但仅有一点点或没有半点编程经验的人们。实际上,我也假定读者根本没有任何的编程知识。我将把重点放在游戏开发的编程和设计方面,而不是艺术方面。我也不准备对游戏行业进行论述(因为这个话题的资料太多了),但是,我会带你浏览一下在制作游戏之前需要做的一些事情。该说明的一点是,不要将我这里所介绍的方法当作唯一的或最好的学习游戏制作的路径,但对于我和其他人来说,它是有效的。
1、选择一门语言
第一件要做的事就是选择一门语言。你有一大堆的选择,包括 Basic、Pascal、C、C++、Java 等等,同样也有一大堆关于哪门语言最适合初学者的争论。欲了解各种语言的优缺点,请参阅 John Hattan 的绝妙文章《我该使用什么语言》。
我这里建议使用 C 和 C++。有些人认为这些语言对于初学者来说太难了,但从我个人角度来说我是反对这个观点的,因为我自己就是从 C++ 起步的。另外,C/C++ 是目前最广泛应用的语言,因此,你能找到大量的资料和帮助。至于先学 C 还是先学 C++ 的问题不大,因为一旦你学习了其中一种,再学习另外一种就没太大问题了。不过,如果你一开始就选择 C++,请确信在学习面向对象编程之前,你已经了解并掌握了面向过程编程。(比如说,如果你在不使用类的前提下仍无法编好程序,先不要急于学习类)
如果你发现学习 C/C++ 是一件很困难的事,不要紧,回过头选一门比较简单的语言来学,比如 Basic 或 Pascal。不过我认为,如果你坚持下去,并找一些好的资料,学习 C/C++ 的问题不大。
你的下一个问题是:我如何学习 C/C++?我很高兴你问这个问题。最好的方法是去听课。有没有老师帮助解答问题,对于你的发展影响巨大,而且编程作业将确保你确实掌握了所学的东西。
如果听课不在你的考虑范围内,下一个最好的办法就是找一些好书。不要把注意力放在那些“大全”书上,因为你终究会买几本。我建议你去一个本地书店,花点时间浏览一下介绍 C 和 C++ 的书,直到找到你能理解并能从中学到东西的一本。同时,你可能还想买几本进阶书或是一本参考书,但一旦你具有了这门语言的部分知识,你会对你需要什么有更好主意。可以在网站BOOKS频道中找到一些建议。
在此,我简要的说明一下我见过的很多入门程序员,尤其是年轻人关心的事情:没有钱买书或其他东西。首先,有许多资源是免费的,包括图书馆和 Macmillan Computer Publishing (他们的网站www.mcp.com 上有数百本编程的书)。其次,如果你想成为一名优秀的程序员,你不得不考虑在这上面的投资。利用各种手段(合法的 ;<)去弄点钞票来。
网络上有大量的 C 和 C++ 的学习教程,但是我认为这些教程作为你学习书本的参考要比作为单独的材料好得多。
2、选择合适的编译器
你写的程序,或源码是以文本文件存储的,你甚至可以用记事本来写 C/C++ 程序。但是,必须有样东西能把这些源码转化成一个可执行文件。对于 C 和 C++ 来说,这样东西就是一个编译器。
现在有大量的编译器存在,其中有许多是免费的。选择一个合适的编译器是非常重要的,而免费编译器有个好处就是你能一个一个的试,看哪个你最喜欢。但是,免费编译器经常是比商业编译器功能少或缺少良好的技术支持。幸运的是,大多数商业编译器都有与完整版功能相同,但价格便宜许多的介绍版或学习版,唯一的限制是,你不能发布使用该编译器开发的程序(这点你肯定维持不久)。
基本上,你选择什么样的编译器取决于你能花多少钱、你将在什么操作系统和平台上开发程序。如果你准备为 Windows 作贡献,我强烈建议使用微软的 Visual C++。它具有一个功能强大的开发环境,能让你倍感轻松,再也没有其他编译器能比它更适合开发 Windows 软件了。如果你是名学生,你可以以极低的价格获得一份拷贝。如果你准备在 DOS 下开发程序,你最好使用免费的 DJGPP。
3、选择一个目标平台
虽然你可能最终会为各种平台开发程序,你还是应该选择其中之一进行学习。当你学习语言的时候,在没进入图象编程之前,你大概想使用一个非 GUI 的操作系统,比如 DOS 或 UNIX。这有助于你将注意力集中在语言学习上,从而避开一些高层的问题,如 Windows 编程。
不过,一旦你准备开始制作游戏,你就该考虑转换你的
目标平台了。一下是几个常用的平台:
Windows:如果你想在游戏行业里专职工作,或者你想让一大群人玩你的游戏,那么 Windows 是你的首选。你的目标客户大多数使用 Windows,且这个情况不会很快改变。目前大量的 Windows 游戏使用一种你大概听说过的名为 DirectX 的技术。DirectX 是一个允许你直接操作硬件的程序库,你可以依靠它写出高性能的游戏来。
DOS:DOS 曾经是游戏的主要平台,但这已是昨日黄花。虽然有些爱好者仍然在为 DOS 开发游戏,但是已经没有商业游戏是为 DOS 开发的了,而且, DOS 正由于微软停止对它的支持而走向衰败。如果你刚开始做游戏,别选择 DOS,如果你已经这样做了,不要再停留了。注意:因为有很多游戏编程的书是为 DOS 写的,学习这些书时可能会认为在 DOS 里开发游戏有理有据。但是,随着 Windows 游戏编程书籍数量的增长,这种争论变得越来越少,也越来越没有意义。
Linux:Linux 是 UNIX 的一个变种,由于它具有稳定、便宜、反微软情节等多个因素,它正变得越来越受欢迎。虽然目前的 Linux 用户还比较少,但是随着它的热爱者和市场的潜在增长,它也成为了作为目标平台的可行选择。
Macintosh:苹果机拥有一群数量不多但非常忠诚的追随者,几乎每个我见过的苹果机爱好者都有一个强烈渴望更多苹果机游戏的愿望。我没有看过多少在苹果机上开发游戏的资料,但我确信确实有,因此,这也是个合理的选择。
家庭游戏机:游戏机(如 Playstation、N64、Dreamcast 等等)游戏市场非常巨大,前景可观。然而,由于种种原因,开发非商业性的游戏机游戏在目前来说是不太可能的。你为游戏机开发的游戏大多都会被商业游戏公司买走。
4、充足电
是讨论真正做游戏的时候了。虽然我所说的大部分内容适用于其他语言,为简单起见,我将假定你选择了 C/C++ 来进行 Windows 编程。
首先,在你考虑如何开始做游戏之前,你应该能很好的掌握 C 和 C++。你应该了解并精通指针、阵列、结构、函数,以及类等。做到了这一点,你就可以开始制作游戏了。
本文无法教授你关于制作游戏所该了解的一切。幸运的是,这也不是必要的。有很多关于这方面的书,网上也有数以百计的教程。GameDev.net 应该会有目前你所需要的一切。下面是我对你起步的一些建议:
学习一本或几本书。对于 Windows 游戏的初学程序员,《Tricks of the Windows Game Programming Gurus 》是一本极好的Windows编程入门教程。在这个站点里拥有许多本站 Books section 里所列出的好书。阅读这些书籍,运行所有的例程,反复研读你不理解的章节。
使用网上教程补充书本的不足。网上教程除了阐明一些你阅读的东西外,通常也会包含一些书本上没有涉及的主题。
找专家进行咨询。如果你无法从书上或教程中找到答案,到本站的留言版或聊天室来,这里有许多乐于提供帮助的人。
不要把上面几点当成是个有序的过程,而应当看作是一个循环往复的并行过程。
仅仅是学习、思考是远远不够的,你应当把你所学的东西付诸实践。从一个简单的游戏开始,逐步发展。你可以阅读一下 Geoff Howland 的文章《How do I Make Games? A Path to Game Development》。
首先,为自己的工作制定一个计划。不要急于加入一个团队,因为那只会减缓你的学习进程。当你囊中拥有数个游戏时,你将为一个团队作出更大贡献。
关于书本,有件事我要提醒一下:你需要阅读除了游戏编程外的其他书籍。为了制作出你在商店货价里看到的各种游戏,你将不得不钻研那些比大多数游戏编程书籍所授内容更高深的话题。有些可能你能从教程中找到,但是,你还是有必要买几本关于图形、人工智能、网络、物理等等方面的书。这是获得计算机科学学位的必经之路,因为你将被要求学习一些你认为与游戏编程无关的课程,而实际上它们是相关的。
5、总结
这里有一些能产生巨大差别的技巧:
要只知道聚集知识,应用是关键。除非你使用了,否则你无法确实知道和理解这些东西。做一些小的测试程序来应用你所学的东西,并切实完成书上每个章节后的习题。
玩大量的游戏。你会因此找到灵感,从而帮助你制作更优秀的游戏。当然,这也是一种受欢迎的解除编程压力的调剂方式。
帮助别人。在你帮助别人的过程中,你会学到更多东西。
完成你的作品。不要陷入这样一种思想的圈套中:“我知道我可以完成这个游戏,但是我有个更好的主意,我要换做这个好的项目。”如果你能坚持有始有终,你会学到更多的东西,并且你有作品证明你不仅仅是空谈。在你具有丰富的经验之前,做得简单一点,不要尝试制作一个又大又复杂的游戏。
出发吧!你该动手制作 Quake 4 了。当然,可能不那么容易,但至少你可以从这个方向出发,并且知道去哪里查找更多的信息。经过多年的努力工作,你会成功的! (作者:ant3000)
分享到:
相关推荐
本书适合具备一定编程基础的人员阅读,特别是对那些想要快速入门Unity3D游戏开发的人来说是一本必备的指南。通过本书的阅读和实践,读者不仅可以学会Unity的基本使用,还能通过实例巩固知识点,提高开发能力。 ...
总的来说,《C语言游戏编程从入门到精通》是一本详尽且实用的C语言游戏开发指南,不仅适合于初学者入门,也为中高级用户提供了深入学习的机会,是专业游戏开发程序员和业余爱好者的优秀参考资料。
本内容旨在为游戏编程新手提供一个入门级的指南,从而帮助他们开始使用C++语言探索游戏开发的世界。 在C++游戏编程中,首先需要了解的是C++的基础知识,包括基本语法、数据类型、运算符、控制结构等。掌握这些基础...
总之,《3D游戏编程入门经典.pdf》是一本全面的入门教程,旨在引导读者跨越3D游戏开发的门槛,通过学习和实践,逐步成长为一名合格的游戏开发者。这本书不仅传授技术,还激发了读者对游戏开发的热爱,鼓励他们在这一...
Python编程入门指南是一份专为初学者设计的教育资源,旨在帮助新接触编程的人员逐步掌握Python这门强大而易学的编程语言。Python作为一种高级通用型编程语言,因其简洁明了的语法和广泛的应用领域而备受青睐。在本...
C#还广泛应用于Windows桌面应用、Web应用、移动应用(如 Xamarin)、游戏开发(Unity)以及云计算平台(Azure)等。学习C#不仅能够提升个人的编程技能,还能为从事各种类型的软件开发打开大门。 通过阅读《CSharp...
**简介**:本书是Andr LaMothe撰写的经典之作,作为Windows游戏编程的入门书籍,它提供了全面的游戏开发知识,涵盖了Win32和DirectX等关键技术。本书共807页,内容丰富且实用性强,适合初学者和有一定基础的读者学习...
- **应用场景**:广泛应用于游戏开发(如《魔兽世界》)、嵌入式系统、快速原型开发等领域。 - **特性亮点**: - **简单易学**:语法简洁明了,易于上手。 - **高效执行**:通过JIT技术提升性能。 - **可嵌入性强...
### WPF入门指南教程知识点详解 #### 一、WPF简介 - **WPF**(Windows Presentation Foundation)是由微软推出的用户界面框架,该框架专为Windows Vista及其后续版本设计,并作为.NET Framework 3.0的一个核心组成...
### 后端开发学习指南:从入门到精通的路径规划 #### 一、基础编程语言 在后端开发中,选择合适的编程语言是至关重要的第一步。以下几种编程语言被广泛应用于后端开发: 1. **Java**:Java 是一种跨平台的面向...
1.4 支持多个开发人员 327 1.5 系统数据结构 328 1.5.1 任务列表 328 1.5.2 内存映射 328 1.5.3 索引节点 328 1.5.4 数据连接 329 第2章 子系统的系统结构 330 2.1 进程调度程序系统结构 330 2.1.1 目标 330 2.1.2 ...
《C#速成指南--从入门到进阶,实战WPF与Unity3D开发》完整讲解了C#语言的核心知识和高阶编程技巧,并结合WPF客户管理系统和Unity3D切水果游戏两大实战项目,帮你实现技术的精通,完成从Zero到Hero的蜕变!...