随笔分类 -  已转移

摘要:https://github.com/tensorflow/tensorflow http://www.eefocus.com/component/374208/r0 阅读全文
posted @ 2018-08-05 12:37 _raindrop
摘要:ZeroMQ 是一个很有个性的项目,它原来是定位为“史上最快消息队列”,所以名字里面有“MQ”两个字母,但是后来逐渐演变发展,慢慢淡化了消息队列的身影,改称为消息内核,或者消息层了。从网络通信的角度看,它处于会话层之上,应用层之下,有了它,你甚至不需要自己写一行的socket函数调用就能完成复杂的网 阅读全文
posted @ 2018-08-05 10:43 _raindrop
摘要:相对于skynet,KBEngine提供了完整的组件方案。 Loginapp 登录验证、注册、Client的接入口。 Baseapp 通过Loginapp分配过来的Client会与Baseapp保持连接,完成客户端与服务端的交互。 定时把Entity的数据保存进数据库。 Baseapp之间会进行互相 阅读全文
posted @ 2018-08-03 23:43 _raindrop
摘要:有哪些开源? KBEngine《暗黑战神》 最后一战 pomelo skynet muduo GoWorld 服务引擎要实现什么? 核心两个问题:消息的pipeline与游戏世界状态维护。 网络: 定义client到server、server到client、server到server的消息流。 我们 阅读全文
posted @ 2018-08-03 10:29 _raindrop
摘要:测试到达目的主机的网络是否连接,但ping无法检查系统端口是否开放 ping www.google.com telnet可以检查某个端口是否开放 telnet ip_addr:port traceroute 是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute 的原理 阅读全文
posted @ 2018-08-02 14:53 _raindrop
摘要:make cmake CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令 阅读全文
posted @ 2018-08-02 10:35 _raindrop
摘要:在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。 epoll通过在Linux内核中申请一个简易的文件系 阅读全文
posted @ 2018-07-31 15:45 _raindrop
摘要:先说个故事 鬼子进村 处理大量的连接的读写,select 是够低效的。因为 kernel 每次都要对 select 传入的一组 socket 号做轮询,这叫鬼子进村策略。一遍遍的询问“鬼子进村了吗?”,“鬼子进村了吗?”... 大量的 cpu 时间都耗了进去。(更过分的是在 windows 上,还有 阅读全文
posted @ 2018-07-24 14:00 _raindrop
摘要:5基础技术知识 10管理方面 技术 多看游戏系统代码,优化代码,多调试 知识+逻辑(深度思考) 架构(选型) 做的更多,做的比安排给你的任务更多。 除了做完这个功能,还将关联的功能全部掌握清楚 ,熟悉更多业务,不管是不是你负责的;熟悉更多代码,不管是不是你写的。 关于读源码 找资料(开发计划和版本历 阅读全文
posted @ 2018-07-07 14:59 _raindrop
摘要:KBEngine是一款开源的MMOG游戏服务端引擎,使用C++编写,用Python脚本即可简单高效的完成任何游戏逻辑(支持热更新)。 KBEngine底层架构被设计为多进程分布式动态负载均衡方案,理论上只需要不断扩展硬件就能够不断增加承载上限,单台机器的承载上限取决于游戏逻辑本身的复杂度。 基于实体 阅读全文
posted @ 2018-07-07 14:53 _raindrop
摘要:skynet中提供了一个简单的计时器实现,可以设置一个超时时间,时间到达后给对应的服务发送消息。 skynet中没有使用signal信号的方式来实现计时器,而是程序自身进行计时并处理计时器事件。另外,skynet中将时间由近及远划分为五个level,在时间复杂度和空间复杂度上达到了平衡。 初始化计时 阅读全文
posted @ 2018-07-05 14:45 _raindrop
摘要:skynet 的 C API 采用异步读写,你可以使用 C 调用,监听一个端口,或发起一个 TCP 连接。但具体的操作结果要等待 skynet 的事件回调。skynet 会把结果以 PTYPE_SOCKET 类型的消息发送给发起请求的服务。(参考skynet_socket.h) 在处理实际业务中,这 阅读全文
posted @ 2018-07-05 13:52 _raindrop
摘要:一些拓扑: https://blog.csdn.net/to_be_better/article/details/56954500 登录服务器 https://github.com/cloudwu/skynet/wiki/LoginServer https://github.com/cloudwu/ 阅读全文
posted @ 2018-07-05 12:48 _raindrop
摘要:服务器引擎 这里 数据库(缓存) 现在比较流行的两种数据库,关系型数据库mysql,sql server和非关系型数据库redis、mongodb。 memcached曾经的优势是可以集群,但是现在redis也可以了。 redis支持更多数据结构,支持数据持久化。所以redis可以看做memcach 阅读全文
posted @ 2018-07-05 12:44 _raindrop
摘要:单节点模式 执行命令:redis-server.exe redis6379.conf 该命令指定了配置文件,不指定的情况下默认读取的配置文件是redis.conf配置文件 主从模式(数据备份) 主节点和从节点使用完全相同的服务器实现, 它们的功能(functionally)也完全一样, 但从节点通常 阅读全文
posted @ 2018-07-03 17:51 _raindrop
摘要:文件根据实现功能的不同,可以分为四部分: 1虚拟机运转的核心功能 lapi.c C语言接口lctype.c C标准库中ctype相关实现ldebug.c Debug接口ldo.c 函数调用以及栈管理lfunc.c 函数原型及闭包管理lgc.c 垃圾回收lmem.c 内存管理接口lobject.c 对 阅读全文
posted @ 2018-07-03 15:09 _raindrop
摘要:当你发布lua时,你或许不想用户看到你的lua源码,更不想用户修改你的lua代码和系统内部的秘密,那就需要用别的方式来发布。 最终的文本文件可以通过lua作者提供的标准发布版本中的程序来执行。这个程序称做luac.exe,把lua文本文件“编译”成二进制的文件。这样就可以让别人更难知道你的游戏是如何 阅读全文
posted @ 2018-07-03 14:36 _raindrop
摘要:在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件。 其实lua在游戏开发中可以作为一个强大的保存、载入游戏数据的工具。 1.载入游戏数据 比如说,现在我有一份表单: data.xls 用什么工具解析这个Excel文件并将数据载入游戏? 我们可以使用Lua来完成这个工作。不过要先将表 阅读全文
posted @ 2018-07-03 14:28 _raindrop
摘要:https://www.cnblogs.com/dimin/p/7838674.html https://blog.csdn.net/nekocode/article/details/7960371 lua与C/C++交互,主要靠lua API和向lua注册好的函数。如下图 注:LuaGlue就是让 阅读全文
posted @ 2018-07-03 11:41 _raindrop
摘要:lua作为一种脚本语言,可以快速地开发游戏的原型。提高游戏的开发效率。 最熟悉不过的就是作为魔兽世界、博德之门、愤怒的小鸟等游戏的脚本语言。 但是,具体来说,lua在游戏中可以做什么呢? 在游戏中,lua可以用来完成下面这些工作: ●编辑游戏的用户界面 ●定义、存储和管理基础游戏数据 ●管理实时游戏 阅读全文
posted @ 2018-07-03 11:01 _raindrop