RakNet中文手册

Jenkins Software

 介绍

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

本手册译者:xiao_0429

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

 快速开始

多人游戏的组成 
RakNet简介
系统概述
详细实现
教程(主要介绍如何在VS2005中配置RakNet)
编译设置 (Visual Studio)
Compiler Setup (XCode)
可选的第三方的工具或库
如何做

 培训视频

主要特色介绍
教程1:RPC3
教程2:ReplicaManager3
教程3:Autopatcher(自动补丁系统)
教程4:一个完整的示例,包含对象复制,队伍,玩家创建房间和游戏大厅,NAT穿越,以及主机迁移

 特色视频

使用SQLiteClientLoggerPlugin实现网络日志
云计算下的大规模服务器服务

基础

Startup 
- 关于启动RakNetInterface,和线程休眠时间的解释

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

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

Sending Packets
- 如何发送已经准备好的数据包,使用那些参数.

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

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

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

Reliability types
- 对用于控制如何发送数据的一些参数进行描述.

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

Timestamping your packets
- 描述时间戳的目的.

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

Statistics
- RakNet提供的统计功能.

Secure connections
- 如何激活和使用安全连接.

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

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

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

Preprocessor Directives
-用不同的编码设置重新编译库文件.

Custom Memory Management
- 控制台上,用于内存追踪等等.

IPV6 support
- 对下一代网络IP地址格式的支持.

Marmalade integration
- 与IOS和Android平台的Marmalade SDK整合.

 插件
Plugin Interface 2
所有插件的基础类

Autopatcher
- 包涵在RakNet的自动补丁系统.

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

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

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

Connection Graph
- 维护了整个网络的拓扑图的一个插件.

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

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

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

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

Lobby2Client - Steam
Steamworks使用Lobby2接口驱动后端

Lobby2Client - PS3
使用Lobby2接口的PS3 NP 后端

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

Lobby2Client - Games for Windows Live
-和XBOX360类似,但是运行在Windows上

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

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

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

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

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

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

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

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

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

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

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

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

 C# 和SWIG

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

功能集成
-如何统一使用RakNet,以及如何升级到4.x版

  实用工具

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

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

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

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

TCP Interface
TCP连接的封装类

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

 3D Demos

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

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

 技术设计文档
UML 图
潜在的蓝牙支持
 数据结构

DS_BinarySearchTree.h - Binary search tree, and an AVL balanced binary search tree.
DS_BPlusTree.h - BPlus tree for fast lookup, delete, and insert.
DS_BytePool.h - Returns data blocks at certain size thresholds to reduce memory fragmentation.
DS_ByteQueue.h - A queue specialized for reading and writing bytes.
DS_Heap.h - Heap data structure, includes both minheap and maxheap.
DS_HuffmanEncodingTree.h - Huffman encoding tree, used to find the minimal bitwise representation given a frequency table.
DS_HuffmanEncodingTreeFactory.h - Creates instances of the Huffman encoding tree.
DS_HuffmanEncodingTreeNode.h - Node in the Huffman encoding tree.
DS_LinkedList.h - Standard linked list.
DS_List.h - Dynamic array (sometimes improperly called a vector). Also doubles as a stack.
DS_Map.h - (Associative array) Ordered list with an per-element sort key.
DS_MemoryPool.h - Allocate and free reused instances of a fixed size structure, used to reduce memory fragmentation.
DS_Multilist_h - (Added 4/8/2009) Combines a list, stack, queue, and ordered list into one class with a common interface.
DS_OrderedChannelHeap.h - Maxheap which returns a node based on the relative weight of the node's associated channel. Used for task scheduling with priorities.
DS_OrderedList.h - List ordered by an arbitrary key via quicksort.
DS_Queue.h - Standard queue implemented with an array
DS_QueueLinkedList.h - Standard queue implemented with a linked list
DS_RangeList.h - Stores a list of numerical values, and when the values are sequential, represents them as a range rather than individual elements. Useful when storing many values that are usually sequential.
DS_Table.h - Table with columns and rows, and operations on that table.
DS_Tree.h - Noncyclic graph
DS_WeightedGraph.h - Graph with weighted edges, used for routing via Dijkstra's algorithm
RakString - String implementation, up to 4.5 times faster than std::string

 技术支持

 

FAQ
Debugging Disconnections
Programming Tips
Revision Log
Forum
Email Author
posted @ 2012-09-14 08:25  杂草  阅读(5038)  评论(0编辑  收藏  举报