我的大学专业是“计算机软件开发”,在校课程是从C语言开始入门的,后面课程也没有细讲过C++,更说不上是用C++进行实际的软件开发了。我自学了C++和MFC,利用MFC的框架我可以做一些简单的软件。刚开始是做一些音乐播放器一类的OCX套壳软件,后来我自学了网络编程,为我打工负责技术维护的网吧编写了一套网吧电脑同步游戏更新数据的网络系统。
2005年毕业,我的第一份工作就是在新浪iGame做网络棋牌游戏。当时公司用的是韩国的游戏引擎和框架,系统设计很简单,但用来量产小游戏并不是很好,我就决定自己写一款引擎来为自己做游戏。当我以DirectX9为底层写出自己的第一款游戏引擎并做出第一款单机游戏时已是2007年了。后来在老同事的介绍下,我到了一家自主研发和运营棋牌游戏平台的北京公司任技术总监,并在公司工作了6年。工作期间为公司设计并编写了全新的第二代游戏平台系统。此系统在开发有比赛功能的新游戏时可以节省三分之二的工期。我写的全新游戏平台系统架构于2010年正式上线使用并在线稳定运行至今。
2014年我辞职在家,开始了我的全职独立游戏开发历程。
2015年初我集成先前自己写的客户端引擎和游戏平台服务端架构编写了一个仿《传奇2》项目。由于项目的基础架构是在外网验证过的稳定系统,所以开发效率很高,整个游戏由我一个人开发,到2015年底就完成了MMOARPG游戏的核心功能。这个翻版作品最后的版本完成度就是所有地图可进出,所有商人可交互,所有怪物可战斗,战士职业可完整游戏。
2018年我自己从零编写的沙盒生存大型网络游戏《矩阵世界》的雏形完成,试玩版上线。这款游戏花了我两年多的时间,它让我明白了好多。先前的《传奇2》翻版项目没进行到底就是因为框架系统之外的琐碎功能点太多,凭借一人之力要再花两年才能完成,而且我自己不是传奇资深玩家,游戏里后期有什么我也不知道。改做《矩阵世界》就是因为游戏是我自己原创的内容,开发难度可以通过内容设计来降低。但游戏雏形完成后就需要给游戏世界添加丰富的建筑和道具了,对于不是美术出身的我来说完成这些物件的美术制作可能要花两年不止。所以这款游戏就停在雏形阶段了。
2019年我的第一款完整可商业化的游戏《21点》在微软商店上架销售。经过《传奇2》和《矩阵世界》两个自研项目的洗礼我终于找到了不借助美术和策划两项技能就可以由我一人完成完整内容的游戏题材,就是这款《21点》。我擅长做网络游戏,擅长设计多人交互,而这款《21点》刚好可以让我把这些内容放在其中。这算是我独立游戏历程上的一个里程碑吧,第一款完整商业游戏。
2020年我用自己的《全电玩游戏引擎》单人编写的网络射击对战游戏《蓝星战士》在TapTap上架。本次制作的游戏受到一批小众游戏玩家的喜爱,在TapTap上的评分有9.0分。
2022年由于先后两位为我制作美术资源的合作伙伴的相继离开,作为一个程序员的我被逼的不得不自己学画画来重新制作游戏的美术资源。美术人员的学习都是要经过十几年的训练的,我一个刚入门的是不可能通过自学变成真正的美术人员的,于是我就采用了抽象画风。游戏变成抽象画风后就感觉名字已经不合适了,根据新画风,我给游戏起了个新名字,叫《圆球枪战》。
当今大部分新成立的小公司都不选择C++作为游戏开发语言,主要是因为现在有Unity和Unreal这样的游戏引擎,功能强大又免费。另一方面就是会写C++的人越来越少并且C++语言自带的库也很少,很多固定功能都需要自己编码实现,这会拖长开发周期。不过,早先用C++作为开发语言的公司确依然在继续用C++做新项目,主要原因是他们已把别的语言库中提供的功能都用C++实现了一遍并编写成复用模块,这样一来,在特定类型的项目上开发效率甚至会高于Unity和Unreal引擎,并且由于模块是自己团队编写的,出现任何问题都很好处理,灵活性也大大提高。
至于C++语言有什么好处,最早的跨平台手机游戏引擎cocos2d-x就是利用的C++语言的全平台通用性。现在像Unity3D这种免费闭源的引擎大片的涌现,主打的招牌就是缩短开发周期,但这类引擎往往会出现新版本数据格式与旧版本不匹配的情况,这种情况一出现,游戏后期的开发周期反而会变长。用免费引擎的缺点就是没有可控性,一但引擎核心出现问题就无解了。我的多年工作经历都是在开发2D网络游戏,2D游戏引擎由于没有摄像机和光照,所以实现起来很简单,就是一个画图板。第三方的引擎主要就是工具齐全,而2D游戏本身用不上什么工具,这种难度的东西就没有必要用免费闭源的引擎了,完全可以自己开发。 |