
游戏开发
名字太长容易中枪
这个作者很懒,什么都没留下…
展开
-
业务逻辑开发要点
介绍在把底层框架写好之后,服务器开发的主要任务就转移到业务逻辑上,本文主要结合自己的经验,简单介绍业务逻辑开发过程中几个需要注意的点。防御性编程不要相信客户端数据,一定要对客户端数据进行检验。通常做法是检查协议所有参数的合法性,一旦遇到不合法的判断,马上打上信息充足的日志,然后中断请求的执行。插件式的模块设计,模块功能的健壮性应该是内建的,尽量减少模块间耦合,在所有模块的调用入口做好开关...原创 2019-01-27 11:08:32 · 682 阅读 · 0 评论 -
游戏经历总结
从事游戏工作,大部分时间是在做业务逻辑。游戏的业务逻辑大体上分两类,单人玩法和多人玩法。单人玩法例如收发邮件,背包操作,多人玩法例如组队匹配。入门个人写功能逻辑的流程是:1. 通读文档,检查文档逻辑是否有问题,大致评估实现难点。 2. 画思维导图,从内存数据结构,db存储格式,C/S交互以及功能逻辑要点,配置需求这几个点去写。 3. 实现具体的逻辑代码。 4. 自行写出Ch...原创 2019-01-27 11:09:30 · 2245 阅读 · 0 评论 -
基于事件调度的Actor模型
概念事件在这里可以理解为消息到达事件,事件到来时才为Actor分配线程并执行消息的处理。这样便可以使用少量的线程来执行大量Actor产生的任务,Actor有消息要处理的时候才占用CPU,没有的时候就挂起,保证了每个线程都在高效执行任务。Actor模型组成cpu用于执行线程,目前单机上为多核。workthread工作线程,保证线程数目<=cpu核数,否则只会把cpu时间浪费在线...原创 2019-01-27 11:10:55 · 1045 阅读 · 1 评论 -
服务器逻辑开发心得
系统层面通信协议一般是由服务器制定,有几个关键点:①. 变量注明必须和可选字段(required or optional).②. 协议注明请求,返回和推送时机,不要让其他协议阅读者猜测意图。③. 涉及枚举定义一定要专门定义,不要直接在协议里面注释标明。日志:①. 分类按照级别, debug, info, warn, error分文件夹存储.②. 以小时为单位分文件存储, 每...原创 2019-01-27 11:12:30 · 587 阅读 · 0 评论 -
积分无上限排行榜设计
需求如下:对玩家的等级,战斗力,宠物等级建立排行榜, 排行榜显示排名前200的玩家, 而最大显示排名为3000.方案一: 直接排序数据结构:记录玩家属性数据table roleData:{uid = 1, level = 1, combat = 1, petLevel = 1, rankIndex = {} }其中rankIndex用于记录玩家在每个榜的位置, key为榜的索引,...原创 2019-01-27 11:15:32 · 748 阅读 · 0 评论