没有Unity3d_服务器三部曲之一

 

最近又得了某大公司,研发三年的项目源码

结果就是刷表工具(客 | 服)都写的很烂,,,,没有最烂,只有更烂,

貌似工具用了 C# 的泛型做配置,结果泛型都给玩坏了(难道现在的程序员都不懂xml,不懂json ???)

真的和Unity 的 ScriptObject 如出一辙,厕所点灯

主要倒不是说工具的代码逻辑怎么样,因为实在就是人家大公司几十人,都是这么用的这个工具,肯定代码是可以的

(但真的很难用)

在心里怀着十万头曹尼玛的心情,去看这份代码

一开始DB.exe死活跑不通

文档又说要DataEditorTool,结果肯定是各种路径跑不通(写这个工具的人都只是在自己电脑开发,只想着自己怎么用)

==========  当然我写的文章也只想着自己看,人不为,很难做创作 ==================================

在尝试多次跑不通后,只能慢慢看代码,编译又很难编译(没文档,不了解结构)

基本的服务器三部曲是:

1)数据

2)GameServer

3)部署 + 集群

 

所以第一步:先把数据搞通

1)写了一个打开并读取vib文件的代码段,了解到服务器有35个服务器配置项(ok,我只会用到第一个)

涉及程序技巧:vs debugger;泛型;数组

        private void btnLoadVib_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            //openFileDialog1.InitialDirectory = "d:\\";
            //openFileDialog1.Filter = "ext files (*.txt)|*.txt|All files(*.*)|*>**";
            //openFileDialog1.FilterIndex = 2;
            //openFileDialog1.RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                ViSealedDB<ServerConfigStruct>.Load(openFileDialog1.FileName, false);
                List<ServerConfigStruct> lst = ViSealedDB<ServerConfigStruct>.ToArray();
                ViDebuger.Note("lst(ServerConfigStruct) count=" + lst.Count);

            }
        }

2)专治各种 路径不通,写DataEditor Tools 这个同学,完全没考虑路径不存在的情况(OK<路径不存在就创建一个吧,而不要直接崩溃)

涉及程序技巧:静态方法;System.IO

string pathFomat = TestView0.VIBDir + ViSealedFile<T>.Name + ".vifmt";
FileHandler.CheckACreateDir(pathFomat);
FileStream fmtw = File.Create(pathFomat);
if (fmtw != null)
{
 ...
public class FileHandler {

    public static void CheckACreateDir(string filePath)
    {
        string dir = Path.GetDirectoryName(filePath);
        if (Directory.Exists(dir) == false)
        {
            Directory.CreateDirectory(dir);
            ViDebuger.Warning("创建目录 " + dir);
        }
    }
}

 

3) 执行DB.exe (服务器服务),则会出现Asset错误

设计程序技巧:黑盒测试,日志系统

错误如下:

xxxx           UseDataBase  false Assert Error:        (其实日志是有详细类名DBApplication,我漏写了)

在DBApplication找到下面代码:

发现少了配置,所以在随便一个配置加上即可:(ServerIdentification)

技巧:蓝色底那行是后加上的(之前的测试,改了ServerName,反复执行DB.exe + 日志,已确定这个.xml配置生效)

4)最终DB.exe服务自动生成数据库表,撒花庆祝一下,(我用的phpstudy套件)

程序技巧:phpstudy,mysql

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值