01如何计算ARPU和LTV
下面以月ARPU值举例:月总收入 / 月活跃用户数——最传统的定义方法
月总收入 / 月付费用户数——实际上就是ARPPU(Average Revenue Per Paying User):平均每付费用户收入——这样计算会让ARPU值看起来很高,报表很好看。
月总收入 / 累积用户总数——一般不会这么计算,因为存在大量已流失用户和沉默用户,将这部分用户纳入统计是没有意义的。但有时候怕ARPU值太高会有舆论或监管压力,会采用这种计算方法来混淆视听。
月总收入 / 用户分层总数——做数据分析时使用,就是将用户分为不同的类型,总收入也是对应分层用户的总收入。例如可以将用户分为不同渠道来源、是否会员用户、通过使用频次划分等等。可以查看不同渠道来源的用户质量。
不同的定义方法,计算出来的ARPU值差异是很大的。所以给出ARPU值的时候,不给具体计算方法都是耍流氓。
02手游帧同步的要点总结
与状态同步比较
状态同步:状态变化时同步
帧同步:每帧都同步,同步的是帧号和玩家输入;各前端对于同样的输入序列肯定演化成同样的结果
优点
对于前端来说开发效率较高,如同单机游戏,能实现更好的表现效果
流量消耗是稳定的,方便实现录像回放
缺点
网络要求较高
反外挂能力弱
断线重连所需时间长
实现过程
客户端和服务端有完全一样的演算逻辑(排除一切随机因素)
服务端以固定帧频,每帧演算(这里也可以不演算),并将帧号和用户输入同步到客户端
客户端接到服务器数据后,以同样逻辑步进一帧
战斗结束后,以服务端的演算结果为准(也可以不立即验证,而是找服务器空闲时候秋后算账)
实现要点
解决卡顿
使用buffer(可根据延时调整大小)
本地插值平滑
表现与逻辑分离
解决延迟:使用UDP,需要解决丢包问题
一次携带多帧数据,降低丢包率
丢包后客户端重新请求
注意浮点数和随机函数带来的不确定性问题
要有合理的监控机制
对外挂和作弊的监控
对不同步case的监控,有助于发现和修复bug
03Unity3D RTS游戏中帧同步实现
帧同步技术是早期RTS游戏常用的一种同步技术。与状态同步不同的是,帧同步只同步操作,其大部分游戏逻辑都在客户端上实现,服务器主要负责广播和验证操作,有着逻辑直观易实现、数据量少、可重播等优点。
部分PC游戏如帝国时代、魔兽争霸3、星际争霸等,Host(服务器或某客户端)只当接收到所有客户端在某帧输入数据后,才会继续执行,等待直至超时认为该客户端掉线。很明显,当部分客户端因网络或设备问题无法及时上传操作数据,会影响其它客户端的表现,造成不好的游戏体验。考虑到游戏公平竞争性,这种需要等待的机制是必需的,但并不符合手游网络环境的需求。为此,需要使用“乐观”模式,即是Host采集客户端上传操作并按固定频率广播已接收到的操作数据,不在乎部分客户端的操作数据是否上传成功,且不会影响到其它客户端的游戏表现。

04复盘王者荣耀手游开发,Unity引擎使用帧同步放弃状态同步
现在来看,选择帧同步方案之后,我们再把它的缺点进行优化或是规避,之后它带来的好处是非常明显的。《王者荣耀》重除了英雄的设计以及技能的感觉,还有很重要的一点,就是它确实在做一些非常有特色的英雄,它的技能、反馈、体验上面都做得不错,这些都是基于帧同步技术方案带来的优势。
我们选择了方案之后,当时觉得很high,觉得这样一个技术方案开发起来得心应手,效率如此之高,做出来的效果也很好。
但事实上,它也有好的一面,也有坏的一面,技术测试版本上线后质量不好,其中技术层面遇到的问题就是下面这三座大山。
第一是同步性,同步性这块容易解决,其实也解决了;
第二也是最大一块网络问题,帧同步它的网络问题导致我们对它技术方案的原理没有吃透,碰到了一些问题,那时候游戏的延迟很重,画面卡顿,能明显感觉走路抖动的现象;
第三是性能问题,这个问题始终存在,我们也一直在优化。
05Linux交换空间(swap space)
space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中,这就是我们常说的swap06CMD同时打多个CMD窗口执行其他CMD命令
有时候我们想用一个批处理同时启动其他多个不同目录的BAT,脚本如下
start /D "D:\Program Files\redis\6379" start.bat
start /D "D:\Program Files\redis\6380" start.bat
/MIN 开始时窗口最小化
/D 起始目录

07WinRAR老牌压缩工具 <永久去广告>
一个老牌的压缩软件,在15年后终于免费向中国用户开放。
虽然说是免费的,但是打开软件还是会弹出一个弹窗广告,这也是免费的代价吧。
今天向各位祭出利器,永久去除弹窗广告,并且奉上授权文件。WinRAR功能介绍去除弹窗广告(永久去除弹窗,升级也不怕)
08内存对齐算法
由此可见,我们只要对数据补齐对齐所需最少数据,然后将补齐位置0就可以实现对齐计算。
(1)(align-1),表示对齐所需的对齐位,如:2字节对齐为1,4字节为11,8字节为111,16字节为1111...
(2)(x+(align-1)),表示x补齐对齐所需数据
(3)&~(align-1),表示去除由于补齐造成的多余数据
(4) (x+(align-1))&~(align-1),表示对齐后的数据
举个例子:如8字节对齐。起始地始是6
6 + (8 - 1)=0000 0110 + 0000 0111 = 0000 1101
0000 1101 & ~(0000 0111) = 0000 1000 //去除由于补齐造成的多余数据

10javascript 模拟鼠标点击
DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index)。
a标签模拟点击事件需要使用原生DOM元素调用click()方法。jquery对象无法调用,因此推荐在以后的开发中尽量使用原生DOM对象模拟点击.
11TamperMonkey使用
TamperMonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它的作用就是让浏览器运行特殊的JS脚本,从而实现更多功能。
12jQuery jsonp跨域请求
跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的。
浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。
如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的。
如果要在js里发起跨域请求,则要进行一些特殊处理了。或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端。

点击排行

站长推荐

猜你喜欢
站点信息
- 建站时间:2016-04-01
- 文章统计:728条
- 文章评论:82条
- QQ群二维码:扫描二维码,互相交流
