设计目的和方向:

  1. 简单easy to use, hard to misuse
  2. 尽可能利用goroutine的优势,能最大限度地并发。
  3. 能并发的逻辑。逻辑在独立的goroutine中启动时,创建一个channel,并用一个名字的方式注册到一个sync.map中,后面每个goroutine需要交互通信时,通过名字来给对应的goroutine发数据。给其它goroutine发送数据时,数据可以是{from:”fromname”, callback:”决定是否回调,回调函数是什么”,data:”具体的数据 “}。发送数据接口如send(targetname, data)。其实应该就是Actors模型。
  4. 智能,p2p分布式功能。
  5. 负载均衡器,loadbalancer。a.一个入口,将请求服务投递到较为空闲的机器上,或先随机,等某些机器负载过高时再用优先空闲机器的算法。b.动态增加减少机器。c.入口的高可用。可以设计分级入口,local入口到真入口。
  6. 热更新。运行中热更,比如lua中如果用了比如闭包函数,数据和函数混在一起其实有个不好的地方是,只有新创建的逻辑可以用新的代码,旧的只能等到客户退出后销毁。所以为了提高热更的效率,不用闭包。热更不行的话,可以启动新的服务,通过负载均衡器将新的用户引导或转移到新的服务。放弃用lua。plugin可以。
  7. 在线调试功能?打印堆栈和数据。
  8. 在任天堂大乱斗里,很多招式是通过按键长短来控制来识别,和传统格斗游戏最大的区别,大部分人的招式是通过方向键+攻击按键长短来控制。