一日一点RakNet(1)--RakNet

来源:互联网 发布:用手机怎么做淘宝客 编辑:程序博客网 时间:2024/04/29 20:01

 首先,将参考手册的首页翻译一下,作为学习大纲,放到此处!

 一日一点RakNet(1)--RakNet

介绍

参考手册更新于2011/7/7。当前版本信息见readme.txt

RakNet 一款免费的低代价的C++和C#游戏引擎库,允许程序员在程序中加入响应时间严格的网络应用。它大多用于游戏,但是独立于游戏应用程序,也即它并不与某一个游戏相关联,完全可以独立应用于网络程序。RakNet的设计实现了快速,易用,独立于应用,跨平台以及特色集.(关于feature set,没有太理解是什么意思)

 

1. 快速开始

本节介绍如下的几个主题。

1.1多人游戏的组成。

1.2 RakNet简介

1.3系统概述

1.4详细实现(本节主要介绍如何使用RakNet进行编程)

1.5教程(主要介绍如何在VS2005中配置RakNet)

1.6编译设置(如何编译出可以使用的dll,而不用在工程中使用源码)

1.7可选的第三方的工具或库(如何与其他的一些库如游戏引擎结合使用)

1.8如何做,此处是连接到论坛中的一个第三方工具或库的列表页面

 

2. 培训视频

2.1主要特色介绍

2.2教程1:RPC3

2.3教程2:ReplicaManager3

2.4教程3:Autopatcher(自动补丁系统)

 

3. 特色视频

3.1 使用SQLiteClientLoggerPlugin实现网络日志

3.2 云计算下的大规模服务器服务

 

4. 基础

4.1 Startup 开始

      启动RakNetInterface,解释线程休眠时间

4.2 Connecting 连接

      如何发现和连接到其他的系统,如果有问题又如何做。

4.3 Creating Packets 创建数据包

      如何使用结构体和位流创建用户数据包,以及如何编码时间戳

4.4 Sending Packets 发送数据包

      如何发送已经准备好的数据包,使用那些参数。

4.5 Receiving Packets 接收数据包

      如何将一个原始数据转换为一个可以通过结构体或位流读取的数据包。

4.6 SystemAddress 系统地址

      描述SystemAddress结构体在数据包和一些函数参数中的目的以及使用。

4.7 Bitstreams 位流

      RakNet的位流类概述,以及通过API使用该类。

4.8 Reliability types 可靠类型

      对用于控制如何发送数据的一些参数进行描述。

4.9 Network Message 网络消息

      API发送给用户的消息类型介绍,在MessageIndentifiers.h中也有介绍。

4.10 Timestamping your packets 给数据包打时间戳

      描述时间戳的目的

4.11 NetworkIDObject 网络ID对象

      给每一个类分发一个整个系统都可以使用的唯一标识的实用类

4.12 Statistics 统计

      RakNet提供的统计功能

4.13 Secure connections 安全连接

      如何激活和使用安全连接

4.14 Cloud hosting 云主机

      以更低代价获得服务器主机

4.15 Rackspace interface Rakspace接口

      Rackspace的C++接口,可以用编程方法在服务器上进行创建,删除,重启,映像或执行其他的操作。

4.16 NAT traversal architecture  NAT穿透结构

      如何将UPNP,NAT类型检测,NAT穿透和Router2结合起来,使得P2P连接更快更有效连接。

4.17 Preprocessor Directives 预处理指导

      用不同的编码设置重新编译库文件

4.18 Custom Memory Management 用户内存管理

      控制台上,用于内存追踪等等

4.19 IPV6 support 支持IPV6

      对下一代网络IP地址格式的支持

4.20 Marmalade integration 整合

      与IOS和Android平台的Marmalade SDK整合

 

5. 插件

5.1 Plugin Interface 2 插件接口2

      所有插件的基础类

5.2 Autopatcher 自动补丁系统

      包涵在RakNet的自动补丁系统

5.3 RPC3

      使用本地参数列表调用C和C++函数,使用Boost获得更多的功能

5.4 RPC4

      调用C函数,不依赖额外的系统或库

5.5 CloudComputing 云计算

      云计算。客户端将内存或事件传递到云端,任何连接到客户端可以查询或订阅这块内存或事件数据。

5.6 Connection Graph 连接图

      维护了整个网络的拓扑图的一个插件

5.7 Directory Delta Transfer 目录列表传递

      在目录之间发送变化或丢失的文件。必要地,简单的补丁系统可以用于传输等级,皮肤等等。

5.8 File List Transfer 文件列表传递

      用于发送用FileList 结构体编码的文件列表

5.9 Fully Connected Mesh 2 完全连接的网络2

      使得所有的对等端自动连接到所有其他对等段的一个插件,选择最老的对等端作为主机。

5.10 Lobby2Client – PC

      PostgreSQL备份游戏数据的数据库,包括玩家,好友,分组,消息

5.11 Lobby2Client – Steam

      Steamworks使用Lobby2接口驱动后端

5.12 Lobby2Client – PS3

      使用Lobby2接口的PS3 NP 后端

5.13 Lobby2Client - XBOX 360

      实时后端和音频聊天支持,使用带有RakVoiceXBOX360插件和FullyConnectedMess2插件支持的Lobby2接口

5.14 Lobby2Client – Games for Windows Live

      和XBOX360类似,但是运行在Windows上。

5.15 Message Filter 消息过滤器

      基于发送者的额外安全设置阻止不需要的网络消息

5.16 NAT type detection NAT类型检测

      查找你所在的NAT类型,保持用户不能够单独连接的用户

5.17 NAT punchthrough NAT穿透

      连接NAT后面的用户, 要求端到端,音频通信,或允许玩家将自己的主机做服务器

5.18 Pakcet Logger 包日志记录

      打印网络传输的情况到屏幕,文件或者其他的地方。

5.19 RakVoice

      RakVoice介绍,参考RakVoice.h获得完整实现以及更多细节内容

5.20 Ready Event 准备好事件

      同步系统中一组玩家都已经准备好一个共同的标识,在端到端环境同时启动游戏很有用,或在基于轮的游戏中进行轮次很有用。

5.21 Replica Manager3 复制管理器
      对你自己的游戏对象和玩家提供管理以实现序列化,划定范围以及创建和销毁对象更加容易的插件

5.22 Router2

      向我们没有直接连接的远程系统发送网络消息

5.23 SQLite3LoggerPlugin

      使用SQLite穿件一个网络日志文件,基于SQLite3Plugin

5.24 SQLite3Plugin

      使用SQLite通过网络执行语句(替代轻型数据库)

5.25 TeamBalancer

      给玩家请求和赋予队号,支持客户端/服务器或端到端

5.26 TwoWayAuthentication

      实现Two Way Authentication,不用传输密码就可以验证一个先前设置的密码


6. C# 和SWIG

6. 1 Swig教程

如何从C#使用SWIG和单道运行RakNet

6.2 Unity Integration 功能集成

      如何统一使用RakNet,以及如何升级到4.x版

7.实用工具

7.1 Crash Reporter 崩溃报告器

      应用程序崩溃时发送mini废物,写到磁盘或发送Email

7.2 Console Server 控制台服务器

      到服务器的基于文本的后门,使用安全的RakNet或telnet,允许执行预先设置的命令或任意的字符串。

7.3 Email Sender

      由崩溃报告器使用通过TCP发送emails

7.4 String Compressor/ String Table

      用于编码字符串,以获得更少的带宽使用和更加安全

7.5 TCP Interface TCP 接口

      TCP连接的封装类

7.6 PHP Directory Server PHP目录服务器

      从或者到C++在网页上列举游戏列表

 

8. 3D Demos 3D实例

8.1 Ogre 3D Interpolation Demo

使用Ogre 3D通过客户端/服务器网络显示一个爆米花的实例,使用ReplicaManager3

8.2 Irrlicht FPS Demo

使用Irrlicht显示一个3DFPS实例,使用端到端的NAT穿透。也是使用ReplicaManager3

 

9. TechnicalDesign Documents 技术设计文档

9.1 UML 图

9.2 潜在的蓝牙支持

 

10.数据结构

10.1 DS_BinarySearchTree.h

二叉搜索树,以及AVL平衡二叉搜索树

10.2 DS_BPlusTree.h

B+树,用于快速查询,删除,和插入

10.3 DS_BytePool.h

返回某个大小门限的数据块,减少内存碎片

10.4 DS_ByteQueue.h

用于读写字节的队列

10.5 DS_Heap.h

堆数据结构体,包括最小堆和最大堆

10.6 DS_HuffmanEncodingTree.h

胡夫曼编码树,以给定的频率表用于查找最小按位显示

10.7 DS_HuffmanEncodingTreeFactory.h

创建胡夫曼编码树实例

10.8 DS_HuffmanEncodingTreeNode.h

胡夫曼编码树中的节点

10.9 DS_LinkedList.h

标准链接链表

10.10 DS_List.h

动态数组(有时不适宜地成为向量)。双向时作为一个栈

10.11 DS_Map.h

关联数组,每一个元素带有分类键值的有序列表

10.12 DS_MemoryPool.h

分配和释放固定大小的重用的实例,用于减少内存碎片

10.13 DS_Multilist_h

将列表,栈和游戏列表整合成为一个带有通用接口的类

10.14 DS_OrderedChannelHeap.h

最大堆返回一个基于关系权重的节点的相关信道,用于带有属性的任务调度

10.15 DS_OrderedList.h

通过快排以一个任意键值排序的列表

10.16 DS_Queue.h

用数组实现的标准队列

10.17 DS_QueueLinkedList.h

用一个链表实现的标准队列

10.18 DS_RangeList.h

存储一个列表的数字值,数字是顺序的,以一个序列代表他们。当存储许多序列值时比较有用。

10.19 DS_Table.h

带有行列,以及表上的操作

10.20 DS_Tree.h

非循环图

10.21 DS_WeightedGraph.h

带有权重边得图,用于使用Dijkstra的算法进行路由

RakString – 字符串的实现,比std::string速度高4.5倍

 

11.Support 技术支持

 

0 0
原创粉丝点击