Home
Tom
Cancel

第十九课:核心逻辑设计——战斗系统进阶

第一章:概述 从实例介绍网络通信的基础知识 略,计算机网络课有大把的基础知识 第二章:CS通信 网络通信的基本过程 TCP:可靠、适合大数据量、频繁交互的 UDP:可靠性要求不高、小数据量、性能更佳 通过对UDP再应用层的处理其实可以保证可靠。 传输协议及应用实例 PC上QQ的CS交互 一般情况:UDP 网络差:TCP ...

第十八课:MMORPG AI系统设计与实现

第一章:MMORPG AI基础 MMORPG AI简历 什么是MMORPG AI 游戏内NPC能够通过环境或事件的变化进行逻辑判断,从而同玩家进行产生特定的行为交互。它主要包括三个部分:感知 -> 决策 -> 行动。 感知:侦测周围环境变化的能力,如玩家进入视野、受到攻击 决策:根据环境变化思考做出何种反馈,是整个AI框架主要的构成部分,常见的有状态机、行为树 ...

第十七课:核心逻辑设计——战斗系统进阶

第一章:网络问题 实际网络环境会导致的情况 实际的网络环境: 导致的问题: 出手的粘滞感 combo技能由于网络波动无法继续 由于网络波动,上行到服务器的消息比预期的要迟,导致combo技能超时被打断 特殊引导技能由于网络波动,导致技能之间动作不连贯 网络波动导致下行包到达客户端的时间不符合预期 ...

第十六课:核心逻辑设计——战斗系统基础

游戏战斗系统核心抽象模型 什么是战斗系统 客户端:负责接收玩家战斗指令,根据服务器的驱动进行表现 服务器:负责逻辑驱动 技能基本框架 技能过程定义 技能实体在生命过程中,可以通过抽象划分为一系列的阶段 不同的技能类型即为这些阶段组合而成的过程 技能阶段 Start - 技能开始 ...

第十五课:移动和视野管理

为什么需要数据同步 简单来说,网络游戏需要数据同步玩家的状态与动作。 最常见的同步“移动同步” 2D移动的实现 玩家移动的表达一(移动向量): POS当前的位置 DIR朝向 V速度 同步的时机: 转向 变速 停止 解释: 上行延迟直接拖拽的情况:上行数据包延迟过大,到达服务器太晚了,服务器如果发现这个位移包在原来走过的路径上,那就将该角色...

第十四课:生产环境介绍

介绍生产环境和开发环境的差异 生产环节的定义、要素 线上环境、生产环节都一个意思,略过。 开发环境的主要差异   开发环境 生产环境 规模 几十台机器构成,供少量开发人员使用 上千台机器,为海量用户提供服务 网络 局域网...

第十三课:线上运行控制

概念 定义和要素 当系统正在运行,出现硬件故障或逻辑异常的时候,对当前运行状态进行旁路控制,以保障系统可用性,限制故障发生的范围,避免灾难扩散 要素: 监控:及时发现系统异常 容灾:应对故障的自动执行机制,保障系统可用性 控制:对已经发生的异常进行人工干预,屏蔽故障或限制故障范围 开发和运维的分工   开发 运...

第十二课:核心系统设计——服务器地形

服务器地形管理基础概念 地形:山川河流路面等等 为什么要有地形管理? 用数据描述地形信息 组织高度,阻挡信息 提供玩家定位访问、信息访问机制 为上层模块提供定位服务 服务器如何描述地形数据? 2D游戏 grid网格 无高度信息,只有阻挡信息 3D游戏 3D地形场景 ...

第十一课:随机数在游戏中的应用

基本介绍 在游戏中的应用 游戏玩法:抽卡、开宝箱 模拟自然现象:火焰、植被、生物群落(火焰粒子发射器) 离线渲染、光线追踪 随机生成内容(随机关卡) 两种伪随机概念 计算机概念: 真随机:需要外部的随机来源如量子、噪音等等 伪随机:用算法生成看似随机的序列 策划概念: 真随机:每次判断都是独立的 ...

深入理解计算机系统笔记

第1章:计算机系统漫游 程序的编译方式 汇编阶段:汇编器将hello.s翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o中。hello.o是一个二进制文件,它包含的17个字节是函数main的指令编码。 链接阶段:printf函数存在于一个名为printf.o的单独的预编译好了的目标文件中,而这个文件必须以某种方式合并到我们...

第十课:网络同步技术

基本概念 设计目标 游戏开发设计的要素 公平:确定性、安全性 体验:延迟低、稳定性 开销:流量、计算量、研发成本 传输数据分析 常用同步方案 一致性:帧同步 一致性:状态同步 及时性:通用方案 方案对比

第九课:运行环境与运维

运行环境 运行环境,指一种把变异好的程序在目标机器上运行的后台环境。是软件运行所要求的各种条件,包括软硬件环境。 物理部署 问题:假如某款产品同时在线1000W,需要多少台机器? 估算步骤 预估用户数量:总注册数,并发读写量,同时在线数量 压力测试,得出单机承载数量 备份、容灾处理 总的机器数量=接入层机器数量+...

第八课:游戏逻辑与反外挂

游戏逻辑服务器 游戏逻辑服务器 游戏服务器整体架构: 游戏服务器的作用 游戏数据存储 与其他玩家交互的中转 玩法驱动和逻辑 反外挂和防作弊(韩国上网实名制,所以反外挂逻辑的一般都在客户端,而不会在服务器判断) 游戏服务器状态图 时间间隔驱动:时间中断出去检查是否有一些相关逻辑需要处理,比如发现某个计时器倒计时结束 以3D MMORPG为例子阐述服务器...

第七课:游戏支撑系统

支撑系统概述 登录流程 LoginServer职责 鉴权 返回服务器列表,角色信息,推荐服务器等 白名单(灰度服务器)和黑名单 基于版本好的更新控制(强制更新/推荐更新) 与客户端基于Session的DH密钥交换 登录公告 DH密钥交换: 其他相关技术点 捏脸的技术点 方式一(image base):游戏共随机样本,利用人脸识别技术检索最像的; ...

第六课:游戏人工智能

游戏人工智能综述 人工智能在游戏中的应用 赋能与效率 游戏体验 开发效率 应用领域 玩游戏 内容生成 玩家体验衡量 人工智能在游戏制作中的主要方法 决策 有限状态机(FSM) 离散、有限的性质 优点 快速简单 计...

第五课:分布式系统设计

分布式系统概览 分布式系统指分布在硬件设备上的多个软件组件,彼此通过网络来通信和协作的系统。 分布式系统需要考虑的问题包括:业务模块划分、负载均衡、融在容错、网络通信等 消息队列:专门负责消息传递的通用中间件。特点:解耦发送方和接收方、稳定可靠 感性认识分布式系统: 腾讯游戏通信方案-TBUS(进程间通信) TBUS地址 World.Zone.Fu...

第四课:游戏后台开发工具

开发语言 C++新特性:auto, nullptr, decltype, lamda, constexpr 找mentor拿到项目组的代码规范、开发流程规范。 开发环境 Linux系统监控系统命令:perf, vmstat, gdb, trace, top, ifconfig, ulimit, lsof 腾讯开发组件介绍 tsf4g(Tencent Service Framewo...

第三课:浅谈游戏后台开发+游戏技术人员的野望

游戏后台解决的三大问题 网络通信 仲裁计算 数据存储 Books C++编程思想 Effective C++ Unix网络编程(卷1:套接字联网API) UNIX环境高级编程 TCP/IP详解 设计模式:可复用面向对象软件的基础 重构:改善既有代码的设计 游戏后台涉及的技术 同步方案 帧同步(王者荣耀移动)...

第二课:游戏服务器架构概要

《轩辕传奇》——MMORPG分区多世界的服务器架构 运营的视角 运维的视角 客户端的视角 大世界(无缝地图):将一个大地图分成不同的区域,每个区域用一个进程去承载,所有控制也需要一个主进程去承载。 跨世界共享:不同世界接触到的相同东西,单独提出来作为公共服务进行处理。主备从架构。 逻辑处理和持久化数据再同一个物理机上遇到的问题: DB的IO太多 日志文件 ...

第一课:敲打的是乐趣

前言 演讲者:李东,腾讯互动娱乐 光子工作室群 基础研究组组长。《绝地求生:刺激战场》引擎开发组长。 技术准备 编程基础 C++(保证运行效率)&Script(保证开发效率) Framework(游戏开发基本框架) actor包含所有的物体,能够跟玩家发生互动的都算。组件开发:actor都是挂接不同组件进行开发的。 ...

鸟哥的Linux私房菜笔记

重点回顾 0x01 计算机的五大单元:输入单元、输出单元、控制单元、算术逻辑单元、存储单元,其中CPU占有算术逻辑单元和控制单元,存储单元包含内存和辅助内存; CPU设计理念依据RISC精简指令集和CISC复杂指令集; CPU频率:外频是CPU与外部元件进行数据传输时的速度,倍频是CPU内部用来加速工作性能的一个倍数,两者承积才是CPI的频率; 个人电脑的内存主要元件为...

给学弟学妹们的关于校招的一些经验教训

序言 ​ 作为一个21届还没毕业的小朋友,我的校招到现在为止才算是尘埃落定了,自认为在找工作这件事上踩了不少坑,所以也想留下一点我自己的一些经验给后面参加校招的学弟学妹们,因为自己没有记录面试题目和写面经的习惯,所以之前都没有在收到offer的时候写面经反馈给大家,到现在基本已经不记得面试被问过的问题了……不过好在牛客上有很多优秀的面经可以去学习,我这里就不班门弄斧了,想另辟蹊径讲一讲关...

配置我的终端

序言 本文主要目的是帮助自己快速配置本地终端。 功能介绍 我的私人oh-my-zsh配置包括如下: 插件配置:auto-suggestions, auto-syntax-highlighting, git 代理配置:调用proxy_on或proxy_off可以开启终端的代理,这要配合clashX使用 vim配置:vim配置文件在/jiahua目录下,叫做.vimrc alias...

操作系统与Linux简介

操作系统的基本原理 操作体系概论 1.1 操作系统的定义 应用程序->实用程序->操作系统->硬件 单向调用的关系 1.2 操作系统的形成与发展 顺序处理、简单的批处理 多道批处理系统:以主存为中心,与CPU相连,用通道与I/O设备相连,存放多个作业,在主存中同时存放多个作业,根本目的是提高PCU的利用率,充分发挥并行性。通过资源利用率(实际使用时间/给定时间...

我的vim常用命令

Vim常用命令 删除操作 dw:删除从光标开始后面的字符 daw:删除光标所在的词 bdw:跳回光标所在该单词开头,然后删除 dd:删除一行 移动操作 # 字符移动 w:移动到下一个单词首 b:移动到上一个单词首 e:移动到下一个单词结尾 ge:移动到上一个单词结尾 ^:移动到行首 $:移动到行尾 # 相对屏幕移动 ctrl+f ctrl+b ctrl+e:按行下滚 ctrl+...

C++ Primer Plus 精华笔记

第2章:开始学习C++ 让程序访问名称空间std的方法有如下4种: using namespace std; 放在函数定义之前,让函数能够使用空间std的所有元素; using namespace std;放在函数中; 在特定函数使用using std::cout; 完全不用using,而是直接std::cout; 第4章:复合类型 面向对象编程与传统的过程性编程...

你好,世界!

大标题 小标题 三标题 普通文本 //代码片段 int main(){ hello world; }

Trending Tags