![]()
内容推荐 网络多人游戏已经成为游戏产业的重要组成部分,本书是一本深入探讨关于网络多人游戏编程的图书。 全书分为13章,从网络游戏的基本概念、互联网、伯克利套接字、对象序列化、对象复制、网络拓扑和游戏案例、延迟、抖动和可靠性、改进的延迟处理、可扩展性、安全性、真实世界的引擎、玩家服务、云托管专用服务器等方面深入介绍了网络多人游戏开发的知识,详尽地剖析了众多核心概念。 本书的多数示例基于C++编写,适合对C++有一定了解的读者阅读。本书既可以作为大学计算机相关专业的指导教程,也可以作为普通读者学习网络游戏编程的参考指南。 作者简介 马达夫(Sanjay Madhav),是南加利福尼亚大学的讲师,在那里他教授了几门与游戏编程相关的课程。而在全职加入南加利福尼亚大学之前,他作为程序员在许多公司工作过,包括Electronic Arts、Neversoft及Pandemic Studios。虽然他在很多系统上都有着丰富的开发经验,但是他最感兴趣的还是游戏机制的开发。他所参与的游戏包括《荣誉勋章:太平洋突袭》、《指环王:征服》。 从2008年开始,Sanjav在南加利福尼亚大学兼职,当时他还是全职游戏程序员当中的一员。 在2009年年末Pandemic Stuaios关闭之后,他决定专注于教越来越重要的游戏程序员。他的主要课程是面向本科生的游戏编程课程,而且已经连续教了10个学期。 目录 第1章 网络游戏概述 1.1 多人游戏的简要历程 1.1.1 本地多人游戏 1.1.2 早期网络多人游戏 1.1.3 多用户网络游戏 1.1.4 局域网游戏 1.1.5 在线游戏 1.1.6 大规模多人在线游戏 1.1.7 移动网络游戏 1.2 星际围攻:部落 1.2.1 平台数据包模块 1.2.2 连接管理器 1.2.3 流管理器 1.2.4 事件管理器 1.2.5 ghost管理器 1.2.6 移动管理器 1.2.7 其他系统 1.3 帝国时代 1.3.1 轮班计时器 1.3.2 同步 1.4 总结 1.5 复习题 1.6 延伸的阅读资料 第2章 互联网 2.1 起源:分组交换 2.2 TCP/IP模型 2.3 物理层 2.4 链路层 2.5 网络层 2.5.1 IPv4 2.5.2 IPv6 2.6 传输层 2.6.1 UDP 2.6.2 TCP 2.7 应用层 2.7.1 DHCP 2.7.2 DNS 2.8 NAT 2.9 总结 2.10 复习题 2.11 延伸的阅读资料 第3章 伯克利套接字 3.1 创建Socket 3.2 API操作系统差异 3.3 socket地址 3.3.1 类型安全 3.3.2 用字符串初始化sockaddr 3.3.3 绑定socket 3.4 UDPSocket 3.5 TCPSocket 3.5.1 通过连接的socket实现发送和接收 3.5.2 类型安全的TCP Socket 3.6 阻塞和非阻塞I/O 3.6.1 多线程 3.6.2 非阻塞I/O 3.6.3 Select 3.7 其他Socket选项 3.8 总结 3.9 复习题 3.10 延伸的阅读资料 第4章 对象序列化 4.1 序列化的需求 4.2 流 4.2.1 内存流 4.2.2 字节存储次序的兼容性 4.2.3 比特流 4.3 引用数据 4.3.1 内联或嵌入 4.3.2 链接 4.4 压缩 4.4.1 稀疏数组压缩 4.4.2 熵编码 4.4.3 定点 4.4.4 几何压缩 4.5 可维护性 4.5.1 抽象序列化方向 4.5.2 数据驱动的序列化 4.6 总结 4.7 复习题 4.8 延伸的阅读资料 第5章 对象复制 5.1 世界状态 5.2 复制对象 5.2.1 对象创建注册表 5.2.2 一个数据包中的多个对象 5.3 朴素的世界状态复制方法 5.4 世界状态中的变化 5.5 RPC作为序列化对象 5.6 自定义解决方案 5.7 总结 5.8 复习题 5.9 延伸的阅读资料 第6章 网络拓扑和游戏案例 6.1 网络拓扑 6.1.1 客户端-服务器 6.1.2 对等网络 6.2 客户端-服务器的实现 6.2.1 服务器和客户端的代码分离 6.2.2 网络管理器和欢迎新客户端 6.2.3 输入共享和客户端代理 6.3 对等网络的实现 6.3.1 欢迎新对等体和开始游戏 6.3.2 命令共享和锁步回合制 6.3.3 保持同步 6.4 总结 6.5 复习题 6.6 延伸的阅读资料 第7章 延迟、抖动和可靠性 7.1 延迟 7.1.1 非网络延迟 7.1.2 网络延迟 7.2 抖动 7.3 数据包丢失 7.4 可靠性:TCP还是UDP 7.5 数据包传递通知 7.5.1 标记传出的数据包 7.5.2 接收数据包并发送确认 7.5.3 接收确认并传递状态 7.6 对象复制可靠性 7.7 模拟真实世界的条件 7.8 总结 7.9 复习题 7.10 延伸的阅读资料 第8章 改进的延迟处理 8.1 沉默的客户终端 8.2 客户端插值 8.3 客户端预测 8.3.1 航位推测法 8.3.2 客户端移动预测和重放 8.3.3 通过技巧和优化隐藏延迟 8.4 服务器端回退 8.5 总结 8.6 复习题 8.7 延伸的阅读资料 第9章 可扩展性 9.1 对象范围和相关性 9.1.1 静态区域 9.1.2 使用视锥 9.1.3 其他可见性技术 9.1.4 不可见时的相关性 9.2 服务器分区 9.3 实例化 9.4 优先级和频率 9.5 总结 9.6 复习题 9.7 延伸的阅读资料 第10章 安全性 10.1 数据包嗅探 10.1.1 中间人攻击 10.1.2 在主机上的数据包嗅探 10.2 输入验证 10.3 软件作弊检测 10.3.1 维尔福反作弊系统 10.3.2 典狱长反作弊系统 10.4 保护服务器 10.4.1 分布式拒绝服务攻击 10.4.2 坏数据 10.4.3 时序攻击 10.4.4 入侵 10.5 总结 10.6 复习题 10.7 延伸的阅读资料 第11章 真实世界的引擎 11.1 虚幻引擎4 11.1.1 套接字和基本的网络体系 11.1.2 游戏对象和拓扑 11.1.3 Actor复制 11.1.4 远程过程调用 11.2 Unity 11.2.1 传输层API 11.2.2 游戏对象和拓扑 11.2.3 生成对象和复制 11.2.4 远程过程调用 11.2.5 比赛安排 11.3 总结 11.4 复习题 11.5 延伸的阅读资料 第12章 玩家服务 12.1 选择一种玩家服务 12.2 基本设置 12.2.1 初始化、运行和关闭 12.2.2 用户ID和名称 12.3 |