相信有很多和我一样摸索着编游戏的自学者。自学是辛苦的,一没明确的引导,二没正确的工具。我就谈一下自己的经验,也许可以让你少走一点弯路。
首先学会一门语言。你可以从初级的C跳到C++;有些人喜欢MFC,用它也可以编游戏,但最好还是抛掉部分MFC的东西,使用DirectX吧。因为我主要学的C++,我就只谈C++了。其实还有相当好的语言如:DELPHI、JAVA等,有精力还是去学学吧!其实语言并不是最重要,关键是面向该语言的开发工具、引擎、源码的数量会对将来的开发进程大有帮助。对于已经会MFC的人,“传奇的故事学VC编游戏”似乎是福音,因为它最后还是过渡到DirectX。
其次掌握一种工具。比如引擎、脚本等。引擎就是发动机的内核啦,你有什么好想法,就靠它来驱动实现。“工欲善其事,必先利其器”,与其在一个引擎上投入过多精力,不如比较选优,多搜索新的引擎。
引擎有的是面向游戏框架的,如POPCAP FRAMEWORK搭好了框架,剩下的由你来填充。有的是面向底层DirectX的封装,比如HGE、SDL、Allego、Y2GE等。有的本身就已经是个完整的游戏了,比如金点的圣II源代码游戏引擎,会对你很有帮助。实际上,你完全可以先抛掉其它的,从圣剑英雄传2开始,体会其开发思路,然后再利用一些引擎改善它。如果是想编即时战略游戏,可以看看Pptactical、stratagus等。
人工智能是你迟早要去掌握的一门技术。会使你的游戏倍放光彩。比如A*寻路、攻击目标的选择、经济学、有限状态机、骨骼动画等。工具有OpenSteer、pathlib、micropather等。物理引擎也是,一旦拥有物理引擎你就不愿意丢掉它,比如Physics2D、Polycolly、flatland、Bullet等。
如果学脚本,建议用LUA吧,WOW就是用它。同时提一下tolua++工具。当然你也可以使用自己规定的脚本引擎。另外脚本还有一个用途,就是把代码粘起来,Python做的就比较好。脚步语言可以替代ini配置文件,同样的可以取代文本配置的XML技术不错,现在很流行,WOW、Novashell、POPCAP FRAMEWORK等都使用了。用它来管理游戏资源及资源调度很方便。
先在已有的简单代码上修改出自己的一个简单成形游戏是比较好的开端,至少可以鼓舞你,不要好高骛远,想一上来就怎么怎么的。借鉴现有的开源引擎做自己的引擎也是好主意,这样可以充分享受DIY的乐趣!
如果你还是不清楚要做个什么样的游戏,可以参考现有的很多游戏,研究它们的实现。比如,你可以先从地图编辑器开始研究一个游戏。多去gameres看看,去开源中国找找。如果英文好,也可以去sourceforge搜索,去googlecode逛逛。
除了常见的编程语言,目前2D游戏开发有用flash的,它的一个强大脚本是as,用flex编程。flash的表现力比较强。如果没有学习过任何编程语言,也可以去学习下这个东西。相似的一个工具是Director,用的也是自创的自然语言。
最后,无论何时,基础都是最重要的。如果基础不太好,面向对象、强大的库,如STL、Boost会使你的工作事倍功半。
先说这些吧,希望对你有帮助!