闲言碎语(一) 996 ICU?服务器数据迁移、关卡模式、地图扩展(5x5,6x6)、Instant

发表于2019-04-08
评论5 5.5k浏览

996 ICU? 请拉到最后:)))

 

 

从入职猎豹到现在,已经过去了5个多月,所有工作上的时间全部都投入到了世界制造者WorldCreator2048! 这一款“小”游戏中。  

 

                                              

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1


 

一款2048玩法的休闲游戏,投入了半年多的时间去不断的优化调整(时间还在继续),回头看看这段历程,也是挺不可思议的,这也更充分的的验证,我之前创业失败是再正常不过的结果,你认为你所欠缺的那些,实际上,仅是冰山一角。


 

1.服务器数据迁移


 

 历史遗留问题,初版并没有实时对战的模块,数据持久化也只是在本地,没有做服务器同步,后来新增了对战模块,需要登陆,验证,数据库,推送,云控等等功能,一些大的公司通常会有自己的公共平台中心,内部研发,提供这些通用模块的支持,但对于一些小的团队来讲,通常会选择第三方,比如腾讯或是Google Firebase,项目是香港的CP,Firebase自然成为了他们的首选,但在内地,Google被墙的彻彻底底,这些服务就404了,拿掉Google这套东西,确实消耗了我们不少的精力。


 

我原本以为,实时对战这部分的数据是保存在Firebase的数据库中,实测发现,Firebase是采用的匿名登录,每一次客户端重新安装,生成的User Id都是不同的,是个伪同步,我们这边需要将国外用户的Firebase数据,同步到自己的海外服务器上。


 

迁移的方案还是比较简单的,好在原始的代码中,会存储Firebase User Id到本地,在新版本的客户端中,在登录前,判断User Id是否存在,如果存在,并且判断他是国外的用户(MCC/TimeZone),将User Id发送给国内服务器,服务器连接Firebase,将数据同步到海外服务器中,并通过设备标识进行关联映射。


 

这个过程是隐式执行,用户无感知的,服务器也会保存一个同步状态,同步成功后,状态变更,这样之后再次收到同步请求,不再处理。


 

方案通常是纯粹,简单的,实际在实现的时候,每个项目都会有不同的坑,比如在测试的过程中,软通货一直没有同步下来,他们是序列化到同一个字节流中,反序列化的时候,唯独它没有,后来发现是反序化后还有一次赋值,唯独排除了软通货,当时比较费解:)


 

其它的,也要考虑断网,玩广告类游戏比较久的玩家,通常都会断网以避免频繁的广告弹出,但如果你本地产生了数据(软通货),网络恢复正常再同步时,以谁为主?这是需要处理的。目前游戏并专门去做防作弊,这里mark下,记得之前wetest有一期讲到过,稍后去关注一下。


 

2.关卡模式


 

在WorldCreator2048里新增了关卡模式,确实是个不错的点子,地图缺角,障碍物,冰块等等,让游戏的策略性变得更高,但关卡设计的水是很深的,目前还在不断的优化中。


 

早年前做三消游戏的时候,还专门为此开发了一套关卡编辑器,在刚开始关卡逻辑研发的时候,就想着怎么弄一个编辑器出来,从老牌的SWT,又想再试试许久没有碰过的QT C++,也纠结要不要直接在Unity里实现,实际上,用哪个都不对,因为这不是现在应该去考虑的,过往的经验表明,在编辑器出来之前,会经过很多次的迭代和重构。


 

后来这部分的功能交给另外一位同事负责,关卡的配置方面,Excel就够了,通过Python进行导出,突然觉得很爽,并不是说我可以不用做这部分的工作了,曾经单线程的工作有多么痛苦,真的不想再经历,记得刚过来的时候,有一次leader在安排任务时说,我们要充分的利用资源,我们那么多人呢,让我印象深刻,突然间意识到,单打独斗好多年了......


 

3.地图扩展(5x5,6x6)


 

这是最近一周在做的事情,2048原本是4x4的矩阵,现在可以通过看广告试用或是直接购买的形式,将地形扩展为5x5和6x6,谢天谢地,原始代码在这部分实现的扩展性还可以,我没有耗费太多的时间,处理好一个主题,其它用脚本批处理,实际测试中,压力很大,因为很难死掉......尤其是6x6的地形,感觉试用主题及地形的设定会有不错的转化,也许会在未来的关卡模式中应用到5x5,6x6,至于最终效果如何,上线看数据,还是很期待的。


 

4.Instant Game


 

现在很多的游戏视频广告,在播放结束以后,有的广告会紧接着切换到游戏试玩的页面,这个页面中会重现产品中的核心亮点场景,让玩家可以即时的体验游戏(据说这种形式的用户转化率达到了移动视频广告的7倍之多) ,这种形式叫做Playable Ads,直译为可交互的广告,技术层面,它就是一个HTML5的游戏,不过它有一个更标准的叫法-Instant Game。


 

Instant Game(即时体验游戏),比如Facebook Instant Game,可以在Messenger里直接打开网址就可以体验 。

 

现在GooglePlay也提供了Try Now功能,玩家不需要下载和安装游戏包,通过Try Now 可以即时体验游戏,从而决定是否购买(下载)。


 

WorldCreator2048是基于Unity,之前同事有尝试在Unity的基础上开发一个Instant Game出来,但很无奈,Unity裸包就有10MB,达不到GooglePlay的容量限制要求,最后因时间原因,只能做罢,很可惜。


 

最近内部分享里,我一直在关注Tiny Mode,虽然目前还是Preview,但我非常看好它的前景,ECS只是一方面,主要还是源于对Unity Technology的信任,上次分享,就拿着FlyingYolk的源码讲了讲,也打算后续的分享中,能多涉及到一些实际开发层面的,练手总要去做一个具体的Demo,为何不做一个WorldCreator2048的核心玩法出来呢,如果是这样,Instant Game计划是不是就可以重启了呢,有点儿跃跃欲试的冲动,希望不要打脸:)


 

5.996 ICU


 

写到这里,有点儿写不动了,这一天计划了很多事儿,碎嘴用去了一大半,最近大家疯狂在讨论996 ICU,各大商业公众号可逮着一个热点话题了,996工作制,可不是只有IT啊,我有朋友是医生,我感觉她精神压力比我还大, 比我还忙。


 

我大概是在2015年的时候, 开始频繁996工作制,实际上真正有效率的输出没几个小时,摸鱼的时间居多,坏的习惯,如果不加以控制,就容易愈演愈烈,频繁的996最后”癌变“成了强制996.


 

我在创业的时候,第一天就规定,一周要工作六天,其实可以理解,创业和打工毕竟不同,所承担的责任,承受的压力都不一样,再辛苦,疲惫,也得要求自己保持专注和效率,虽然开始不同,但结局却是一样的,长期高负荷,你得不到很好的休息,犯错的机率在加大,出活的效率也在变慢,你开始意识到,效益不好,并不是时间的问题,这种错误的方式并不能解决问题,你改变不了环境,又因为各种客观因素,你难以说走就走,这便会带来情绪上的波动,长期积压,从而产生不可预料的结果。


 

但偶尔的996不可避免,赶上项目发版本的时候,出事儿的概率就会很大:),有时候是自己做着做着不想停下来,或是自己想多加一会儿班多学一些东西,也有可能是对项目时间预估有偏差,这锅你得背,加班做是应该的,项目不忙的时候,或是今天的任务完成了,后续的任务也可以按时完成,那么你就可以早点儿回去,除非特别必要,周末不会加班,工作时间上弹性制,谁也保不齐有点儿事儿要办,满足规定的考勤时间就好,比如我经历的两次手术,来回跑医院无数次,最近每天都要去医院做康复训练,到公司可能就11点了,但公司有着良好的员工制度,这让我觉得很自由,很舒服。


 

杜绝的是强制996,没事儿的时候,不能走,原因是老板喜欢,老板来啦,这种公司趁早做好走的打算,我入行这些年,没少见到这种面子工程做得特别好的员工,混得好的几乎没有,这种公司不远离,还在里面待着,认同了价值观,也就能看到结局。


 

离开996工作制以后,我曾经去面试过一家公司,在交谈的过程中,我提到长期996工作制是没有效率的,面试的人非常的认同,然后说到,所以我们施行大小周。


 

那是我第一次听到大小周的概念,听上去比996良心了不少?


 

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1


 

我记得之前看过一项调研数据,关于加班效率的曲线,前期确实会比较高,但越向后,曲线下滑的越厉害,产出效率反倒不如松紧有度的工作制。


 

想起一篇文章的标题,毁掉一个人最好的方式,就是让他忙到没时间学习,你连复盘,总结的时间都没有,怎么会成长呢。


 

未来我会不会再回到996工作制呢,行业还在规范和成长中,我希望不要有那一天。


 

我很享受现在的工作和生活的状态,能让我有时间坐下来,写一点什么,但我知道,幸福的时光总是短暂的,持续加力吧。

 

感谢您的阅读, 如文中有误,欢迎指正,共同提高


 

欢迎关注我的技术分享的微信公众号,Paddtoning帕丁顿熊,期待和您的交流

 

iOIWBCwZkEenjYhorLAF.jpg

 

  • 允许他人重新传播作品,但他人重新传播时必须在所使用作品的正文开头的显著位置,注明用户的姓名、来源及其采用的知识共享协议,并与该作品在磨坊上的原发地址建立链接
  • 可对作品重新编排、修改、节选或者以作品为基础进行创作和发布
  • 可将作品进行商业性使用

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引