一、为什么自己写一个游戏
如果你对玩游戏有足够的热情,这个问题可以不用回答了。我知道你认为游戏是一项融合了美术、音乐和故事的艺术。在你鉴赏他人艺术的同时,你自己也会有创造艺术的冲动。
我们玩了许多游戏,或者有这样那样的遗憾,或者某个游戏激发了我们的灵感。这时我们都有一种冲动,想做一款自己的游戏。就算它不能成为很受欢迎的游戏,也会让自己很开心,很有成就感。
做游戏的过程中充满乐趣。即使你做的游戏不入流,你也会得到比玩一流游戏还大的乐趣。一边娱乐,一边还能提高自己的编程技术,何乐而不为呢。
还有,一直以来,我们都是玩Windows下的游戏。现在越来越多的人投入了Mac OS和Linux的怀抱,可是Linux和Mac上的中文RPG并不多见。有时不禁怀念起Windows下角色扮演游戏的味道。为了玩游戏,要重返糟糕的Windows吗?绝不。作为一个程序设计师,我们可以自己动手,丰衣足食。
二、要一个什么样的游戏
我这里将边写教程边做一个角色扮演游戏。初步的设想是这样,这是一个第一视角的武侠游戏,每一个关卡会有数量不等的敌人向我们冲来。他们会攻击我们,我们也要攻击他们。或者我们利用手头的道具和技能干翻他们;或者被他们干掉,Game Over。
尽管我做的是一个RPG,你也可以使用从中学到的技术,做其他类型的游戏:比如休闲游戏,如Zuma,连连看等;射击游戏,如飞机大战等。
三、如何去做
我们首要的目标是做跨平台的游戏,可以在Windows下玩,更可以在Linux和Mac OS上玩。因此我们需要跨平台的多媒体库。SDL(Simple DirectMedia Layer) 正是我们需要的,它开源高效、使用简单。
我们可以通过很多编程语言使用SDL, 如c, c++, java, python, ruby等。
在本书中,我将在Linux上使用C语言和SDL库开发一个简单的2D角色扮演游戏。Mac OS的环境和Linux相似。
至于Windows上,你可以用VC++开发C程序,也可以使用编辑器 + MinGW进行开发。我建议后者,因为我们将使用Makefile管理项目,如果你使用MinGW,我在Linux下写的代码可以直接拿到Windows上make,一点也不用修改。
四、说明
这一系列教程可能会在修改过程中不断地更新。希望朋友们多多纠错、多提宝贵意见。