通过小宝的卡牌游戏,看开源SCUT服务器运行使用

这几天在看小宝更新的bolg,小宝的通信底层写的真不错,为什么前面写了kbe,firefly的用法,这里又说scut,其实就服务器方面用这些或者网易的柚子,甚至云峰的那个3000行代码的工具功能都差不多,不过,scut有个好处就是提供很完善的代码生成系统,服务端,客户端脚本开发更方便,另外scut已经有几款商业游戏上线,这个是kbe不具备的,firefly本身来源于一款韩国外包的商业游戏,但发布了这么久,人气并不是很高,所以让我们看看scut有哪些优点吧,我们先下载安装,很简单只要直接双击安装就可以了,scut官网教程大篇幅都在讲安装iis和net4.51框架,其实如果不是开发服务器端(就算开发也不一定需要安装,因为替代工具还是有的,不过不能使用官方的代码生成工具了,所以开发的话还是装吧,也不难,如果就想测试asp.net程序,那么可以下载我的整合的集成工具包,下载地址),我这里只是拿个例子运行起来,所以就没安装,这个工具包运行网页还行,如果是开发的话,还是用iis吧

安装完之后我们启动RedisRedis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1] 
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
跟firefly不同的是,scut使用的内存存储系统是redis,不过功能上是一样的,我们不多管,启动数据库,,我们的zerver没有变绿,怎么回事呢?因为zerver集成了redis32位,而我们要使用的是64位所以,我们要先启动scut提供的x64版本,如果先启动zerver会出错,当然如果不是使用zerver的请忽视,直接安装mysql的不需要考虑这些问题。安装一个mysql客户端工具,我这里是用的navicat当然zerver自带的phpmyadmin也一样的效果,不过速度要慢点
我们下载scut开发工具
源码包(官网提供下载),我在网上看过一些小伙伴说安装了scut不能运行官方例子,很多其实就是因为安装包里没有提供这个数据库,我们要在例外的地方下载,直接导入importdb.sql,导入之后这样
我们看官网的例子库都在这里,我们现在要连接数据库,打开配置文件
<?xml version="1.0"?>
<configuration>
  <appSettings>
    <!--基本配置
        Port:监听端口
        Code:产品代码
        ServerId:产品游服代码
        Redis.Host:Redis主机地址
        Redis.Port:Redis主机端口
        Redis.Password:密码
        Redis.Db:数据库位置
    -->
    <add key="Product.Code" value="0"/>
    <add key="Product.ServerId" value="0"/>
    <add key="Game.Port" value="9001"/>
    <add key="Redis.Host" value="127.0.0.1:6379"/>
    <add key="ScriptRelativePath" value="Script"/>
    <add key="CSharpRootPath" value="CsScript"/>
    <add key="LuaRootPath" value="LuaScript"/>
    <add key="Game.Language.TypeName" value="GameServer.CsScript.Locale.SimplifiedLanguage"/>
    <add key="Game.Action.Script.TypeName" value="GameServer.CsScript.Action.Action{0}"/>
    <add key="Script_IsDebug" value="True"/>
    <add key="Lua_Disable" value="True"/>
    
    <!--脚本解密回调配置-->
    <!--<add key="Game.Script.DecodeFunc.TypeName" value="ScutSecurity.ScriptDes,ScutSecurity"/>-->
  </appSettings>
  <connectionStrings>
    <!--<add name="SnsCenter" providerName="SqlDataProvider" connectionString="Data Source=localhost;Database=snscenter;Uid=sa;Pwd=123;Pooling=true;"/>
    <add name="PayCenter" providerName="SqlDataProvider" connectionString="Data Source=localhost;Database=PayDB;Uid=sa;Pwd=123;Pooling=true;"/>
    <add name="ConnData" providerName="SqlDataProvider" connectionString="Data Source=localhost;Database=PHData;Uid=game_user;Pwd=123;"/>-->

    <add name="KaPaiData" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=KaPaiData;Uid=root;Pwd=111111;"/>
    <add name="KaPaiConfig" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=KaPaiConfig;Uid=root;Pwd=111111;"/>
    <add name="KaPaiLog" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=KaPaiLog;Uid=root;Pwd=111111;"/>
    
    <add name="SnsCenter" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=snscenter;Uid=root;Pwd=111111;"/>
    <add name="PayCenter" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=PayDB;Uid=root;Pwd=111111;"/>
    <add name="ConnData" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=PHData;Uid=root;Pwd=111111;"/>
  </connectionStrings>
</configuration>
 <add name="SnsCenter" providerName="MySqlDataProvider" connectionString="Data Source=localhost;Database=snscenter;Uid=root;Pwd=111111;"/>连接数据库,我们需要改的,add name="SnsCenter" ,Database=snscenter;Uid=root;Pwd=111111;数据库名称,用户名,密码,Source=localhost本地的,好了,我们使用小宝卡牌来看效果
好了服务器启动成功了,对了忘了说了,我们运行服务器之前要把我们要运行游戏的服务器端脚本放到这个例子相关的东西,比如如何开发,使用去小宝的博客看吧,小宝还录了免费视频教程,好人啊。百度一下就有了,我们启动客户端看效果载入直接运行
因为我们已经注册了用户,直接点开始游戏
我们看下服务器窗口好了,scut的基本讲解就到这了。
发布了66 篇原创文章 · 获赞 57 · 访问量 24万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览