卡牌策略游戏的开发流水线与设计模式

来源:互联网 发布:win10 mysql安装 编辑:程序博客网 时间:2024/04/30 02:38

历经《天下》与《我叫火影》两个项目后,我们自行设计的卡牌策略向的结构逐渐完善化了,具备完整的数据驱动和开发流程。


游戏包内容包含代码,数据和资源,原则上三部分独立替换不影响,可以在开发阶段使用假的数据和资源,然后由设计人员逐步替换上,优化调整时除非有游戏逻辑修改,一般也不会涉及代码改动。这样策划的少量改动就可以完成传统模式程序员的大量工作,而且没有频繁改动代码带来的新增BUG的风险。


游戏资源方面,在开发过程中会使用win32程序仿真运行,仿真运行时直接读取png和jpg格式的图片,替换的时候更为方便。由于direct3d和opengl的纹理argb顺序与png图片不一样,在发布模式下会对图片进行编译。编译后的数据会进行gzip压缩,gzip解压算法速度非常快,可以忽略这一部分的性能影响,由于节省了IO时间甚至可以更快。


游戏数据,游戏数据归档格式分为4类,我们并未采用cocos2d-x推荐的json格式,而是使用excel来记录和编辑绝大部分的游戏数据,用lua来配置公式和一些动态调用的数值和UI信息,另外用ini格式来配置游戏版本信息。excel被认为是世界上最强大的数据编辑器,所以一般也就懒得再自己弄一套来画蛇添足了。


ui数据由UI编辑器生成,编辑器的存在与否会对游戏开发流程有质的影响,如果没有编辑器,策划只能一遍又一遍的看各个界面同时图文并茂的告诉程序员需要在哪里把哪个按钮往哪边调整几个象素,程序员又只能天天加班改界面,策划只能看着干着急。在功能机时代我曾有过这样一段惨痛的回忆,有的程序员朋友也告诉我天天加班改UI是导致他最终离职的重大原因。


动态修改的UI元素,文本之类的,经常看到一些不成熟的程序员写到代码里,这个后果很恐怖。由于我们用lua脚本,一般会将这些数据统一归档到一系列文件中,方便策划修改和制作多语言版本。


在客户端开发中,我们实行较为严格的模型-视图-控制跳转的分层架构。视图模块由ui编辑器生成,所有的ui元素在编辑器中定义,程序员无法在代码中新建ui对象,所有ui对象实例由引擎和中间件统一管理。可以让素质普通的开发人员也能写出高质量的代码,一般不会出现崩溃和内存泄露。


控制跳转由协议交互或ui事件触发,ui由严格的堆栈结构控制,所有ui只能单入单出,同样也是基于降低开发人员素质要求的考虑。


模型层一般将用户数据分为若干种类型,每种类型建立标记,由服务器端改写标志来决定应同步哪一段数据。



0 0