游戏开发乱弹——我的“编程史”(上)

来源:互联网 发布:mac 虚拟机 ubuntu 编辑:程序博客网 时间:2024/06/07 20:26
这真的是我突发奇想的结果!刚刚我还在跑步(天津外国语学院的破规定),正想着我那还没有完成的“巨牛无比”,“大架构”的科研立项,然后又想到了最近重新回顾了一遍的《DOOM启示录》,再想到了曾经历过的短暂的游戏开发时光。那真是一段美好的回忆……所以我决定写点什么来纪念那段岁月。虽然也就是两三年前的事,我一想到将来从事的很有可能是与游戏毫无关系的职业,我就想重温那时的美好——我这个人就是爱怀旧。
  言归正传!
  我想,任何一个懂得编程的人都多少会对游戏开发有点兴趣的。会编程的人一般都是游戏玩家,只不过他们更愿意去钻研花哨的游戏背后的技术,并且以利用这些技术编写新的游戏或者修改原有游戏为乐,像约翰.卡马克那样的游戏开发天才也不例外。
  算起来,我应该是在快上初中的时候才“正式”接触到游戏这个带劲的事物。那时候只有FC可以玩,不过仍然玩得非常高兴。说出来不怕别人笑话,虽然到我上高中的时候已经有了PS2等次世代主机,可我仍然在玩FC(只有FC可玩T_T)。虽然也能接触到街机,电脑游戏等,但毕竟家教甚严,没有机会玩个痛快。
  上高一的时候,我认识了死党徐旭,并且发现他同样对电脑感兴趣。我们的情况很相似,都是没有多少机会真正接触电脑,只能玩玩FC。那时候我们经常在一起讨论电脑和游戏(连体育课都什么活动都不做,只在操场一个小角落里谈论电脑,游戏什么的)。当时我特别佩服他,因为他懂得比我多得多!当时最佩服的就是他竟然能用FC编程。中国的FC玩家有相当一部分用的都是“学习机”,我们当时用的就是那个。记得刚我得到FC的时候还经常装模作样的打打字什么的,那时有一个功能我怎么也不会用,那就是BASIC。“学习机”里附带的“学习卡带”里面一般都有个BASIC,有F-BASIC和G-BASIC两种,前者可以进行浮点运算,但是几乎没有任何图形功能,只能用来算算数;而后者虽然没有浮点运算能力,却可以进行图形运算!它内置了好几组Sprite,都是经典游戏里面的。通过绘制这些Sprite,可以在屏幕上弄出动画来;而且最让人兴奋的是,G-BASIC可以操作游戏手柄!这就已经构成了游戏开发所需的大部分工具了。
  而徐旭就知道怎么样用这个来编写小游戏,虽然他当时也并没有开发过什么特别有意思的东西,但在我看来,这就已经相当了不起了!我对他特别佩服,并且从他那里借到了一本关于G-BASIC的书,其实就是“小霸王”附送的一份说明书。接着我就开始研究起这个新奇的东西来。我觉得自己对编程还是有根经的,所以当时学得很快。在理解了变量、选择、循环等概念后,我也开始尝试编写小程序了,先是一些数学运算型的,比如算个四则算术式之类的。后来又用F-BASIC编写了一个解一元二次方程的程序,只要把系数输入进去就可以自动输出结果来,如果无解也会输出一行提示。哪怕是这么简单的一个程序都能让我兴奋很长时间。FC并没有记忆的功能,写的程序在掉电后全都化为泡影。所以我只能先把程序写在纸上,然后用“小霸王”调试,之后将正确的程序再抄下来保存。虽然条件很简陋,但我觉得当时用FC解出方程时得到的乐趣比我现在的同学们在机房调试一个Java的猜数字程序所得到的更多吧!
  后来我就开始学习怎么使用G-BASIC来操作内置的Sprite,当时哪里知道什么Sprite之类的概念。只知道在画小人之前要先切换到Graphic模式。我记得那些Sprite都是分了块了,每一幅Sprite都是由4个部分组成的,每一个都是一个扩展的字符。每一块都有一个编号,为了得到这些Sprite,要使用一个ASCII的转换函数。具体的我已经不记得了,但是研究这些“技术”的岁月仍时常让我心中有一些感动。当我在研究这些的时候,我发现徐旭在研究用简单的字符界面制作一个“贪食蛇”!我还依稀记得当时他的那些代码,不太理解,也不知道他是怎么表示那“蛇”的。正是这些“不理解”,让我当时下定决心自己也做一个!
  上高中的时候,我和徐旭都有一份自己喜欢的杂志,我的是《大软》,他的是《CFan》(就是《电脑爱好者》)。当时的《CFan》上有一个栏目叫做“程序谷”,里面刊登了一些电脑程序,从VB到Delphi,到VC的都有。虽然不是特别理解那些代码,但是我仍然非常喜欢那个栏目。因为有一些BASIC基础,所以我还算能看懂一部分。后来《CFan》上刚好刊登了一系列VB入门文章,我靠自己积累的一些知识很快就理解了VB的编程思想。很快我就开始疯狂着迷于这个能在Windows上开发出图形界面程序的开发工具。我买了一本书专门研究VB。当时我没有电脑,去网吧的机会也不多,并且网吧也没有VB之类的可以用。所以我几乎没有任何机会调试VB程序。我把程序都写在纸上,没事的时候就当自己是一台电脑,模拟执行那些代码,并以此为乐。为了研究那些,我的学习在当时一落千丈。现在想想,当时的我也真叫悲哀,只不过我自己当时并没有感觉到而已。这种悲哀不是因为研究电脑影响到了学习,而是因为当时的自己有一腔热情却连一台可用的电脑都没有。同时,那时的我第一次陷入了感情问题中。当时的我跌入了高中时代的最低谷。我经常自暴自弃,并且开始玩网络游戏(这个游戏是龙族,至今我都认为它是韩国网络游戏中为数不多的经典)。我甚至开始通宵上网了。虽然徐旭玩起来和我一样疯狂,可是他能处理好一切。他的理科一直都是班上最强!
  有一天晚自习,我自己在无所事事地看一本《大软》,他写了一张纸条给我(我现在还保管着),上面写了很多他的想法。他说的让我意识到了自己已经失去太多太多了。我开始认真学习,把自己失去的弥补上来。我停止了研究VB这些技术,开始投入到学习中了,而龙族,我再也没有玩了。他说过的一句话我印象特别深,原句我不记得了,大意是说:“像我们这样的才是真正值得让人羡慕的。等到我们毕业了,回顾自己的高中,看自己得到了什么,我们会发现自己获得了很多学习之外的东西;而那些天天埋头自习的人则会发现,自己除了无数个埋头做习题的夜晚,什么都没有。但是前提是,我们要比他们优秀!”
  进入高三后,我的成绩缓缓上来了,一直保持第十名左右。而我的精神状态也不错,对即将到来的高考充满了信心。当然,在这个时候,我们并不是对电脑技术毫不关心的。有一天,我看到徐旭在看一本《电脑高手合订本》,后来我拿那本书来看,刚好看到了王轶男的一系列文章,讲他自己的编程经历,并且剖析了ActiveX技术。虽然我还看不懂,但是那让我开始对一门自己曾经不愿接触的高难度语言感兴趣了,那就是C++!在那段紧张的时间里,我还是抽空看了C++的书,并且第一次对编程有了深刻的认识。同时我也开始慢慢理解什么是OO还有一些比较现代的理念。后来我购买了一本王轶男的《编程黑马真言》,那本书至今都在我的书架上。那是我真正意义上的编程入门书。看完那本书我才理解什么才是“编程”。
  黑色的六月里,我经历了高考。虽然对高考充满了信心,虽然曾在全班同学面前说“我要让你们都用上我的软件”,虽然怀着考上武大软件工程的梦想,但人生总会有不如意,我离一本线差了3分,和心目中的大学彻底无缘了。
  带着那本《编程黑马真言》,我考上了这让我的20岁充满失望的“天外”……