自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何设计游戏中的道具功能(三)

对于道具的交换,我原则上是鼓励使用另一个容器去实现。所有要交易的道具可以放在交易盒子中进行交换。#ifndef _ITEMDEALBOX_H#define _ITEMDEALBOX_H#include "Bag.h"//交易盒子//add by freeeyes#define MAX_DEALBOX_COUNT

2014-11-04 09:22:15 2293

原创 如何设计游戏中的道具功能(二)

下面来看看具体的实现代码吧。#ifndef _OBJECT_H#define _OBJECT_H//所有物品的基类//add by freeeyes#include "ObjectDefine.h"//此宏用于memcopy边界检查#define CHECK_SCOPE(a,b) if(a

2014-11-04 09:20:14 3208 2

原创 如何设计游戏中道具功能(一)

acejoy重新换机房花了一些时间,这一段时间无法登陆。现在终于搞好了。把春节前抽空写的一点东西补上来。以前写过一些游戏的道具设计,沉淀了几年,一直没有时间回头整理,春节前几日,好多人都回家了,工作也不这么紧张了。于是抽时间写了一个道具功能。放在这里,供大家有兴趣玩赏。这里是抛砖引玉,代码未必是最优的,但是提供大家一个思路。本以为几日就能完成,毕竟还是小看它了,因为综合了自己以前的

2014-11-04 09:19:04 11582

原创 类似ngnix的多进程监听用例

多进程监听适合于短连接,且连接间无交集的应用。前两天简单写了一个,在这里保存一下。#include #include #include #include #include #include #include #include #include #include #include   #i

2014-11-04 09:17:01 732

原创 如何设计属于自己的游戏服务器(二)

很多游戏都在花费大篇幅讲解网络模型,其实,这些对于你而言,完全不必关心,现有的模型一大把。就比如PSS,你用它就可以忽略网络IO模型,直接负责处理到达的数据和如何回应就行了。那么,我们来说说游戏服务器的一些细节。以端游为例,现在的端游可以说各种花哨,各种副本,公会战,任务,锻造,跑商等等等等。。系统繁多。但是请静下心来,拨开那些层层迷雾。其实游戏服务器没什么神秘的,就几个专业的算法

2014-11-04 09:14:20 1145

原创 如何设计属于自己的游戏服务器(一)

最近一直在做开源服务器的优化以及新功能的添加,不止一次有人在群里问我,你的这个PSS做游戏服务器怎么样?确实,我也考虑过这个问题。无论自己的水平如何,好歹也在网络游戏服务器开发上走过8个年头了,从当年台湾第一的游戏橘子,到后来的自主创新的硅谷,到后来的搜狐,后来从搜狐出来又进入创业公司。一步步的走来,很想写的什么。最痛彻心扉的失败的游戏经历过,最激情的成功的游戏,海量玩家涌入的通宵也疯

2014-11-04 09:13:53 3852

原创 如何做一个日志跟踪的程序维护脚本

最近由于业务需要,需要写一个自动监控程序的脚本。这里的自动监控有点特殊,因为是别的程序,我的判定依据是这个程序的日志输出如果终止了,就会重启进程。那么如何判断日志输出终止呢,直接比较日志最新日期和当前时间是否一致(服务的日志写的比较紧密,基本1秒钟几百条)即可。于是花了10分钟写了一个简单的,配合crontab运行。代码如下,在这里记录一下。strYear=

2014-11-04 09:12:08 509

原创 如何用ACE来实现一个windows Service

好久没来写技术文章,归结原因依旧是很忙。有时间就多写一些吧。最近有朋友在我的开源服务器上做了一个windows服务版本,挺有趣,于是我想把这个功能和我的服务器做一个整合,一开始并不顺利,原因是自己对windows服务的流程不熟悉。走了一些弯路,在这里记录下来,供大家参考。其实windows下的服务和Linux下的服务大相径庭,linux下的步骤大概在7步,实际上一个function即可

2014-11-04 09:10:27 859

原创 Linux后台进程挂起通用做法

最近看了一些Twitter的一些开源项目,吸收到了很多好的想法。其实老外似乎不是很喜欢C++,C的底层比较多。不过我觉得倒是无所谓,所谓的C坑少,大多数是因为以对象的方法设计了过程式代码。毕竟,这个世界,并不是只有对象存在的方式,合理的搭配,才是能发挥最强的开发方式,还是那句话,代码不重要,重要的是想法。比如,抠出一个很通用的进程后台挂起方法,一个函数搞定,一般情况下不需要改动这里的代码,

2014-11-04 09:09:30 1306

原创 带有自动检测进程的Linux程序

最近经常写一些需要自我维护且能自动启动的程序。当然,最简单的方法是用一个shell去搞定,但是这个shell太粗俗了,如果我一个程序启动有7个进程,其中一个挂了,我就不得不重启7个所有的进程,这显然是不能让我满意的。于是开发了一个小接口,通用代码,实现对当前程序所有进程的监控,时刻监控当前程序下的所有进程,如果有挂了的,立刻重启当前进程,其他进程不动,最大程度减少损失。于是,于是,这个

2014-11-04 09:08:35 617

原创 多级缓冲体系的构建(基于PSS)

由于业务需要,最近开始实现多级缓冲的数据体系。因为是多台服务器的集群,所以,一开始考虑的是使用memcached。但是实际上,测试结果不是很尽如人意。这本身并不是memcached的问题,而是业务场景的问题。我的业务是:每时每刻都有成千上万的GPS定位数据到达服务器,用于分析,比如,比较是否进出各种区域(圆形,矩形和多边形),是否超速,是否按照路线行驶,疲劳驾驶时间,累计驾驶时间,休息

2014-11-04 09:07:47 953

原创 工作需要,Linux下自动FTP备份并上传备份服务器的脚本

#!/bin/sh. ${HOME}/.bash_profile#备份src目录DATE=`date +%Y%m%d`FileName=/m2myw/src_bak${DATE}.gzFtpFileName=src_bak${DATE}.gztar zcvf ${FileName} /m2myw/srccd /

2014-11-04 09:06:57 683

原创 懒人用宏替换大量case语句的方法

比较懒,又不想代码失去基本的优雅,于是写了这么一个玩意儿。#define MESSAGE_FUNCTION_BEGIN(x) switch(x) { #define MESSAGE_FUNCTION(x,y) case x: { y(x); break; }#define MESSAGE_FUNCTION_END }void Do_1(int

2014-11-04 09:05:55 1183

原创 关于大量短链的内核参数优化

客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。从网上找了解决办法:执行命令修改如下2个内核参数  sysctl -w ne

2014-11-04 09:04:47 505

原创 中间件thirft的Linux部署与运用

前一段时间一直在想一个问题,一般的web服务器是如何和当前我的C++服务器进行通讯的。当然方法有很多,比如我现在正值使用的gsoap,对于远程web主机来说,我只要提供一个内网的IP,它们就可以像调用webServer那样直接调用。但是也遇到过几起因为gsoap组件出现的诡异问题,最奇怪的是,机房服务器有几次存储挂掉居然是因为goap崩溃了?虽然系统管理员给我的日志以及解释很站不住脚。

2014-11-04 09:02:32 647

原创 把自己在acejoy上的文章备份一下

把自己在acejoy上的文章在这里备份一下,很多东西还是很有趣的。

2011-06-30 09:57:00 852

原创 关于MRu算法的实现研究

这两个月家里事情比较多,公司里负责写战斗和任务模块,身体也不是很好,导致自己在这里的时间所余无几,ICE的文章和我的开源服务器现在都处于暂停的状态。不过我并不想荒废这里,我会继续写下去。最近在群里看有朋友讨论了mru算法,再看ICE里面,有一种类似mru的组件,很有兴趣的看了一下,发现ICE里面的代码貌似只提供了一个框架算法框架,扔东西和加载东西完全凭借自己的算法去实现。想到自己也要用到这样的类,

2011-06-30 09:55:00 2201

原创 内存池设计研究与应用

今天在群里看见有人在讨论内存池的问题,呵呵,想到自己也写过一些内存池,在这里抛砖引玉。其实内存池的作用大家也知道,一般是解决大量的new和delete频繁操作引起的内存碎片,效率是一方面,另外长时间后的安全性也是一个问题。曾经看过《C++应用程序性能优化》里面的内存池结构,也看过ACE自己的自增式内存池结构,感觉每个都有自己的优点。但是大体思路都是一致的,那就是一次new出一大

2011-06-30 09:54:00 1198

原创 Reactor和Proactor模式下带有自动重连机制的客户端实现

最近终于有点时间,趁着重写服务器重连部分,重新写了一个支持链路重连机制的客户端模块。先说Reactor的,Reactor自动重连比较简单,因为是同步的。为了实现以上功能,首先要添加一个管理类(CClientReConnectManager),管理所有已经连接和还没有连接的对象。然后添加一个单元类(CReactorClientInfo),这个单元类负责管理指定链接对象的信息。CClientReCon

2011-06-30 09:53:00 1070

原创 多级缓冲的服务器数据服务机制实现(二)

昨天,写了一篇关于多级缓冲服务的文章。那么今天,我们就来点实际的代码,完成以上的所有功能吧。按照昨天的思路,我需要两个程序,一个是和客户端通讯的程序,这个程序我们姑且认为它就是游戏服务器,那么,与之对应的,还有一个专门负责和后来存储介质通讯的服务进程。既然要做这道菜,先看看我们需要点什么佐料。(1)一个共享内存的类,这个类提供给我们与共享内存交互的功能,对外的接口需要,获得一个

2011-06-30 09:51:00 1316 1

原创 多级缓冲的服务器数据服务机制实现(一)

很早就想写一篇这样的文章,可是第一工作较忙,第二,想用自己的开源服务器作为蓝本实现。由于自己前一段时间较忙,再加上自己也懒了一下,决定在这里补上,提供给大家参考。作为我将写出的"网络游戏服务器核心服务开发"的一部分(等我慢慢原创出来),希望通过这些文章,你可以大概了解以及学会如何开发一个高效的游戏服务器体系,并成组合在胸,其实游戏服务器做到极致就是简洁高效,减少复杂,这也是我开发的信条之一,如果你

2011-06-30 09:50:00 1385 5

原创 MongoDB研究和实践

最近NoSQL炒的如火如荼,最近在为公司搞一个类似邮件的信息系统。BOSS需要大量用户用手机通过这个信息系统进行交流,并且还必须能实时查询。因为我的系统采用了ICE方式部署,可以有效的分解逻辑部分,于是在寻找一种能够配合分布式存储模式的数据存储模式。我的需求是,一种基于KV结构的信息系统,key永远是用户ID,而Value我需要是一个数据结构,并支持我对这个结构的修改和增删。最后经过多方比较,我决

2011-06-30 09:48:00 909

原创 Lua与C++的逻辑舞步

以前写过一篇Lua的基础文章,属于基础的技术普及贴,具体请参阅精华区。以下的文章,希望你能稍微了解一些Lua的基础知识,再来阅读更有益处。在网上,很多人都在说Lua适合做游戏,但是怎么做?说的却知之甚少,更多的是长篇累牍的基础贴。脚本与C++的结合,如何能达到较高的效率?什么样的数据适合Lua去表现?什么样的数据适合C++去处理?怎么利用两者的关系?在这里我给出一种解决方法。很多人说,你可以把C+

2011-06-30 09:46:00 1743 6

代码行数统计器,可以统计一个工程下的代码行数。

这是一个2005的工程,可以统计你的工程下的代码行数,压缩包内有编译好的,你也可以自己编译。写了一个很简单的,目前支持统计.h和.cpp(如果想添加.hpp, .m文件,看看我的代码,加上很简单的。) 在Bin文件夹下有一个Config.INI的文件夹,修改一下自己要统计的路径就好了。 如果要编译工程的话,最好设置工作路径为..\Bin,否则可能找不到配置文件。

2009-07-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除