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