inspoy的杂七杂八

我的技术分享和生活记录

inspoy的杂七杂八

之前那篇cocos转unity的系列算是坑了(撒花

前言

自己是在用unity去尝试做游戏的,中间也遇到了很多很多各种各样的问题,也都在努力去解决。

到目前为止也取得了很明显的成果:主流程都是通的,现在允许多个玩家同时在线,在同一个场景中移动,转向,释放技能;服务器也能妥当的同步各个玩家的信息给所有人。

不过问题也越来越多,由于现在网络通讯机制的问题,总是会出现莫名其妙的网络断开,而且断开的只是客户端接收响应的通道,客户端依然能够发给服务端消息, 服务端也可以收到,当然也正常地返回结果给客户端,然而这里客户端就收不到了。

另外一个情况是:现在的同步机制是客户端各自模拟逻辑和运动,服务端只是负责同步各自的位置,某个玩家把自己的位置告知服务端,服务端再广播给所有其他玩家。这样就会有个问题,由于网络延迟的存在,不同玩家看到的场面局势是不一样的,而且现在也没有对技能释放出来的抛出物进行同步,那些火球的攻击判定也是客户端自行判断的,而且不同客户端的判断结果很有可能不一样,这已经很难再进行优化了,要改的话必须改成由服务端计算所有移动判定逻辑,客户端只负责发送指令和显示服务端推送的位置信息,自己移动时客户端不做移动,仅当传送给服务端的指令信息被处理,服务端推送给客户端位置变化的

阅读全文 »

接上篇,继续介绍数据类型

其他数据类型

集合Set

集合包含一堆不重复的字符串,内部实现采用哈希表,增删改查的时间复杂度都是O(1)

  1. SADD key value... - 向一个集合中添加一个或多个元素,如果集合key不存在,则新建一个集合,如果集合中已经存在指定的值,这个值则会被忽略,返回成功插入集合元素的个数,如果key已经存在但是不是集合类型,则会返回一个错误WRONGTYPE
  2. SCARD key - 返回集合中元素的个数
  3. SMEMBERS key - 返回集合中的所有元素
  4. SDIFF key1 [key2...] - 返回集合key1与key2的差集,key2可以有多个
  5. SINTER key1 [key2..] - 和上面一条类似,返回所有参数集合的交集
  6. SUNION key [key2...] - 同上,返回所有参数集合的并集,另外,这三个命令还有对应的一组,即SDIFFSTORE dest key1 [key2...],以此类推,在命令后面加STORE。此时参数也要增加一个dest到第一个参数的位置,作用为把后面若干个集合key1…的差集/交集/并集储存到第一个参数指定的集合dest中,并返回dest中的元素个数
  7. SREM key value1... - 移除集合中一个或多个元素,不存在的元素会被忽略,最后返回成功移除的元素的个数
阅读全文 »

Redis安装

启动Redis

服务端

1
$ redis-server

客户端

1
$ redis-cli

远程连接时(远程主机的防火墙要配置好,否则会拒绝连接)

1
$ redis-cli -h $HOST_NAME -p $PORT -a $PASSWORD
阅读全文 »

现在macOS自带的SVN版本是1.9的了,然而项目使用的版本还是1.7的,所以为了在命令行中使用svn,就必须另外安装1.7版本的svn
首先尝试homebrew,结果发现homebrew只提供了1.8的版本

阅读全文 »

是时候拿Unity练练手做个小游戏玩儿了,顺便也多少接触一下服务端的东西

计划:做一个大乱斗的游戏,要多玩家实时对战。目标平台PC,开发工具:客户端Unity + 服务端Node.js

阅读全文 »

接上篇,发现一个神奇的现象,List<object>的存储速度比List<T>的速度要快

性能测试准备

既然要做性能测试,那我们肯定需要一个工具来统计代码块运行时间。C#里有现成的时间函数供我们使用,一般都是这么写:

1
2
3
4
5
var time1 = System.DateTime.Now;
// 会花掉很多时间的代码
var time2 = System.DateTime.Now;
var diff = time2.Subtract(time1);
Console.WriteLine("Time Cost: {0}ms", diff.TotalMilliseconds);
阅读全文 »

C#的foreach

和C++11的类似,好像C++就是反向吸收C#/Java特性的吧。嘛,这个不重要
写法是差不多的的,C++是

1
for (T item : container) { }

C#是

1
foreach (T item in container) { }
阅读全文 »

大家2017年新年快乐呀~(然而好像并没有观众233)

差不多半年没有写博客了,主要还是太懒orz

不过既然已经是新的一年了,总得有点新的计划是吧~

阅读全文 »

这几天突然发现博客访问速度特别慢,左下角一直在提示正在等待useso.com的响应。。。

useco.com是360的前端公共库,WordPress默认使用Google的公共字体库,因为在国内由于某些众所周知原因,访问Google字体库的速度非常慢,我就把这个换成了360的提供的镜像,以提高博客的访问速度。

阅读全文 »
0%