看过自会理解, Photon Server 常见概念分析.
http://stackoverflow.com/questions/10823915/photon-server-newbie-questions/11653419#11653419
Channel用来支持不同类型的数据请求(eventChannel,positionChannel,itemChannel 各种). 以及发送优先级. Channel id越小发送优先.
opCustom 发送自定义的数据请求.
opRaiseEvent 触发事件.传送到服务器.但不会广播给所有Player
Photon Cloud 是内置了房间模式的服务器代码支持. opJoin Leave 等等. 客户端Api可以看到已经实现了. (底层当然还是 Channel 和 OperationRequest)
要想自己扩展功能, 需要从 opCustom 入手. LitePeer 这种是内置的实现, 支持房间逻辑的交互. LitePeer.opJoin 等等.
要想完整了解. 最好是从Photon Server 入手结合 DotNet Client SDK 以及其它平台的SDK 连起来看. 就很容易理解了. Unity 版本的SDK 为了支持Unity 做了过度的封装. 所以一下子看起来还更困惑. 推荐先去看 DotNet Client SDK. 配合 Lite,LitePeer Balance 的Server部分 就能完整的理解了.
最佳实践方法:
1. 搭建PhotonServer 让自带的演示跑起来. 如果是连接则不需要服务器. 只要在配置里设置好 Appid就行.
2. 修改演示范例.加入自己的功能. 比如: 给 Photon Viking Demo 加入私聊. 加入召唤宠物. 循序渐进.
3. 加入MasterClient逻辑, 加入攻击 伤害 血量同步以及Buff(无敌状态). 改造成PK多人游戏.
推荐参考的资源:
PlayerMaker的 Photon Demo : http://www.hutonggames.com/downloads/PlayMakerPhotonSample.unitypackage
Photon viking Demo ,AngryBots Demo , Bootchamp demo, island demo .
Photon Server 和 Cloud 的关系: PhotonServer 是支持扩展服务器逻辑的.适用游戏类型比较广泛. 不仅是多人游戏. mmo 也是可能的. 但就需要自己租服务器来跑Server了.
而Photon Cloud的定位则是轻量的多人游戏, 服务器不带逻辑,客户端作为MasterClient来实现游戏判定. 开发者不用自己搭建服务器. 各有各自的适用范围. Glu的永恒战士就是基于Cloud来实现的.
这个Photon 和 SmartFox 以及 Unitypark 等都是配合Unity的服务器端解决方案. 多少都有学习成本,都是闭源的.
Photon 带一个 mmo demo. Unity3d客户端部分是基于 isLand 改造的. 支持4.x的话还需要改一些代码. js c#都有不兼容问题毕竟那是2.6版本Unity的项目.
我已经把改动过的可以工作的版本放到 Github上了. 慢慢我再把上面那个练习完成.