欢迎进入济南计算机学会官方网站!
济南计算机学会
优秀论文
优秀论文
优秀论文
优秀论文 您的位置:首页>>优秀论文
用Smartfoxserver技术开发实时性强的网页游戏的优势
2011-06-14 314 返回列表

高照,刘一先,陈涛,刘俊杰,闫慧


摘要:SmartFoxServer 是专门为Adobe Flash设计的跨平台socket服务器,让开发者高效地开发多人在线应用及游戏. 该服务器主要用来创建多玩家游戏。并提供强大的制作工具,各种回合制游戏和实时性游戏都可以胜任。 SmartFoxServer 支持的播放器从Flash player6版到最新的Flash Player 9,并提供丰富的Actionscript 1.0, 2.0 and 3.0 APIs,同时也支持 Flex Builder 2 and 3. 该产品带有详细的帮助文档, 大约 35 个带源代码的示例 还有强大的远程管理工具。首先,我们住需要正确安装SmartFoxServer然后配置好server文件夹内的config文件,就可以很方便的把我们制作的网页游戏项目加载到该服务器上,利用该服务器的各种扩展端口实现游戏中的创建不同人物的房间以及相互可见和高效的交互性。


关键字:socket服务器,实时性,多玩家游戏,扩展端口


0.引言


随着二维网页游戏在因特网上的普及,基于B/S模式的游戏仍然有着很高的市场占有率,因为这类游戏操作简单,灵活多样,具有很好的实时性和互动性。但是是否有一个稳定的服务器做后台,在游戏中实现及时的互动性是一款网络游戏成功与否的重要评价标准,对于游戏的开发者来说选择一种合适的游戏开发工具就等于游戏成功了一半,而对于SmartFoxServer做服务器来开发游戏是一个很明智的选择,对于专业版的SmartFoxServer可以允许无限多个用户同时在线,同时来玩各种回合制和实时的游戏。SmartFoxServer就象一个黑匣子,我们不必知道开发多人flash游戏的每个细节,SmartFoxServer已经为我们设计好了很多模块,我们就不必自己去开发去完善,通过SmartFoxServer,我们就可以很清楚的看到多人flash游戏的结构模式,有了这个结构的认识,我们就可以用fms,red5等来开发自己的合适的模式。相对于其他的服务器来讲,还是SmartFoxServer要好一些,因为SmartFoxServer端有专门的技术人员在完善。我们就可以专注于游戏开发。SmartFoxServer(SFS)的有以下特点:


   1 客户端API,面向AS1.0 ,AS2.0 ,AS3.0


   支持flashPlayer6~9, SFS 1.4版本支持 flashMX,SFS的最新版本,支持Flash MX2004, Flash 8,Flash CS5 and Flex Builder 2 。


   2 公聊与私聊消息发送


   可以对房间里的所有用户发送公聊消息;也可以对某一用户发私聊消息。您也可以对另一个房间的用户发送私聊消息。


   3 服务器端变量,房间变量,及用户变量


   允许在服务器端储存变量,并在用户之间共享。房间变量,储存当前房间的信息,用户变量储存用户的信息。


   4 发送和接受复杂的AS数据对象


   您可以向客户端发送数据对象(简单的或复杂的),该数据对象在客户端来说,等同于AS数据对象。


   5 自动踢出无效用户和断开无效连接


   SFS会自动地断开超时未进行操作的用户,和没有使用 SFS协议的连接,减少网络资源浪费。


   6 动态地创建房间


   房间可以在config.xml文件中定义,也可以实时创建。


   7 支持外语显示


   可以使用自己的语言字体


   8 可操作性日志


   可以按照您自己的要求设置日志。


   9 管理员及监控员信息


   允许发送管理员及监控员信息。


   10 支持监控员操作


   监控员可以踢出用户,禁止某用户。


   11 不良用语控制


   对于使用不良用语的用户进行警告和踢出操作。


   12 ip限制


   可以设置同一IP的,最大连接数。


   13 保存永久性的用户黑名单


   14 保存永久性的用户好友列表


   15 游戏观看者


   游戏房间支持游戏观察者,但是观察者不能与游戏交互。当有玩家离开游戏时,观察者才有机会进入游戏成为游戏玩家。


   16 管理员是基于网页的控制管理


   17 扩展服务器端(SFS PRO版)


   开发者可以使用Java, Actionscrīpt, Python等语言来,扩展服务器端。


   18 数据库管理(SFS PRO版)


   允许对主要的RDBMS(如:MySQL, MS SQL, Access, Oracle, DB2 等)进行连接和交互。


   19 原始数据协议,压缩实时游戏数据。


   可用来提高,网络数据传输效率。(SFS PRO版)


   20 邮件发送


1. SmartFoxServer服务器的配置以及扩展


1、要安装pro类型版本,此类型版本支持的功能较多,我们安装的是SmartFoxServerPRO_1.6.6


2、需要java虚拟机支持,最好安装jre-6u7-windows-i586-p-s.exe,把Java\jre1.6.0_07文件夹下的所有文件复制,覆盖到SmartFoxServerPRO_1.6.6\jre文件夹下,再把Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\chs\sqljdbc.jar复制到了文件夹下SmartFoxServerPRO_1.6.6\jre\lib\ext


3、启动SFS,在SFS的安装目录server文件下双击start.bat,如果启动成功,最后会显示... is runing...,反之有相关错误提示,一般错误是由于server/config.xml配置文件引起的,


4、所有SFS的一个参数设置全部在server/config.xml中,其中<MaxUserIdleTime>表示多长时间断开自动连接,所以此值设置成00000000,表示一直连接直到主动断开;SFS中分区(Zone)与房间(Room)的概念,每个区可以设置任何个房间,可以在 config.xml设置默认的区与房间,也可以动态程序创建。每个区可以有不同的数据库连接,在<Zone>中的<DatabaseManager>中设置,如


<DatabaseManager active="true">


                   <Driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</Driver>


                            <ConnectionString>jdbc:sqlserver://localhost:1433;DatabaseName=CapeofGoodHopeDB</ConnectionString>


 


                   <UserName>sa</UserName>


                   <Password>123456</Password>


 


                   <TestSQL><![CDATA[SELECT COUNT(*) From userinf]]></TestSQL>


                   <MaxActive>10</MaxActive>


                   <MaxIdle>10</MaxIdle>


                   <OnExhaustedPool>fail</OnExhaustedPool>


                   <BlockTime>5000</BlockTime>


              </DatabaseManager>


 


5,在SFS安装目录下Examples文件中是它自身的实例,推荐大家看两个实例:Examples\AS3 \SmartFoxTris_AS3(FLEX项目)学习它如何连接SFS,Examples\AS2\12_pro_dbExtension(FLA)学习它如何扩展数据库操作.(连接数据库参考SFS连接SQL设置)


 


6、SFS服务端的扩展可以有多种方式,java as3等,如用as3扩展数据操作,过程是:1、按格式(具体格式可以参考server/sfsExtensions中的现有文件 dbExtension.as)写用as文件*.as,把此文件*.as放到server/sfsExtensions中,2、在config.xml中的<Zone>设置扩展,如


<Extensions>


                   <extension name="getuserinf"  className="getuserinf.as" type="script" />


                   <extension name="working"  className="working.as" type="script" />


                   <extension name="question"  className="question.as" type="script" />


              </Extensions>


其中name,是在之后的客户端程序及服务端程序都会用到。


 


7.SFS安装目录下的Admin文件下有AdminTool.swf,它是SFS的后台管理软件,可以查看当前的服务器端的所有信息和一些操作,如房间中的玩家列表,可以踢人,给区或房间等发系统信息等等。


8.在开发客户端程序时需要把SFS安装目录下的Flash API\Actionscript 3.0中的com与it文件夹复制到项目中来(现在我们是开发as3程序所以在引入Actionscript 3.0下的 com与it)


9.通过odbc连接数据库:


先到控制面板-》管理工具-》数据源-》添加-》选择SQL Server->名称:sfsTest-》选择使用ID与SQL Server验证-》登录ID/密码:登录数据的ID/密码(sa/1);-》选中更改默认数据库,选择你要连接的数据库-》完成


再在config.xml中设置如下:


 


<DatabaseManager active="true">


                <Driver>sun.jdbc.odbc.JdbcOdbcDriver</Driver>


                <ConnectionString>jdbc:odbc:sfsTest</ConnectionString>


 


                <UserName>sa</UserName>


                <Password>1</Password>


                <TestSQL><![CDATA[SELECT COUNT(*) FROM contacts]]></TestSQL>


                <MaxActive>10</MaxActive>


                <MaxIdle>10</MaxIdle>


                <OnExhaustedPool>fail</OnExhaustedPool>


                <BlockTime>5000</BlockTime>


            </DatabaseManager>


2、游戏的开发流程


Step one:设计出游戏大体框架,确定人物角色,美工设计出人物的角色


Step two:细化游戏的每个模块,制定开发进度计划,开发前台客户端(此过程美工根据程序员需要设计不同的用户界面)


Step three:编程人员负责服务器的配置针对服务器提供的端口开发相应的客户端程序以及扩展Smartfoxserver服务器的功能,设计并建立游戏内的数据库表。


Step four:测试阶段,对于每一个模块做好后先进行局部的测试;当整个项目完成进行全局的测试,将项目发布到服务器上进行公测,发现项目中的bug并修改。


Step five:编写产品的使用说明,打包完成项目。


3、结论


当我们配置好Smartfoxserver环境后,剩余的工作我们只需要集中精力来设计游戏的逻辑性,交互性,和界面的美观性,负责代码编写的程序员只需要负责将规划好的详细设计用代码来实现,而美工人员则根据代码人员的要求来设计出具有独特风格的用户界面。开发一款游戏,尤其是用flash制作网页游戏,往往使得程序员和美工人员因为无法相互的理解而导致开发进度缓慢,开发资本相对较高,原因就在于代码的编写人员和美工人员缺乏相互的理解,没有统一性,在游戏开发过程中导致偏离了预先的设计思路,因而,只有我们用一种能够将两者工作联系在一起的工具来开发网页游戏,使得编程人员可以和美工共同修改用户界面的美观性的合理布局,同时也使得美工人员对于游戏的开发有了更深入的认识,更有利于对以后模块的开发。而这两者的工作均可以在Flash CS5这款软件中同时处理实现,极大地提高了双方的工作效率和相互之间的理解沟通,所以是一种比较高效的游戏开发模式。


参考文献:


[1] Flash ActionScript  3.0编程技术教程        清华大学出版社


[2]ActionScript 3.0  权威指南                 电子工业出版社


[3]Flash ActionScript 3.0从入门到精通          清华大学出版社


[4]Flash与后台                                            清华大学出版社


[5]Flash互动游戏制作范例导航                清华大学出版社


[6]ActionScript编程精髓                      清华大学出版社


作者简介:


作者简介:        高照(男)滨州学院 学生


                       刘一先(男)滨州学院 学生


                            陈涛(男)滨州学院 学生


                 刘俊杰(男)滨州学院 学生


                 闫慧(女)滨州学院 学生


通讯地址:山东省滨州市滨州学院计算机科学技术系 高照 (邮编:256600)


二维码
济南计算机学会
电话:0531-88391234
地址:山东省济南市历城区舜华路1500号