游戏,梦的开始
今年本科毕业,当初考虑毕业设计题目的时候,想起大一第一次班会上被问过一个问题:
你为什么选软件工程专业?
除了“乱选”、“调剂”的同学,大多数人都是类似“想当黑客”、“觉得很酷”的回答。
已忘了当时我是怎么回答的,现在再思考这个问题却感慨万千。也许选计算机专业是我做过的最重要的决定之一,比选学校还重要(你高考就那么点分,你能选个锤子的学校)。
如果现在的我来回答,我会回答——“游戏”。
遥想当年,我上初中了。作为一个网瘾少年,正热衷于某网络游戏。
后来游戏因为玩家太少而宣布停运,当时不明白为什么要停运,能有一个人充钱那也是赚啊……后来连买 10 块钱一个月的学生云服务器都要纠结半天的我终于在眼泪中明白,有些游戏是需要服务器等运营成本的。
那时多希望有个有钱的老哥能买下游戏,或者游戏公司不打算运营这个游戏了,送给我啊?当时别人说“送给你也没用,你不知道怎么维护代码”。好好的代码为什么要维护,放在那不就行了?实习的时候才知道,即使那些看起来已经很厉害软件,也需要不停地修补 bug ,不停地迭代新需求,不停地掉头发。难怪那些大公司每年也要招那么多人,难怪程序员总是加班,还时不时要被拿来祭天……
尽管如此,当时还是想,如果自己会写代码就好了,这样就……(就可以想 peach)大概就是当时的无奈,让我心中“不想只是看着,想有能力做点什么”的想法有了最初的萌芽。事实证明,游戏倒闭是戒掉网瘾最好的办法。
作为一个专一的男人,对游戏也是专一的,自那以后,再没有遇到过一个游戏让我如此心动……
家里网络到期后,家里不打算再续网,我开始沉迷于单机《拳皇》系列游戏……
什么?我说再没有遇到心动的游戏?哦,男人的嘴,骗人的鬼嘛……哦不是,我是说这个游戏其实是小时候就在游戏厅见过,那时候就一直憧憬,所以其实我只是回忆一下童年……
把《拳皇》官方版本玩遍后,我又发现了一些我木有玩过的船新版本,这些版本据说都是基于一个叫 M.U.G.E.N 的东西。百度了一下,是一个 2D 格斗游戏引擎——“哦,就是个游戏引擎啊……游戏引擎是什么?算了……启动游戏……”。这些船新版本和官方版本很不同的地方就是,它们的游戏角色可以自由增减。贴吧里有很多分享人物包的帖子,而这些人物包就是一个压缩文件,下载需要的人物包后,把它解压到游戏指定目录,然后在一个 txt 文件中添加这个文件夹的名字,接着重启游戏,便可以在游戏中使用这个全新的人物。整个过程不需要任何计算机专业知识、不需要写代码——是那么简单,以至于我一个不懂计算机的初中生也能轻松完成。
现在以我看来,这样的设计
1.让游戏引擎来实现碰撞检测、伤害计算、用户交互等底层、通用逻辑,不同游戏不再需要重复实现
2.游戏角色开发者只需要关注游戏角色本身的特点,直接使用游戏引擎提供的能力(我猜就是接口、API 之类的形式)而不需关注复杂的图形计算等
3.游戏角色开发时只通过接口来和游戏引擎交互,这样一个角色开发后,就可以自由地在这种游戏引擎开发的任何游戏上,甚至是遵守这些接口的其他游戏引擎开发的游戏上使用——“一处开发,到处使用”
4.游戏引擎和游戏角色都由开发者开发好,剩下的工作就是将这些元素组合起来,而这些工作不需要编码能力,只需懂基本的配置规则,不需要开发者来参与
5.有些组合工作需要创意,由其他人来做更合适。比如把一些人物组合成一个带剧情的游戏,另一些人物组合成另一个带剧情的游戏,这些组合方式和剧情设计交给策划之类人员来做可能更合适,毕竟他们更擅长这样的工作,或者这些创意本身就来自他们自己,如果还要开发来实现,他们需要先把自己的想法准确地传达给开发者,必然有不小的沟通成本。
整天单机游戏不免落于寂寞……我是说年轻人怎么能不心系天下,由于当时没有手机,不方便关心时事政治,所以我去了网吧。为了练习打字速度,我登上了个QQ,也不碍事。这网络带宽不用也是浪费了,不如下个***(正经人看的)。这磁盘带宽不用也是浪费,不如找个单机游戏复制到U盘带回去……也许是注定的缘分,人群之中我看到了它——《骑马与砍杀》。
玩过骑砍的应该知道它有原版和较新的战团版,玩过原版《骑砍:乱舞水浒》后搜了战团版,果然找到作者说打算把原版移植到战团版的帖子,然而帖子已是多年以前,下面很多失望的玩家骂作者骗捐赠,骗人气,我也自此绝了对新版本的期待……
许久没有关注骑砍的我去年竟偶然发现水浒的战团版真的发布了。作者简单地一句“各位汽油好久不见”,留下下载地址,然后洋洋洒洒地写了新版本的许多新特性,评论区则是众多玩家的赞扬与感谢,我深受触动,感叹作者时隔多年不负众望,更佩服他(们)在没有经济奖励的情况下,即使在某些玩家的质疑唾骂声中,也能摸默默地完成开发——不知道那些曾经说作者“骗捐赠”的玩家们是不是也在如今赞扬和感谢的人群里,不知道作者是不是也在看到那些怒骂的评论后感到寒心。最触动我的还是作者在致谢时提到的很多人,有本 MOD 制作组成员,也有其他 MOD 的制作组成员,作者说他们在建模、地图等各方面给他提供了很多帮助——毫无保留的分享是技术人的浪漫。也不禁让我感叹,认识一群有共同目标、并共同为之奋斗的人真好啊!
骑砍 MOD 的作者们利用工作之余完成了新版本的移植,也许是出了回应玩家们的期待,也许是为了完成承诺,也许单纯出于兴趣爱好,无论如何,我都觉得这些骑砍MOD的开发者“用爱发电”的精神是伟大的。其实不只是骑砍MOD的开发者,不只是游戏,计算机领域有很多“用爱发电”的人,比如很多开源项目的开发者们。他们的贡献,小到参与一个免费游戏的开发,大到推动业界的发展,对我来说,他们是真正伟大的程序员。
还有一个不得不提的是游戏是《YGOPro》,当我知道这个免费开源的游戏王平台是国人大学期间单独开发时,实在震惊和深受鼓舞。
在开始的开始,我大概也是想成为这样的人,做这么酷的事情,才选择计算机专业的吧。在现实面前,在学习的座座大山前,在找工作的压力下,我似乎在增删查改之中忘了当初想要做的那些最酷的事情。
所以最后毕设选择了做一个简单的 2d 游戏引擎,而不是选择写了很多遍、很快就能完成的 WEB 项目,让我在毕业之前做一件自认为很酷的事情吧。
于是我(已经拿到正式offer)暂辞实习,回家专心做毕设。借鉴了上面提到的游戏的设计思想,借鉴了 Spring Boot 的设计,借鉴了 JVM 的执行模型……似乎用上毕生之所学,重构又重构最后总算是完成了一个自己还算满意的半成品。当然,它始终是一个只能用于学习、没有实用价值的东西,但也算是表达对前辈们的一点点小小的致敬。这些开发者给我毕设很多灵感与鼓舞,我把对他们的感谢写进了毕业论文的致谢,当时指导老师说致谢太长,可我就是有这么多要感谢的人,对他们有这么多感谢的话。
有些失望的是最后答辩老师甚至没有认真听我做了什么,简单交谈之后便给了我个80分——就像你高考作文写得辞藻多么华丽、感情多么真挚,阅卷老师没多看几眼就给你打了个和其他人差不多的及格分。有时候追求极致的人真的需要学会孤芳自赏。
不知道你是不是也有着很酷的理由才来互联网,但愿你在奔波于眼前之事后,也有时间去做一做那些你自认为很酷的事情,去回应自己的初心。