{"repo":"TastSong/GameProgrammerStudyNotes","free":true,"listed":false,"github":"https://github.com/TastSong/GameProgrammerStudyNotes","clone":"git clone https://github.com/TastSong/GameProgrammerStudyNotes.git","description":"游戏开发学习笔记","language":"C#","stars":434,"topics":["unity","unity3d","read","reading","game-development","book"],"license":"MIT","category":"game-templates","readme_excerpt":"Game Programmer Study Notes 游戏编程学习笔记 Game Programming Patterns 游戏编程模式 代码示例 - 重访设计模式 - 命令模式： 将“请求〞封装成对象，以便使用不同的清求，队列或者日志来参数化其他对象，同时支持可撤消的操作 - 享元模式： 以共享的方式高效地支持大量的细粒度的对象。通过复用内存中已存在的对象，降低系络创建对象实例的性能消耗 - 观察者模式： 定义对象间的一种一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被白动更新 - 原型模式： 用原型实例指定创建对象的种类，并且通过拷贝这些原型创建新的对象 - 单例模式： 保证一个类只有一个实例，并且提供了访问该实例的全局访问点 - 状态模式： 允许对象在当内部状态改交时改交其行为，就好像此对象改变了自己的类一样 - 序列模式 - 双缓冲模式： 使用序列操作来模拟瞬间或者同时发生的事情 - 游戏循环： 实现游戏运行过程中对用户输入处理和时间处理的解耦 - 更新方法： 通过每次处理一帧的行为来模拟一系列独立对象 - 行为模式 - 字节码： 将行为编码为虚拟机器上的指令，来赋予其数据的灵活性。从而让数据易于修改，易手加载，并与其他可执行部分相隔离 - 子类沙箱： 用一系列由基类提供的操作定义子类中的行为 - 类型对象： 创造一个类A来允许灵活的创造新的类，而类A的每个实例都代表了不同类型的对象 - 解耦模式 - 组件模式： 允许单一的实体跨越多个领域，无需这些领域彼此耦合 - 事件队列： 事件队列模式，对消息或事件的发送与处理进行时间上的解耦 - 服务定位器： 提供服务的全局接入点，而不心让用户和实现它的具体类解耦 - 优化模式 - 数据局部性： 合理组织数据，充分使用CPU的级存来加速内行读取 - 脏标识模式： 将工作延期至需要其结果时才去执行，以避免不心要的工作 - 对象池模式： 放弃单独地分配和释放对象，从固定的池中重用对象，以提高性能和内存使用率 - 空间分区： 将对条存储在基于位置组织的数据结构中，来有效的定位对象 重访设计模式的六种设计方法为经典23种设计模式的之六，这六种设计模式也是游戏中常用的设计模式；序列模式、行为模式和优化模式适用与游戏引擎设计；解耦模式适用于游戏UI部分的设计-------自定义组件和消息机制的设计；是一本不错的学习游戏设计模式的书籍 QFramework Unity框架 详细文档 - 架构目的：使用框架的目的与意义 - 设计原则：SOLID设计模式的六大原则 - 总体架构：框架的分层以及层级之间的规则 - 代码示例：如何使用此框架 - 实现细节：框架实现过程中的技术要点 此框架相较于流行的框架ET、JEngine等框架，QFormwork更专注于逻辑层的架构，在工具层实现组件化做到即用即安装，更佳纯粹；此教程在Unity学堂可以学习，重点不应该放在框架的使用，而是放在框架的搭建过程 Unity 3D高级编程 第一章 架构：架构的意义、架构的原理以及如何实现架构 第二章 C#技术要点：C# 技术的基础知识 第三章 数据表与程序：针对客户端中的表格数据、程序的协作与应用 第四章 用户界面：用户界面（UI）的工作原理与优化手段 第五章 3D模型与动画：3D 模型的原理、动画的原理以及两者的优化 第六章 网络通信：网络层的业务与底层原理 第七章 游戏中的AI : 各种 AI 类型 第八章 地图与寻路 ：场景构建与优化、地图构建以及寻路算法优化 第九章 渲染管线与图形学 ：图形数学、图形","default_branch":null,"files":null,"tree":[],"storefront":"/r/TastSong","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/TastSong/GameProgrammerStudyNotes/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}