游戏中线上已有功能迭代的兼容问题

在游戏开发过程中,难免会有对线上已有功能进行迭代优化的需求。站在后端的角度来看,难点在于,如何在保证不会影响到用户的前提下,顺利进行对功能的升级和优化。关键在于兼容。

兼容分为功能配置、代码、用户数据和接口的兼容性。

使用sunshine和moonlight实现远程游戏串流

过年回家想要打游戏,但是苦于家里没有电脑,又没办法把电脑搬回去,于是想到了使用串流的方式。

实现串流的软件有多种:

  1. moonlight。因为仅实现了 NVIDIA 的游戏串流协议,所以只支持 N 卡。
  2. Steam Link。支持 steam 的游戏。
  3. Sunshine。支持 AMD, Intel, 和 Nvidia 三家的显卡。而且支持使用 Moonlight 作为客户端。开源。
  4. Parsec。其实是一个远程桌面的商业解决方案,不仅仅能用来打游戏。需要注册账号且闭源。

游戏中排行榜的后台实现

游戏中经常会有排行榜需求需要实现,例如常见的战力排行榜、积分排行榜等等。

排行榜一般会用到 Redis 来实现,原因是:

  1. Redis 基于内存操作,速度快
  2. Redis 提供了高效的有序集合 zset

Integer中bitCount方法的源码解析

Integer 中的 bitCount() 方法用于统计二进制数字中 bit 为 1 的个数,例如 0b111 中 bit 为 1 的个数有 3 位。

源码为:

public static int bitCount(int i) {  
    // HD, Figure 5-2  
    i = i - ((i >>> 1) & 0x55555555);  
    i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);  
    i = (i + (i >>> 4)) & 0x0f0f0f0f;  
    i = i + (i >>> 8);  
    i = i + (i >>> 16);  
    return i & 0x3f;  
}