高性能的网络游戏服务器的设计[转] 说起高性能的网络游戏,有2个典范,1个是暴雪的WOW,另外一个要数腾讯的QQGame了,因为对于MMPRPG的体系接触不深,几乎属于文盲,没有太多的发言权,而自己又是搞休闲游戏开发的所以本文就主要谈谈QQGame了。 前些天通过朋友得到了QQGame的一个系统分析的文档,看完后很是震惊,彻底被QQ的设计所折服了,到底是千万人在线系统经验的拥有者,牛! 通过资料了解到QQGame目前有以
提高IOCP 效率的一些方法,技巧 (来自WINDOWS 网络编程第二版) 1. AcceptEx:BOOLPASCAL FARAcceptEx ( IN SOCKET sListenSocket, IN SOCKET sAcceptSocket, IN PVOID lpOutputBuffer, IN DWORD dwReceiveDataLength, IN DWORD dwLocalAddressLength, IN DWORD dwRe
Active Object -An Object Behavioral Pattern for Concurrent Programming 主动对象模式 (转) 原标题:Active Object -An Object Behavioral Pattern for Concurrent Programming源文地址:http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf译者:cuichaox@gmail.com译者注:1. 对象分为主动对象和被动对象,主动对象内部包含一个线程,可以自动完成动作或改变状态,而
今天看了ACE 中Proactor实现部分的一些代码,做一些总结和分析 ACE 中的Proactor (前摄器) 框架是按照Proactor 模式而实现的一个高效的异步IO 网络并发框架。在Windows 下是完成端口(IOCP), 在linux下是AIO( 如果linux 版本支持). 据说AIO的实现有各种问题,所以目前Proactor的使用者,主要还是集中在Windows上。 Proactor框架在实现时,大量使用了Bridge模式,以实现接口与OS 特性的分离
服务器底层网络框架设计的一些思考 最近准备实现一个底层网络框架, 以供以后开发网络程序时使用。在开发的过程中,慢慢的意识到在框架设计中存在的一些问题。以下是自己的思考。 采用windows 还是 linux. 我选windows, 因为windows 的IOCP资料比较多, 而且提供的支持库,开发环境都比linux 要方便。可以首先在windows 上做一个实现。以后如果有需要的化,再移植到linux上. 只要
一次不成功的汇编优化 最近跟一个同事讨论一个读取bmp图片显示的问题时,他提出想用汇编进行优化。于是我就写了个例子尝试了一下,代码如下: #include #include using namespace std;#define SOURCE_LEN 400000#define DEST_LEN 800000int main(){ char *pBuff = new char[SOURCE_LEN]; /
c/c++ 下使用内嵌汇编(inline assembler) (转自MSDN) Inline AssemblerThe compiler includes a powerful inline assembler. With it, assembly language instructions can be used directly in C and C++ source programs without requiring a separate assembler pr
DEBUG命令详解 (转) Editor:admin Time:2004-3-20 20:15 Read:15481 Score:7 Print Preface:DEBUG是DOS中的一个外部命令......
DirectDraw学习总结 DirectDraw学习总结 最近一段时间,一直在学习DirectDraw. 在这里把自己学习的一些浅浅的体会写出来.因为自己工作中只使用很少的DirectDraw,所以也没有深入研究.基本上是浅尝辄止把. 要学习DirectDraw. 首先要熟悉COM. DirectX利用COM 实现了程序的无缝升级.这是DX一个很大的优点,用户无需对特定版本的DX编写程序.开发出来
vi 使用指南 立志在linux有所建树,就必须要熟悉linux文字编辑利器vi 基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』与『指令列命令模式』三种! · 一般模式:以 vi 处理一个档案的时后,一进入该档案就是一般模式了。在这个模式中,你可以使用『上下左右』按键来移动光标,您可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理您的文件资料
2006 年的计划 2006年已经到来了,在这里, 准备对2006年的学习和工作做一些打算。嘿嘿,把他写出来了,主要是怕自己偷懒,放在这里,有人监督,可能会好很多. 1. 从头到尾阅读一遍于渊的系统, 并写出来笔记与体会与大家分享. 2.阅读基本网络编程的书籍,提高自己在这方面的水平。网络编程是开发中很重要的一个方面,尤其自己现在身处游戏行业中,就尤为显得重要了. 3.
在你的游戏中应用LUA (ZT) (转) 源自OGDEV的HACK的文章,本文转自zx9597446的Blog,欢迎对Lua感兴趣的朋友互相交流, mailto: zx9597446@sina.com 在你的游戏中应用Lua(1):在你的游戏代码中运行解释器 通常,你希望在你的游戏开始的时候读取一些信息,以配置你的游戏,这些信息通常都是放到一个文本文件中,在你的游戏启动的时候,你需要打开这个文件,然后解析字符串,找到所需要的信息。 是
通过例子学习Lua(7) ---- Lua中调用C/C++函数 (转) 1.前言上次偶说到从C/C++中调用Lua的函数, 然后就有朋友问从Lua中如何调用C/C++的函数, 所以偶们这次就来说说这个问题. 首先偶们会在C++中建立一个函数, 然后告知Lua有这个函数, 最后再执行它. 另外, 由于函数不是在Lua中定义的, 所以无法确定函数的正确性, 可能在调用过程中会出错, 因此偶们还会说说Lua出错处理的问题.2.Lua中调用C函数在lua中是以函数指针的形式调
通过例子学习Lua(6) ---- C/C++中用Lua函数(转) 参考英文文档http://tonyandpaige.com/tutorials/lua2.html1.简介偶们这次主要说说怎么由Lua定义函数, 然后在C或者C++中调用. 这里偶们暂不涉及C++的对象问题, 只讨论调用函数的参数, 返回值和全局变量的使用.2.这里偶们在e12.lua里先定义一个简单的add(), x,y为加法的两个参数, return 直接返回相加后的结果.例e12.lua--
通过例子学习Lua(5) ---- Lua与C交互入门 (转) 1.简介Lua与C/C++结合是很紧密的, Lua与C++交互是建立在Lua与C的基础上的, 所以偶先从Lua与C讲起.正如第一讲所说, 运行Lua程序或者说调用Lua主要有两种方式:* 通过命令行执行"Lua"命令* 通过Lua的C库虽然此前偶们一直用第一种方式, 但偶要告诉你, 通过Lua的C库执行才是游戏中常用的方式.2.Lua的C库Lua的C库可以做为Shared Library调用, 但
通过例子学习Lua(4) -- 函数的调用 (转) 1.不定参数例e07.lua-- Functions can take a -- variable number of -- arguments. function funky_print (...) for i=1, arg.n do print("FuNkY: " .. arg) end end funky_print("one", "two")运行结果FuNkY: one
通过例子学习Lua(3) ---- Lua数据结构 (转) 1.简介Lua语言只有一种基本数据结构, 那就是table, 所有其他数据结构如数组啦,类啦, 都可以由table实现.2.table的下标例e05.lua-- Arrays myData = {} myData[0] = “foo” myData[1] = 42 -- Hash tables myData[“bar”] = “baz” -- Iterate through the -- stru
通过例子学习Lua(2) --- Lua流程控制 (转) 1. 函数的使用以下程序演示了如何在Lua中使用函数, 及局部变量例e02.lua-- functions function pythagorean(a, b) local c2 = a^2 + b^2 return sqrt(c2) end print(pythagorean(3,4))运行结果5程序说明在Lua中函数的定义格式为:function 函数名(参数)...end与Pasca
通过例子学习Lua_1(转) 本文作者是OGDEV的HACK达人通过例子学习Lua(1) ---- Hello World1.前言偶最近在学习Lua, 所以写出心得和大家共享, 争取一天写一篇, 嘿嘿.才开始学所以内容很浅, 希望大家包涵.Lua是一种完全免费的脚本语言, 可以和C/C++语言紧密结合,它的官方网站在http://www.lua.org./ 在网站上可以下载到lua的源码, 没有可执行版本, 不过不用担心, 因