我经常被人问及一个只有一点编程经验或一点也没有的人如何在这条路上起步呢. 在这以前,我会尽我所能地对提问者进行一对一的解答和帮助. 然而现在看来已不可能了,因为当问题如潮涌般地涌向我时,我几乎都驾驭不住. 因此, 我想是时候将我所有的意见和建议编辑成册,为大家提供一个参考.
本文旨在帮助那些想制作自己的游戏,却苦于无门的人们. 事实上,我已经将我的读者群划分成编程经验值为0的一类了. 此文主要讲述游戏编程及游戏设计方面的问题, 不关游戏的艺术效果制作的事. 关于游戏市场运作方面的东东,此文我不会提及,因为市面上关于此类的信息资源已如洪水猛兽般泛滥成灾了. 但对于在制作游戏过程中你所遇到的方方面面的问题,我都会做出简单概述. 最后,请不要将我为你铺的这条通往制作游戏之路看成是唯一的,甚至是最好的. 尽管它为我和其他入门者曾做出"不朽"的贡献.
选择一个编程语言
开始学习制作游戏的时候,你所要做的第一件事就是选择一个编程语言, 其选择多多,包括Basic, Pascal, C, C++, Java,等等. 当然,关于哪种语言对初学者来说是最合适的问题,其争论也甚为激烈. 我建议大家可以看看John Hattan's 的大作"What Language Do I Use?", 其中提及了不少当前甚为流行的编程语言.
我首先推荐c和c++. 有些人会说:"这个语言也对初学者来说太高级了吧", 但你看,我自个就从这种语言的起步的,因此对于这种说法,鄙人不敢苛同.另外, C, C++语言在市面上使用甚广,所以你能比较容易地得到参考资源和各种帮助.当然问题的关键并不在于你是否真的从学习c和c++编程语言开始你的游戏制作涯,事实上,无论你学会了哪种语言, 学习另一种就是小菜一碟了.无论如何,如果你决定从C, C++开始的话,那千万要确定在你开始学习面向对象(object-oriented)的编程方式之前你已经掌握了面向过程(procedural)化的编程.
当你雄心勃勃地开始学习C, C++时,却沮丧地发现它太难了,这时你可以回头看看有什么更为简单易学的语言,例如Basic 或Pascal, 其实这也无伤大雅, 没什么难为情的.但我所强调的一点就是如果你坚持学习C, C++,而且找到了好的学习资源的话,学会C, C++也是水到渠成之事.
你的下一个问题恐怕是:我该怎么学习C, C++呢. 我很乐意回答这个问题. 最好的方式就是加入一个学习班,这样的话你就有老师了,他们会为你排疑解惑,并帮助你提高业务水平, 老师所布置的家庭作业能让你将你学习到的东西应用到实践中.
如果你没有条件上学习班的话,那第二个办法就是买些好书了. 我建议你到当地的书店走走,并大致浏览一下书的内容介绍,选中一本你确定可以看懂的再买, 掌握一定的知识后,你就可以买一本更为高深点的书, 那时你也知道你应该买什么书了.
说到这里,我想稍做停顿,因为我想谈谈关于经济承受力的问题----据我观察,这可是广大入门者,特别是青年游戏开发者都普遍关心的问题, 他们大多数对于购买课本或别的学习资料而感到囊中羞涩. 不过不用担心,首先还是有很多免费资源可以利用嘛,像当地的图书馆呀,还有Macmillan Computer Publishing网站, (网址是: http://www.mcp.com/personal), 在上面你可下载各种各样的编程书籍. 不过,如果确实想成为一个编程高手的吧,那你就得为你的事业做出必要的投资了.因为无论你采用何种途径,都离不开钱呀!(当然,除非你尝试非法途径.)
其实网上也有不少的学习C, C++语言的辅导资料,但依我之见,那些辅导资料最好作书本学习的一个补充, 而不应该成为你唯一的学习资源.
选择一个合适的编辑器
你写的程序,也叫做源代码,可用一个文本文件保留起来,你甚至可以用 “写字板(NOTEPAD)”写C, C++程序.但如果你要把它转化成一个可执行文件那就得费些周折了,这时你可以使用编辑器.
市面上有不少各种各样的编辑器, 其中免费的也为数不菲. 但选择一个你顺心顺手的至关重要. 免费的编辑器有一项好处就是你可以拿来试试,看看哪款最称心如意.但绝大多数免费编辑器不是 “先天条件不足”,就是 "后天发育不良"(意思是缺陷很多), 远不如商业版的.而且所有的商业版的编辑器都在测试阶段,价格不高,而且其功能也与正版差不了多少.
总之,编辑器的选择取决于你的经济承受力,以及你文件运行的操作系统编及开发平台.如果你打算在Windows上开发的话,那我强力推荐Microsoft Visual C++, 它有强大的开发环境,能让你的开发工作如鱼得水般的自如.另外学生朋友可以以一个低廉的价格购买到它.但如果你想用dos开发的话,你最好使用DJGPP,可免费得到.
选择一个合适目标平台
Windows: 如果你想在游戏领域中成为专业人员,或你希望你开发的游戏会有众多的玩家光顾,那你就选择Windows吧,因为绝大多数的玩家都使用这玩意儿,它也不会那么快就被逃汰的.DirectX是种能直接操作硬件的开发库,也就是说有了它,你可以编写高性能的游戏.
Dos: Dos曾是游戏开发平台的主流,但它已是昨日黄花了.尽管不少Dos迷仍然用它进行开发,但如今已没有一款商业游戏是由它做出来的,而它时日将随着微软对它的背弃而越发显得日薄西山,穷途末路.所以如果你才开如开发游戏的话,还是别选Dos为妙,如果你选了的话,那最好适可而止.
Linux: Linux与UNIX有着剪不断,理还乱的渊源,近来越来越得人心,其原因众多,包括它的性能稳定性,价格合理以及反微软阵营等.虽然它的用户群还不是很大,但它的巨大的发展潜力使得它成为目标平台之中的合意之选.
Macintosh:Mac有一群为数不小的忠实追随者,而且几乎每一个我所知道的MAC狂热者都向我倾诉了同一个愿望,就是用MAC开发出更多更好的游戏.尽管我倒没有看到有很多用MAC开发游戏的参考资料,但我坚信将来会有的,因此也许MAC也是一个不错的选择呢.
Consoles: 游戏机的游戏市场巨大,因此它的发展潜力也不容小瞰.然而,在当前这个年代,以非商业模式去开发游戏机游戏是不合情理的,其缘由甚多,一言难尽.但如果你现在在开发游戏机游戏的话,那你最好是在一家商业游戏公司工作。
开发好的游戏:
现在是时候让我们具体讨论一下开发游戏的事了.为方便起见,我假设你用C/C++在WINDOWS上开发,不过你选择其它的开发工具或开发环境的话,我所说的也同样适用.
首先,在你开始考虑开始开发游戏之前,你得是一个玩C/C++的好手,你得懂得指针,数组,结构,最好还知道类,你得熟练地运用它们.如果万事俱备的话,那就开始制作游戏吧.
其次,别指望本文能面面俱到,教会你在开发游戏中所有知识,所幸的是,也没有必要,因为市面关于制作游戏的书可有不少,而网上诸如此类的辅导资料也数不胜数,比如gamedev.net就应有尽有.好了,下面就是我提出的几点建议:
选一本或几本适用的书:对于Windows初学者来说,Tricks of the Windows Game Programming Gurus 网站可是一个很好的资源可供利用.另外,读透一本或几本教科书,并认真实践每个案例.
在线的资料是很好的补充教材:它不但对开发知识分门别类,而且还涵盖了书本上没有的知识.
找高手寻救帮助:如果你在书上或网上找不到你问题的答案,那就在留言簿上留下问题,或在聊天室里问问别人吧,有很多热心肠的人都乐意为您效劳,OGDEV.NET就是一个很好的论坛.但是光"学"不行,还得"学以致用".先从开发简单的游戏开始,然后慢慢深入.一开始的时候,你可选择独立学习,千万别忙着加入游戏制作团队,那样只会使你的学习进程"减速",而不是"加速".但一旦为自己武装了几个像样的小游戏,那就是你在大团队里一展身手了的时候了.