当前课程知识点:游戏程序设计 > 第二章 《游戏服务器概述 》 > 2.4 设计原理与方法论 > 2.4 设计原理与方法论
设计原理方法论
第一个设计原理就是
keppitsimpiestupid
最好谁看得懂
你设计模块的时候不要搞太复杂
结构设计上最好事情比较简单清晰了
还是减少这种模块的耦合
柔性可用主要是指
当这种条件有限的时候不能
我完整的什么时候
可以提供以游戏的方式提供优质的服务
比如说我们战斗服务器出故障
那么我不能打pvp
那我pve是不是可以打
那么
可以至少体现一些基本的东西
就在然后
在不同的场景下提供不同的服
那些服是系统核心了
你就保证服务是一定可用
然后非核心的有比如说排行榜
我拉不到就不拉到嘛
最多用户这段时间看到旧的反应网速
玩家至少在体验上没有多大伤害
让他能够继续玩游戏
整个游戏主拆掉了就停在那儿
服务降级灰度分布
还有就说当一些服务出现有损的时候
其实我们可能可以做降级
比如说服务器只能承载1000人
那对又来了一千五百人时候
其实我可以先告诉你
我说我服务器繁忙
排队那行为是一种服务降级
已验证的一些具体的技术
那就比较常见的一些无锁通信队列
就是两个进程
在后台线程的通信的时候
它的那个队列
如果只有一端读一端写
是可以做到不用守着去实现
这个最早是在Linux底层里面
实现的一个技术
现在已经比较常见了
还有异步模型
异步模型因为在服务器上用的比较多
因为大部分采用服务器cluster技术的话
都会采用服务器协作的方式
让很多的类型同步调用
都会变成异步的交互
通用框架这边有一些
类似之前的big world框架
还有网易的大神那个云风
之前自己开发一套skynet
它的框架也比较都比较成熟
他的唯一的特点
唯一的缺点就是他要用撸
然后存了一些@数据库
产品就是以前我们要mysql
这些是一些传统的数据库
是一些
传统的内容
行列级的行列的方式到现在很多是什么
Key-value产品上Redis, MONGO DB
而且新的产品,腾讯自己有一套
游戏有一套自己的框架
使用内存做数据
Key-value型
大部分就是一个用户号
用户的ID给你拿去所有的数据
工具最后简单介绍一下
调试器Linux下面有最著名的GDB
做计算机开发的肯定都会用到
winows一般用
VisuaIstudio
内存泄露检查下面有个valgrind
还有一些工具
我只是简单举个比较常用的
windows下面有一个Leaks Detector
然后性能分析
Linux上面用的比较多的gprof
然后windows环境
其实VisuaIstudio
带到工具比较丰富
它这个性能调试的问题也比较好用
然后第三方有一些像Rational、Truetime
比较好用
网络抓包工具可能对网络开发的这层
网站用的比较多
另一方面
Linux应该是tcpdump
我们一般场内运输人员都会用到
然后Linux下面的Tcpdump
这个是
它也太比较好用的就是有它会用那个
用直接刷网卡的报文数据
产业具有一些语法过滤
比如说过滤tcp
静态代码检查就最常见的PC Lint
然后现在跟以前其实也有些发展
现在计算机这种综合的能力越来越强
现在我们最好的服务器
当然我知道了我们现在使用中的服务器
PC服务器上有六四核
加上那个超线程上
那些可能我得出来要128个核心
编程员现在也被发展比较快
现在从此我们传统的C程序员后面
Java其实也有很多很大一个市场
Java它的组建的比较多
再去特别是欧美
它也比较成熟的人比较多
它特别是欧美的游戏
很多用Java做服务器开放
现在用go
也开始用go人也比较多了
但是其实我们给大家推广下@啊
我们在和平精英用的是
服务器是c和结合
lua为主写逻辑
但lua对于它的性能稍微差一点
但它有个最大的好处
热加载更新起来非常快
而且
调试起来就开发效率很高
然后更真实的游戏世界
其实相对来说更倾向于前端
现在的引擎从
特别像虚幻和Cry这两个大型引擎
对真世界的模拟
就显得非常强劲
但是相对来说
这种引擎都比较重
就你们做作业我其实个人建议不
不建议去虚幻虚幻学习成本比较高
然后觉得极其不能跑起来比较累
Unity比较轻量
更事实的交互
大家就对这种交互的要求更高了
基本上可所见即所得
-1. 1什么是游戏(上)
--选择题
-1.2 什么是游戏(下)
--选择题
-1.3 游戏是如何开发出来的
-1.4 游戏引擎(上)
-1.5 游戏引擎(下)
--单选题
-1.6 如何成为一个游戏开发者
--多选题
-2.1 什么是游戏服务器
--单选题
-2.2 游戏服务器的和分类发展
--单选题
-2.3 核心技术和实现难点
--单选题
-2.4 设计原理与方法论
--单选题
-3.1 三维坐标系统
--多选题
-3.2 向量与运算
--单选题
-3.3 矩阵与线性变换
--双选题
-3.4 四元数
--3.4 四元数
--多选题
-4.1 游戏循环概述(上)
--多选题
-4.2 游戏循环概述(下)
--单选题
-4.3 《无尽之路》的实现
--单选题
-4.4 支撑游戏的功能
--选择题
-4.5 支撑游戏的机制与系统
--多选题
-5.1 基本介绍
--5.1 基本介绍
--单选题
-5.2 随机数生成器
--单选题
-5.3 随机数分布与应用
--单选题
-6.1 什么是游戏玩法开发
--单选题
-6.2 建立愿景 Vision
--单选题
-6.3 划定边界 Scope
-6.4 迭代 Iteration
--单选题
-6.5 迭代 Iteration+抛光Polish
--单选题
-7.1实时图形渲染管道 宏观渲染系统
--单选题
-7.2实时图形渲染管道 应用阶段
--单选题
-7.3实时图形渲染管道 几何阶段
--单选题
-7.4实时图形渲染管道 光栅化阶段
--单选题
-7.5实时图形渲染管道 总结 参考
-8.1 物理回顾1
--单选题
-8.2 物理回顾2
--单选题
-8.3 材质 1
--8.3 材质 1
-8.4 材质 2
--8.4 材质 2
-8.5 材质3
--8.5 材质3
-8.6局部光照
--8.6局部光照
--单选题
-8.7 全局光照
--8.7 全局光照
--单选题
-9.1 动画介绍
--9.1 动画介绍
--多选题
-9.2 游戏动画介绍
-9.3 动画技术类型
--多选题
-9.4 骨骼蒙皮动画
--多选题
-9.5 动画流水线
--多选题
-9.6 动画前沿趋势
--多选题
-10.1 .基本概念
--多选题
-10.2 设计目标
--多选题
-10.3 传输数据分析
--多选题
-10.4 常用同步方案 1
-10.4 常用同步方案 2
-10.4 常用同步方案 3
-10.4 常用同步方案 4
--多选题
-10.5 方案对比
--多选题
-11.1 基本图元
--单选题
-11.2 图元距离(上)
--单选题
-11.2 图元距离(下)
--单选题
-11.3 图元相交测试+ 其他几何方法
--单选题
-12.1 著名物理引擎介绍
--单选题
-12.2 物理引擎原理(上)
--单选题
-12.3 物理引擎原理(下)
--单选题
-12.4 游戏中的物理体
--单选题
-12.5 物理引擎使用入门
--单选题
-13.1开发语言
--13.1开发语言
--单选题
-13.2 开发环境
--单选题
-13.3 腾讯开发组件介绍
--单选题
-13.4 网络通信+业务框架介绍
--多选题
-14.1 进程间通信(上)
-14.2 进程间通信(下)
-14.3 通信格式
-14.4 并发模型
-14.5 超时处理
-14.6 大系统小做(上)
--多选题
-14.7 大系统小做(下)
-14.8 架构层面的技术支持(上)
--单选题
-14.9 架构层面的技术支持(下)
-14.10 分布系统的关键能力
--多选题
-15.1 游戏人工智能综述
-15.2 人工智能在游戏中主要方法 上
--多选题
-15.3人工智能在游戏中主要方法 (下)
-15.4 人工智能在游戏制作中的应用领域1
--多选题
-15.5 人工智能在游戏制作中的应用领域2
-15.6 人工智能在游戏制作中的应用领域3
--多选题
-15.7 人工智能在游戏运营中的应用实践(上)
-15.8 人工智能在游戏运营中的应用实践(下)
--多选题
-16.1 游戏支撑系统(1)
--单选题
-16.2 游戏支撑系统(2)
--单选题
-16.3 游戏支撑系统(3)
--单选题
-16.4 游戏支撑系统(4)
--单选题
-16.5 游戏支撑系统(5)
-17.1 游戏逻辑服务器(上)
--单选题
-17.1 游戏逻辑服务器(下)
-17.2 外挂与反外挂(上)
-17.2 外挂与反外挂(下)
--多选题
-18.1运行环境
--18.1运行环境
--多选题
-18.2物理部署
--18.2物理部署
--多选题
-18.3系统的可运维性
--多选题
-18.4运维案列分析
--多选题