2010年8月7号---SGS游戏开发之多玩家房间创建。
对于SGS游戏多房间开发的东西,昨天和今天进行了学习和处理,完成了房间的创建和多玩家共玩的开发。但是只是基础性的开发,通过Channel绑定到GameRoom,玩家进入后系统自动为其分配房间,每个房间现在只是先两个玩家,玩家进入之后,系统自动根据进入房间的玩家,为其分配房间,当然这里是可以设置的,玩家可以选择自己的房间,初期先这样儿弄:具体简单实现如下:
对于房间的设置:在GameRoom中可以保存Channel对象和一个Map对象,Channel对象保存该房间所使用的通道,Map对象保存玩家的sessionId以及相关的一些信息。这样,对于Channel的建立来说,建立ChannelListener和Channel;建立房间之后,将房间名字绑定到相应的房间对象上去,以便用户访问。
在主程序的initialize()方法中可以建立Channel和相应的房间,并对房间进行名字字符串Binding()设置。然后在loggin()方法中,根据房间满员情况将用户添加到合适的房间中去。在继承自ClientSessionListener的客户端监听程序中,一旦用户反馈准备好了的信息,就根据用户加入的房间,将用户已准备就绪的情况发送给GameRoom对象。GameRoom根据用户已准备情况,决定房间的游戏是否开始执行。
这样就建立了基本的多房间玩家游戏程序的实现。其实,主要的思想就是根据Channel的特质来进行开发。很方便的原因也就是因为SGS或者说RedDwarf就是一款游戏服务端程序开发平台。
Publish/subscribe Channels
As motioned in Lesson1,in addition to client/server communication,the PDS also supports public/subscribe channels. Client/Server communication always has the server and one client on either end of the message; in contrast, the channel system has N participating clients who can send and receive messages. Clients are made participants of the channel by being joined to it by the server.A client may be joined to many channels at onece.
Server applications are in control of channels. They are the ones who create the channel,add user to it,or remove users from it.Client can send request to the server to be added or removed from channels,and can request that a message be sent to the channel.server application can choose to listen packets sent on the channel to decide if they should be modified or discarded.
Joining and Leavinga Channel
As mentioned above,adding and removing users from the channel is under the control of the server application.How then does a client know what chnnels it is a part of and how to communicate on then?The answer is another callback on the SimpleClientListener interface:joinedChannel.The joinedChannel callback receives a ClientChannel object as its one parameter. The client application should save this object,since this is its interface for sending message on the channel.
Below is an implemention of joinedChannel from our seecond sample client application,HelloChannelClient.This client adds a conbo box to the left of the input field in HelloUserClient so you can select if the input is send directly to the server or to one of the channels the server has joined you to.You can use the server application called HelloChannels to test this client.This server application creats two channels,Foo and Bar,and automatically joins all users to them.
public ClientChannelListener joinedChannel(ClientChannel channel){
String channelName = channel.getName();
channelByName.put(channelName,channel);
appendOutput("Joined to channel "+channelName);
c hannelSelectorModel.addElement(channelName);
return new HelloChannelListener();
}
分享到:
相关推荐
LU-SGS,全称为Lower-Upper Symmetric Gauss-Seidel(下上对称高斯-赛德尔),是一种在计算流体动力学(CFD)中常用的数值稳定算法,用于求解线性系统的迭代方法。该算法结合了下三角矩阵和上三角矩阵的高斯-赛德尔...
"sgs-server-dist"文件是针对游戏服务器开发的一个软件包,主要包含了Darkstar项目的核心组件和服务端相关的资源。Darkstar是一个开源的游戏服务器平台,专为大规模多人在线游戏(MMO)设计,它提供了高性能、可扩展...
标题中的"CF-Root-SGS3-v6.0.zip_CF-Root-SGS3-V6.0_ROOT"指的是一款针对三星Galaxy S3 (SGS3) 设备的root工具包,版本为6.0。这个工具包的主要目的是使用户能够获取设备的root权限。在Android操作系统中,root权限...
文档"Q-PDT-02-016 A 1 KBBP-125N产品技术规格书SGS.docx"是关于KBBP-125N复合增亮膜的技术规格说明书,主要涵盖了该产品的设计目的、适用范围、命名规则、产品结构、物理性能、光学性能以及信赖性测试等多个方面。...
SGS-AS3 是一款基于ActionScript 3 (AS3) 开发的两人对战游戏,主题为经典的“俄罗斯方块”(Teris)。在AS3这种强大的编程语言支持下,游戏提供了丰富的交互性和高性能的图形渲染。以下是这个游戏可能涉及的一些...
"darkstar"可能是一个与之配套的服务器组件,或者是一个特定的游戏服务器实现,它可能基于类似的设计理念,为sgs-client提供了接口和通信协议。 "sgs-client-0.10.1"这个文件名可能表示这是sgs-client的0.10.1版本...
EMC培训-SGS,EMC设计资料
- **测试期间**:2010年10月8日至2010年10月15日 - **测试机构**:SGS Taiwan Ltd. (台湾检验科技股份有限公司) - **地址**:新竹县竹北市台元街38号8楼 - **电话**:(886-2)2299-3939 - **传真**:(886-2)2299-3237...
事务处理在多玩家在线游戏中非常重要,因为它确保了数据的一致性和安全性。`TransactionCoordinatorImpl`是`TransactionCoordinator`接口的具体实现类,负责管理事务的提交、回滚以及并发控制等操作。 #### 5. Data...
本项目基于 RuoYi-Vue-Plus 进行二次开发扩展Flowable工作流功能,支持在线表单设计和丰富的工作流程设计能力。本项目主要针对Flowable工作流场景开发,脚手架功能同步更新 RuoYi-Vue-Plus 项目。采用MIT开源协议,...
2010年以后,SGS加快了并购进程,从2010年到2020年累计收购了138家公司,并购支出高达20.58亿瑞士法郎。 SGS的业务发展得益于其不断的产品结构优化和业务线的整合调整。以农产品起家的SGS,通过大力收购和拓展服务...
一个小软件,可提供简单的比对功能,谢谢。
"技术培训--MSDS和IMDS及SGS" MSDS(Material Safety Data Sheet)是一份化学品安全技术说明书,提供了化学物质及其制品的安全、健康和环境保护方面的各种信息。MSDS的主要内容包括化学品的理化特性、健康危害、...
SGS-51A型PLC可编程控制实验及单片机实验开发系统综合实验装置 一、概述 SGS-51A型PLC可编程控制实验及单片机实验开发系统综合实验装置是一种集PLC可编程控制实验和单片机实验开发于一体的综合实验装置。该系统...
PACE由PRTM公司在1986年提出,强调产品开发是一个可管理、可改进的过程,而非依赖偶然的灵感。其核心理念包括: - **决策流程驱动**:产品开发是一个系统性的过程,可以通过有效的管理策略优化。 - **结构化...
《太阳游戏服务器(SGS)初探:源码与工具解析》 在IT行业中,游戏服务器的构建是一项至关重要的任务,它直接决定了游戏的稳定性和玩家体验。"sun game server (sgs)",即太阳游戏服务器,是一个专门针对游戏开发和...
SGS-53A网络型PLC可编程控制及单片机实验开发系统综合实验装置是一种集成化的实验设备,旨在帮助学生和科研人员深入理解和掌握PLC和单片机的原理与应用。该装置涵盖了51/96/8088/8086等多种CPU的软硬件实验,具备...
开启手机u盘模式的工具
SGS(Société Générale de Surveillance S.A.)是一家全球知名的检验、验证、测试和认证机构,致力于确保产品和服务符合国际标准和客户要求。SGS申请表是向SGS提交化学测试服务请求的重要文档,它包含了各种必要...
SGS接口协议是3GPP(Third Generation Partnership Project)通信标准中的一个重要组成部分,它定义了移动网络中的MME(Mobility Management Entity)和MSC(Mobile Switching Center)之间的交互方式。MME是LTE网络...