程序
开发环境为VisualStudio2013、VisualStudio2010、DirectX9。
全C++语言开发,未使用第三方无源码模块。代码零错误零警告。
关键点有注释,适合新手学习。
功能不全,不适合商用。但二次开发后是可以商用的。
技术特点
Windows服务端程序,只需复制文件夹即可完成部署工作。
服务端支持ACCESS数据库,无需配置,直接双击启动服务端程序组。
配置文件采用UNICODE编码,在任何系统上中文都不会出现乱码。
XML格式配置文件,结构层级明确。支持中文‘属性名’和‘属性值’,可以方便非技术人员理解。(XML格式)
引擎在编码层级上对代码结构和运行时序进行了限制,可以保证逻辑程序员在多人并行开发中不会破坏他人的代码结构与流程。
客户端硬件适配层与上层结构间设计有抽象接口,可以通过重写硬件适配层的方法实现跨平台编译。这就是发行手机版的方法。
游戏的特性逻辑被封装在独立的模块中,在不改变游戏类型的情况下,只需修改逻辑模块就可以完成游戏新内容的添加。
项目历史
这是一个我个人用10年时间积累出来的游戏。我2005年毕业,找的第一份工作就是在新浪iGame做网络棋牌游戏。当时公司用的是韩国的游戏引擎和框架,系统设计并不是很好,我就决定自己写一款引擎来为自己做游戏。当我以DirectX9为底层写出自己的第一款游戏引擎并做出第一款单机游戏时已是2007年了。后来我到了一家自主研发和运营棋牌游戏平台的公司的北京公司任技术总监,在公司工作了6年,其间为公司设计并带人编写了全新的游戏平台系统。我写的全新游戏平台系统架构于2010年正式上线使用并在线稳定运行至今。2015年初我集成先前自己写的客户端引擎和游戏平台服务端架构编写了传奇2项目。由于项目的基础架构是在外网验证过的稳定系统,所以开发效率很高,整个游戏由我一个人开发,到2015年底就完成了MMOARPG游戏的核心功能。当今大部分新成立的小公司都不选择C++作为游戏开发语言,主要是因为现在会写C++的人越来越少并且C++语言自带的库也很少,很多固定功能都需要自己编码实现,这会拖长开发周期。但早先用C++作为开发语言的公司确依然在继续用C++做新项目,主要原因是他们已把别的语言库中提供的功能都编写成复用模块了,这样开发效率就与脚本语言一样了,并且由于模块是自己团队编写的,出现任何问题都很好处理,灵活性也大大提高。 考虑到有不少有理想的独立游戏开发者或团队想用C++作为开发语言可是又怕开发周期过长,所以我决定共享出我这10年中所积累的代码。共享的代码对开发者最有价值就是这些年中我所编写的独立功能模块,有了这些模块就相当于C++也拥有了脚本语言的库支持,可以大大缩短项目周期。写模块并不太费时间,但调试就超费时了,我提供的都是我多年开发中使用过的模块,这样就可以省去调试时间并缩短开发周期了。至于C++语言有什么好处,最早的跨平台手机游戏引擎cocos2d-x就是利用的C++语言的全平台通用性。现在像Unity3D这种免费闭源的引擎大片的涌现,主打的招牌就是缩短开发周期,但这类引擎往往会出现新版本数据格式与旧版本不匹配的情况,这种情况一出现,游戏后期的开发周期反而会变长。用免费引擎的缺点就是没有可控性,一但引擎核心出现问题就无解了。我多年中都是在开发2D网络游戏,2D游戏引擎由于没有摄像机和光照,所以实现起来很简单,就是一个画图板。第三方的引擎主要就是工具齐全,而2D游戏本身用不上什么工具,这种难度的东西就没有必要用免费闭源的引擎了,完全可以自己开发。
项目的目前阶段
目前的源代码只能用于二次开发,不能马上上线运营。目前系统的核心功能完成了,用户的注册系统是完整的,因为这是原来棋牌平台的功能。完成的功能主要包括:创建帐号,建立和删除角色,同步移动,地图传送,地图刷怪,怪物AI,背包系统,装备系统,玩家攻击与技能,怪物与玩家的死亡,XBOX游戏手柄操作,鼠标键盘操作,GM指令,测试机器人,NPC对话脚本解析系统。但还缺少沙巴克攻城系统,交易系统,充值系统。游戏做过1000人的压力测试,情况很好。简单总结一下就是:游戏里的设计难点都已完成但无难度而费时间的外围系统都还没有做。 |