- 博客(15)
- 收藏
- 关注
原创 游戏服务器之内存数据库redis客户端应用
redis的介绍文章可以在其他地方参考些。这里只是拿游戏服务器的应用为例,介绍下redis c++客户端的一些应用。存储一个装备到redis。void CRWRedisClientOperator::add_equip_to_redis(CGamePlayer* player,int pos,CBagItem* bagItem){if(NULL == player){
2014-01-31 12:51:44 4465 1
原创 Redis源码学习-Master&Slave的命令交互
0. 写在前面 Version Redis2.2.2 Redis中可以支持主从结构,本文主要从master和slave的心跳机制出发(PING),分析redis的命令行交互。 在Redis中,server为每个连接建立一个redisClient数据对象,来描述对应的连接。其中,redisClient为命令交互设置了缓冲区。query
2014-01-31 12:21:21 1082
原创 游戏服务器之事件注册
dispatchEvent线程内的模块间通信为的是让各个模块之间容易以事件触发的形式来进行通信。逻辑引擎里含有逻辑事件分派器CLogicEventDispatcher m_EventDispatcher;//逻辑事件分派器注册消息事件调用(在逻辑引擎构造时)m_EventDispatcher.addEventListener(leAddItem, &CPlayerQuest
2014-01-24 16:08:47 1120
原创 游戏服务器之ai
ai是游戏的一个重要组成部分,指的是玩家与npc之间的相互活动。设计上:npc ai流程:逻辑线程主循环-->场景管理器遍历->场景循环-->遍历所有npc-->npc循环-->ai状态机切换和ai状态处理ai主要功能包括正常状态:ai状态切换和ai状态处理死亡状态:死亡状态机
2014-01-23 23:08:16 4175
原创 vector at 函数 和[]操作符
[]操作符的源码reference operator[](size_type __n) { return *(begin() + __n); }at函数的源码reference at(size_type __n) {_M_range_check(__n);return (*this)[__n]; }
2014-01-19 18:35:48 12359
原创 游戏服务器之分线处理
游戏服务器之分线处理处理的是游戏服务器在多场景服务器和每个场景服务器下分多场景对象的情况下的角色跳线和进入分线场景的应用的处理。设计上:(1)配置分线信息到静态表,服务器启动时加载并创建场景对象。(2)每生产一个场景对象(包括分线的场景对象)就注册到社会关系服务器。(3)进入场景或者跳线时,则查询场景服务器中的分线信息,然后选择在当前服务器下切换场景对象还是切换场景服务器。
2014-01-19 15:43:05 4177
原创 Lua程序数据类型及其使用
声明下:以下是别人文章中的内容。Robert Z2010-1初阶数据类型函数表简单对象的实现简单继承数据类型八种基本类型:数值(number)内部以double表示字符串(string)总是以零结尾,但可以包含任意字符(包括零),因此并不等价于C字符串,而是其超集。布尔(boolean)只有“true”或者
2014-01-18 16:59:09 1418
原创 游戏服务器之数据收发缓存
游戏服务器 的一些数据接收处理,处理的是接收和发送的数据包队列,以客户端发送到逻辑服务器和逻辑服务器发送到数据服务器为例,来讨论一下底层的一些对网络数据接收的处理。(代码是以一个手游服务器的代码为例)服务器之间的连接,这里以逻辑服务器连接数据服务器为例: //这个是逻辑服务器作为客户端连接到数据服务器的自定义socket连接类的例行函数void CDBMana
2014-01-16 22:41:35 2474
转载 gcc优化选项
gcc默认提供了5级优化选项的集合:-O0:无优化(默认)-O和-O1:使用能减少目标文件大小以及执行时间并且不会使编译时间明显增加的优化.在编译大型程序的时候会显著增加编译时内存的使用.-O2: 包含-O1的优化并增加了不需要在目标文件大小和执行速度上进行折衷的优化.编译器不执行循环展开以及函数内联.此选项将增加编译时间和目标文件的执行性能.-Os:专门优化目标文
2014-01-10 15:16:14 1514
原创 linux 多线程的线程控制和线程通信
1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。 大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时clone
2014-01-10 00:48:31 2097
原创 游戏服务器之跨平台线程的实现
一个跨windows和linux平台的线程基类的实现。需要实现的在头文件的接口如下实现的功能就是一些线程的基本功能(部分功能需要的话还需要拓展,在子类实现):例程、挂起、恢复、终止、线程句柄、线程id.不同平台也会有些差异,主要是使用上,对于线程id、互斥量、条件变量的使用。只有windows有线程句柄,windows的线程事件通知和等待是通过线程句柄,linux使用条件变量。线程
2014-01-06 11:31:56 1212
原创 游戏服务器之文件数据库
游戏服务器之文件数据库用于数据服务器的存取档案。设计思路:1、业务线程数据服务器进程的业务线程有3个:1)本地数据文件写线程2)mysql存取线程3)备份文件压缩线程其中,本地数据文件写线程的业务是负责文件数据库的写入。2、文件结构数据库文件类型分为:1)索引文件2)数据文件(1)索引文件索引文件的结构包括:文件头描述(FDBHeader...
2014-01-05 18:27:36 3641
原创 游戏服务器之被动连接线程池
这个是分析的是一个网游服务器的服务器基类。但网络底层道理基本都一样 ,就是看你怎么应用而已。volatile bool shutdown_server = false;//多线程使用的标识关闭网络服务/** * \description CTRL + C等信号的处理函数,结束程序 * \param signum 信号编号 */static void ctrlcHan
2014-01-03 22:13:15 1658
原创 游戏服务器之lua脚本系统
现在做游戏的较多用脚本 ,可以热加载代码。脚本系统的目的是方便c++和lua之间的相互调用,实现c++和lua的 交互。
2014-01-01 17:47:23 6606
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人