2019游戏项目技术复盘

2020-01-21  本文已影响0人  landon30

2019游戏项目技术复盘

线上问题复盘

一、外部服务不可抗拒因素(多次)

二、线上刷资源bug(多次)

三、 多线程

  1. ThreadLocal

    • 现象

      数据错乱、串号等,出现场景如充值回调、battle回调到玩家线程时拿到错误了threadlocal数据

    • 复盘

      • 使用ThreadLocal一定要谨慎,本身是一个好东西,但是在多线程交互的时候一定要多注意
  2. 多线程

    • 现象
      • 腾讯系游戏聊天多线程调用SDK导致进程crash(jni)
      • LinkedHashMap + ReentrantReadWriteLock 实现LRUCache导致登录卡死
      • HashMap死循环(排行榜、活动)、key重复导致无法登录
      • 客户端sdk回调多线程操作lua_state闪退、多线程异步加载spine闪退
      • 战斗异步callback的上下文 + 重连卡死
    • 复盘
      • HashMap是非线程安全,多线程环境下一定要注意
      • 客户端使用多线程要注意,会出现crash
      • 引入battleserver后,backend逻辑线程调用battle后会直接返回,如果此时battle耗时,那么转菊花下线后重连进来要考虑回调发送的消息上下文问题

四、 Battle

五、Devops

国内、海外上线项目优化、问题

iOS审核相关

客户端相关

landon 2019语录

  1. 线上项目,出现bug正常,只要不是刷资源的bug
  2. 防御式编程 + 契约式编程 = The Server is the Man
  3. 最无奈的问题就是反复出现,重复踩坑
  4. 友商不给力的时候,你一定要坚挺

2020展望

  1. 异步编程

    • callback、future、reactive、coroutine
  2. 新架构设计支持弹性动态扩展能力和高可用容灾能力

上一篇下一篇

猜你喜欢

热点阅读