棋牌项目工作总结

最近半年自己用creator独立负责开发一个棋牌项目和对这个项目的换肤,下面做下工作总结,来引导以后项目的开发,该项目包含十三水和麻将两款游戏。

0.项目中一些单例对象:GameManager,AudioManager,NetWork,util,UiHelp(窗口的一些通用提示),EffectHelp,Config(配置ip,版本,服务器时间等),UserManger,NativeClass(原生平台),事件注册监听类(creator自带,如果没有,这个要自己实现),个人认为,所有游戏都需要这些单例对象。

0.项目中的一些定义:游戏类型定义,场景名定义。个人认为,这些是游戏需要的;

项目中一些基类:

1.mvc:

窗口的基类:ViewBaseClass(基类包含函数:ctor,loadRes,show,hide,isVisible;)

model的基类:ModBaseClass(基类包含成员:param供调用者传参用;功能:对消息跟事件回调处理,调用视图改变)

control的基类:ControlBaseClass(对Mod和Wnd进行相互管理)

2.公共的组件:

AA开房界面;语音聊天按钮(封装了一些特效);玩家信息界面;关闭打开按钮;销房界面;设置界面。。。等等

3.对于有部分功能相同,有部分功能不同的界面的封装:

例如:比如文字聊天界面中包含文字聊天和表情聊天;十三水和麻将的表情聊天是一样的,文字聊天是不同的;

解决方案:独立封装表情聊天功能和聊天功能;将聊天功能提供基类(设置文字接口),让派生类实现;

那么这边要设立一个标准:如果功能庞大就要独立;如果功能小,就别不折腾了;

4.关于游戏制作工程中的一些难点:

动画:用代码写复杂的动画是比较繁琐的,为啥不美术做呢?因为有些动态计算位置,方向的动画就需要程序实现,目前我用creator写动画还很薄弱,不知道有没有好的教程可以学习,也不知道怎么提高。。。。

断线重连:

这一块要求写逻辑的时候就要写好:场景中需要init,render,clean,这3个过程,以供断线重连使用;

断线重连还有个体验比较差的解决方案是:断线后退出游戏场景,回到登录界面;或者重新走loading界面,再进游戏场景;

比较好的解决方案当然是走clean,然后再init,render了;

网络连接一块:

1).WiFi和4G相互切换,现在处理方案:切换4G或WiFi的时候,判断websocket是否断开,没有断开就直接断开,发起重连(5秒一次);

2).苹果退到后台的网络情况不可预知(有时候会断线,有时候不会),退到后台的情况暂时没处理(就是断开就重连,没断开就保持原样);

3).心跳包:每一分钟一次(没感觉到效果)

creator引擎的bug:

1).比如安卓退到后台调用关闭声音代码无效。。。

2).creator加载资源函数没有百分比进度。。。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章