标题：photon引擎
photon引擎的概述
游戏引擎是指一些已编写好的可编辑游戏系统或者一些互交式实时图像应用程序的核心组件，是游戏软件的主程序，photon引擎比起我们叫熟悉的虚幻3、CryENGINE 3等游戏引擎，这款引擎相对较为陌生，这里为大家简单描述一下这款引擎的特点。
Photon英文原意是指光量子，在这里是指九城代理的服务端网络游戏引擎，比起其他服务器端引擎它能支持更多的传输协议和编程端口，如下图所示：
  Photon包含两个部分。一部分是一个socket服务器，另一部分是其针对各个平台编写的sdk。这些平台包括了:android, Flash, iPhone, iPad, .NET., Unity 3D, Windows,甚至还有silverlight。这也意味着Photon的发布也包括两个部分，Client SDK Release和Server SDK Update。 目前Server SDK的版本是v2.4.5，而Client SDK的版本是v6.2.0。
什么是SDK？SDK就是指可以为第三方开发者提供特定的软件包、软件框架、硬件平台、操作系统等创建应用软件开发工具的集合，并且SDK还能简单的为某个程序设计语言提供应用程序接口API的一些文件。
photon引擎的特性
Photon引擎是一款实时的Socket服务器和开发框架，快速、使用方便、容易扩展。
服务端架构在windows系统平台上，采用C#语言编写。
客户端SDK提供了多种平台的开发API，包括DotNet、Unity3D、C/C++以及ObjC等。
Photon引擎的体系特性如下：
  1、架构于Windows平台下原生态性能高度优化的系统
2、经过证明适用于众多的商业游戏
3、由Exit Games提供迅捷到位的支持
4、服务器端游戏逻辑采用C#语言实现
5、支持广泛的框架设计，能帮助您处理常见的工作内容
6、简单易扩展的远程方法调用
7、采用纤程处理消息机制避免采用线程导致的问题
8、提供基于room游戏的基本应用Lite，方便原型开发
9、部署简单，支持云端服务
10、充分利用网络带宽
11、采用小尺寸的二进制协议，可根据需要使用有序可靠的UDP
12、直接支持常见的客户端平台，提供相同的工作流程
13、封装每个客户端平台的网络层模块
14、通信跨平台
15、使用hashtable发送数据，无需担心数据序列化反序列化
photon引擎的相关术语
Ack内部使用的命令，主要功能是用于实现可靠UDP。
Actor进入房间的玩家叫“Actor”。Actor在房间内有个编号（ActorNumber），编号仅在当前房间有效。
ApplicationApplication指的是游戏逻辑应用，由C#语言书写同时由Photon引擎负责启动运行。所有的应用均从Application继承。
Binaries FolderBinariesFolder指的是针对不同平台编译出的Photon目录，以“bin_”为前缀命名目录，且放置在服务端SDK的“deploy”目录中。
Build script即MsBuild项目的批处理文件，实现发布应用时候的编译程序拷贝文件等功能。请关注VS生成菜单下的清理项目选项。
Business logic即游戏逻辑，运行在Photon引擎中，负责处理operation和event。
Channel在Photon引擎中channel主要用于分割通信用，在同一channel中所有的operation和event都是顺序执行的。
CommandCommands主要用于在eNet协议层上实现数据传输、建立连接关闭连接等功能。当然您无需书写什么命令，在这里提出来，仅仅是为了加深您对Photon引擎的理解。
Connect在客户端向photon引擎发送请求之前在客户端和服务器之间必须要建立连接才行。
Custom Operation任何非客户端API内的或新的服务器端的（不在Lite应用中）客户端操作。
DashboardDashboard主要负责收集计数器信息，同时在web站点上生成图标以便于监控。
Deploy Folder即发布目录，在服务端SDK中，deploy目录包含了Photon引擎运行的所有需要的文件：Photon核心文件和应用程序文件。
Device通常指的是移动终端，或者其他可以运行客户端程序的设备。
Disconnect即服务器和客户端断开操作。通常发生在客户端断开连接或连接超时时候；服务器也可以根据需要断开和客户端之间的连接。
EventEvent是异步发送给客户端的事件消息。可以由操作（operations，如sideeffect）触发或引发（这是operation的主要目的）。事件由事件代码（Eventcode）标识，事件来源则是ActorNumber。
EvCode即EventCode简称，标识事件的类型以及事件所附带的信息。
Game根据上下文，可能是单机的也可能是多个玩家之间有轮次的比赛。Lite则是后者，玩家可以加入到房间内相互游戏。
Latency即请求回应时间，服务端和客户端可能有所不同。
Lite即Lite应用，您入门的基本游戏逻辑。
Lobby大厅，即“Lite大厅”或“游戏房间”。
Lobby Roomlobby room是大厅应用的一个特殊的房间。它不关注玩家进出游戏房等操作，而是列出游戏列表供玩家选择。
Log FilesPhoton作为服务程序运行，没有图形化界面（GUI），因此需要有日志记录。目前有两套日志：一套是应用的日志，日志文件存于deploy/log目录中；另外是Photon引擎自身的日志，记录到deploy/bin_*/log目录中。
Matchmaking负责查找游戏建立比赛。Lite应用无此功能，只能根据名称加入游戏房间。Lite Lobby则是列出了所有游戏房清单出来便于查找。
NNet即eNet RUDP之前的叫法，主要由“eNet”和“Neutron”两个单词混合而来。
Operation对在Photon服务器端上远程方法调用的另外一种叫法。客户端使用operation可以在服务器上做任何事情，甚至可以发送event给其他客户端。
OpCode“Operation Code”的简称。byte类型，用于触发服务器端操作，客户端获取操作返回结果，用opCodes判断返回动作类型。
Peer即连接到Photon引擎的客户端，另一方面Photon服务器端也是Peer，且只有一个。
Photon Core指的是Photon引擎的核心，由c++语言实现，负责处理连接以及eNet协议。
PhotonControlPhoton的管理工具，打开PhotonControl.exe文件即可开启一个托盘应用。
PhotonServer.configPhoton引擎的配置文件，主要用于IP、应用以及性能检测设置。以前叫PhotonSocketServer.xml，目前刚刚改为PhotonSocketServer.config。
Policy File即证书文件，由证书应用负责发送crossdomain.xml。像Unity Webplayer、Flash以及Silverlight等web游戏平台在连接服务器之前都需要得到授权才可以运行。
Reliable即可靠命令，要么到达目的地要么超时断开。可靠命令在信道中是顺序传输的，同时若有丢包情况，则会重复发送直到确认成功收到。
ReturnCode每个Operation返回的初步结果，用一个字节的值表示，可以通过ReturnCode检验操作成功与否：RC_OK == 0 表示操作成功，否则操作失败。
Room即一组玩家或客户端的集合，可以用于游戏、聊天大厅或者其他方面。Room是Lite框架中的一个类。
RUDP即可靠UDP：在UDP协议基础上实现的可靠数据传输协议。
Socket Server即Photon引擎的另外一种说法。
Timeout使用eNet方式，客户端和服务器端都监视对方消息是否可靠，如果检测到长时间没有回应，则会断开连接。
Unreliable不可靠的命令则不需要对方回应，它顺序发送数据，可能会有数据丢失，数据序列有“漏洞”。
photon引擎5分钟快速入门
启动Photon非常容易，直接运行SDK中附带的程序即可。
下面的视频主要演示了如何快速启动Photon，这是必不可少的步骤。
观看视频
下载
下面是Photon Server SDK下载链接：
SDK下载
选择最新版本的“ExitGames-Photon-Server-SDK”下载。选择适当版本将Photon服务器SDK解压到任意位置，进入“deploy”目录选择适合您当前环境的版本：
1.bin_Win32：32位Windows Vista以上版本 
2.bin_x64：64位Windows Vista以上版本 
3.bin_Win32_xp：32位Windows XP或者2003 
4.bin_Win64_xp：64位Windows XP或者2003
SDK的deploy目录里面包含了运行Photon需要所有文件，其他目录则是文档目录、类库目录以及源码的目录。Photon控制台（Photon Control）运行Photon管理工具：PhotonControl.exe。这是一个托盘应用，程序启动后会创建一个托盘图标。
  Photon Control上的“Run as application”菜单项
点击右下角的托盘图标，单击“Photon”下面的子菜单“Start as Application”即可开启Photon服务。
启动Photon服务大概会花几秒钟时间，这主要取决于配置的应用情况，部署的应用越多启动就会越慢。运行Testclient测试客户端服务端的SDK提供了一个压力测试工具（TestClient），模拟多个客户端连接，可以点击“Photon”下的“Testclient”菜单开启。
Testclient是一个命令行工具，可以模拟25个游戏每个游戏4个玩家共100个玩家在线的测试。
  Testclient正常开启的界面
另外，也可以下载.NET版本的Photon客户端SDK。里面有个“Realtime Demo”可执行程序，配置连接本地服务器，同时打开两个客户端，每个客户端都可以看到另外一端的显示状态变化。