加载中
Lua 中避免低效解析 TCP 网络数据包体的一种方式(续)

上一篇避免通过拼接字符串作为接收数据的缓冲区,解决办法是通过一个 Lua 模块来获取接收后的完整数据,若没有完整数据则读取 socket ,若还没有完整数据则 sleep 一小会儿,然后再尝试。 了...

Lua 中避免低效解析 TCP 网络数据包体的一种方式

TCP 是流式协议,发送方发送出的是字节流,接收方接收到的也是字节流数据。通常,在应用层都会通过 header + body 在字节流中标识出单个协议包。发送方将原始数据打包成 header + body 。hea...

hb
08/16 18:49
250
游戏中属性值应配置变化量

游戏开发中常见的一种业务逻辑是支持策划配置增加了 xxx 属性 xxx 百分比或减少了 xxx 属性 xxx 百分比。举个例子,当角色进入 A 区域后增加 10% 的攻击,当角色进入 B 区域后减少 %5 的防御...

05/30 23:27
185
时间戳 time since epoch 与时区 timezone 无关

时间戳和时区是两个概念,互不影响。同一时刻在不同时区获取的时间戳是相同的。比如,同一时刻,北京时间(东 8 区)和东京时间(东 9 区)是不同的,东京时间比北京时间快 1 个小时,这里提...

05/05 10:49
692
记一次游戏事故回档操作

工作的项目组的游戏是目前在国内能排上号的网游。说出名字估计都知道了,这里就不提了。前两天版本更新后出了一个事故,一个玩法的数据保存到另一个玩法中,导致另一个玩法的数据被重置了。相...

03/06 22:30
325
Skynet Cluster 简介

Skynet Cluster 简介 Cluster 模块负责 Skynet 节点之间的通信。 Cluster 概述 | --- --- ---> | node1 | | node2 | <-- --- --- | 两个节点之间通信最多会创建 2 条 TCP 链路。如上图......

2019/12/06 14:28
946
C Evaluation Order 求值顺序

// main.c // gcc -g -o main main.c #include <stdlib.h> static int *ptr = NULL; int func(int len, int index) { ptr = malloc(len * sizeof(int)); return index; } int main() { ptr[f...

2019/08/17 16:51
25
C++ 编译 Lua 从而使 Lua 利用 C++ 异常

Lua 源码文件 ldo.c 中有如下说明: LUAI_THROW/LUAI_TRY define how Lua does exception handling. By default, Lua handles errors with exceptions when compiling as C++ code 搜索使用 ...

Lua
2019/08/10 22:08
1.3W
发布使用 IMGui 基于 msys2 平台编写的软件

发布使用 IMGui 基于 msys2 平台编写的软件 最近空闲时间为项目编写一个协议测试工具。由于习惯使用 gcc/g++ 所以在 Windows 10 操作系统上选择 msys2 开发。编程语言是 C/C++ 和 Lua ,界面...

Skynet 服务创建流程

Skynet 服务创建流程 根据设计综述 Skynet 是为了让服务器充分利用多核优势,将不同的业务放在独立的执行环境中处理。 Skynet 核心功能是加载一个 C 模块(动态库),模块用数字 id 标识,作...

2019/07/19 18:37
1.4W
Skynet 进程启动

Skynet 进程启动 初始化配置 skynet 进程启动时需要指定配置文件,启动后读取配置文件中的内容并存储在内存中。配置文件格式是 k = v 且 k 必须是字符串而 v 必须是字符串或者 lua boolean ...

2019/07/19 18:36
879
csapp 习题 - 如何实现异或 exclusive-or

阅读 csapp v3 时,练习题 2.13 很有意思。练习题描述如下。 位设置是对于参数 mask 中每一个为 1 的位,那么参数 x 中相应位则被设置为 1 ;位清除是对于参数 mask 中每一个为 1 的位,那么...

Lua
2019/01/20 23:54
122
Firefox 因为全球服务数据同步丢失问题

之前用 Firefox 时,知道有国际版,国际版和中国版数据不互通。装个中国版就好。然后在不同的电脑和手机设备上,使用同一账号,便可以同步数据。 前几天由于换电脑,重新装了一下 Firefox ,...

2019/01/13 10:38
911
Unity Asset Bundle 角色换装示例 官方例子

《 Unity 官方案例精讲》一书中在第 9 章介绍了角色换装示例与 Asset Bundle 的使用。示例中还展示了如何用 SkinnedMeshRenderer 渲染模型。虽然是好几年的示例了,但其中的换装的一些基本思...

2018/08/26 18:34
1.1K
rz -b 选项传输 excel 文件

工作用的机器是 Windows ,日常开发是在一台 Ubuntu 虚拟机上做服务端开发,就需要在 Windows 和 Ubuntu 上传文件。我之前还是傻的使用 rz 和 sz 传文件,主要是传文本文件,也不频繁。开发中...

2018/05/13 17:46
237
网络协议头部添加自定义字段 be

在之前公司的项目中,就有同事提到在头部类中预留一个 int 类型字段以备紧急情况,当时我不是太能体体会到这种用法。日常开发中就是定义一个继承至头部类的 C# 类,里面添加通信用到的字段,...

2018/04/15 14:55
110
记一次 skynet 中使用 skynet.queue 给消息加锁时的问题

应该大多数 skynet 项目都是以 Lua 作为主开发语言。在使用 Lua 编写 skynet 服务时,基本的执行单元是 coroutine 。当有消息到达使用 Lua 编写的服务时,skynet 都会起一个 coroutine 来处理...

2018/03/24 14:49
4.4K
通过 skynet 学习到的 assert 的使用

assert 用于断言某条件必须成立,否者就会触发断言失败,比如在 C 中进程会退出并打印出行号,而 Lua 中打印出 traceback 。 有时候会听人说要学会使用 assert 。当时并不理解,因为 assert...

2018/03/20 23:41
247
我打 FPS 游戏时的姿势

最近玩的 FPS 游戏就是守望先锋 ow 。ow 和其他传统 FPS 游戏不一样的地方是集合了 moba 和 act 元素。玩起来更吸引人,另一方面,由于是 moba 需要团队配合,所以总是会碰见吭队友,或者自己...

2018/02/21 22:45
1.1K
记一次 svn info 查看文件的 last committed revision 不一致问题

首先呢,这个问题没有找到原因,仅仅写些文字记录一下。加深印象,防止下次还做这种操作。 工作中配置文件是客户端和服务端共用的,采用 svn 进行版本控制。某个需求需要在客户端和服务端记录...

2018/02/20 11:20
212

没有更多内容

加载失败,请刷新页面

返回顶部
顶部