![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
游戏开发
lurenceGu
c/c++ 游戏服务器开发
展开
-
Winsock 完成端口模型简介
摘自《Networking Programming for Microsoft Windows》第八章“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求原创 2010-01-21 10:48:00 · 553 阅读 · 0 评论 -
关于多核的发展对网络游戏设计影响的一些思考
早在几年前,Herb sutter就发表了《免费午餐已经结束,软件历史性的向并发靠拢》一文,引起了业内很大的反应,现在双核早已普及,09年应该是国内普及4核的一年。Erlang这种老古董也因为多核的发展而逐渐热起来,网上关于普通程序员是否需要掌握多核编程技术也有很多争论,不论大家转载 2011-07-18 00:19:12 · 744 阅读 · 0 评论 -
3D引擎架构
Introduction (简介)让咱们谈谈你如何撰写一份提供优雅性能的3D引擎。你的引擎需要提供的包括:曲面(curved surfaces)、动态光线(dynamic lighting)、体雾(volumetric fog)、镜面(mirrors)、入口(portals)、天空体(skyboxes)、节点阴影(vertex shaders)、粒子系统(particle systems)、静转载 2012-02-22 21:00:59 · 580 阅读 · 0 评论 -
游戏服务器的架构设计
游戏服务器的设计是一项颇有挑战性的工作,游戏服务器的发展也由以前的单服结构转变为多服机构,甚至出现了bigworld引擎的分布式解决方案,最近了解到Unreal的服务器解决方案atlas也是基于集群的方式。负载均衡是一个很复杂的课题,这里暂不谈bigworld和atlas的这类服务器的设计,更多的是基于功能和场景划分服务器结构。首先说一下思路,服务器划分基于以下原则:1:分离游戏中占用转载 2012-02-14 17:13:51 · 1106 阅读 · 0 评论 -
使用Direct3D渲染2D图素
> > 使用Direct3D渲染2D图素 2001-09-22 中国游戏开发者.CN 图片及源代码请登陆下面网站: 合作翻译: 中国游戏开发者.CN – mays http://mays.6to23.com 游戏制作天地 – wonyee(rocks_lee) http://wonyee.top263.net/index转载 2012-04-28 01:09:09 · 5649 阅读 · 0 评论 -
天龙八部服务器端共享内存的设计(1/3)
一、服务器构架一个天龙八部游戏区,主要服务器部署情况如下图所示:实际部署可能有所不同。区角色数据库可以安装到Machine4,那么一个区有5台物理机器。LoginServer和WorldServer、CharacterDB、BillingServer有连接。WorldServer和各个GameServer有连接。ShareMemory和CharacterDB有连接。一台物理转载 2012-05-12 15:48:13 · 9319 阅读 · 0 评论 -
天龙八部服务器端共享内存的设计(3/3)
2.GameServer的消息响应如下:UINTWGRetUserDataHandler::Execute(WGRetUserData*pPacket,Player*pPlayer )//这么大的数据包是通过网络发过来的pGamePlayer->InitHuman(pPacket->GetUserData(),UDR_USERDATA,pPacket->转载 2012-05-12 15:50:11 · 3551 阅读 · 0 评论 -
天龙八部的BillingServer
从字面上看,Billing是计费的,应该处理玩家在线时间或者包月之类。但是天龙八部是免费游戏,不需要算时间来计费。从代码中看,BillingServer也比较简单,它有一个连接到Web服务器,并监听一个端口,接受一些客户端的连接。从该服务器处理的协议包上看,BillingServer接受LoginServer和WorldServer的连接。BillingServer处理的主要协议包有:转载 2012-05-12 15:51:10 · 5662 阅读 · 0 评论 -
天龙八部服务器端Lua脚本系统
一、Lua脚本功能接口1. LuaInterface.h/.cpp声明和实现LuaInterface。LuaInterface成员如下://脚本引擎FoxLuaScriptmLua ;//注册器LuaCFuncRegistermFuncRegister;//场景关联Scene*mOwner;//已经读取的脚本表IDTablem_Scrip转载 2012-05-12 15:43:33 · 12110 阅读 · 0 评论 -
天龙八部服务器端共享内存的设计(2/3)
六、样例分析——玩家角色数据的存储和共享服务器端玩家角色对于的类型是classObj_Human,里面有角色数据库存储接口的定义:protected://存放所有关于Obj_Human的、从数据库里读取的信息HumanDBm_DB;class HumanDB中拥有内存共享对象指针,以及角色需要存储的数据定义。private://共享内存相关数据Human转载 2012-05-12 15:49:15 · 3899 阅读 · 1 评论 -
epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且转载 2012-10-15 11:41:08 · 802 阅读 · 0 评论 -
百度 互联网-游戏
<!--div {font-size:12px; font-family:arial}.baidu {font-size:14px; line-height:24px; font-family:arial}a, a:link {color:#0000cc}.baidu span {color:#6f6f6f; font-size:12px}a.m原创 2012-12-17 00:48:45 · 622 阅读 · 0 评论 -
A*
http://blog.csdn.net/txiejun/article/details/7438024转载 2012-12-17 00:56:13 · 622 阅读 · 0 评论 -
游戏就像世界
游戏就像世界by AKara 2010-06-24 @ http://blog.csdn.net/akara @ akarachen(at)gmail.com @weibo.com/akaras 上星期,一位朋友送了套从教堂领的圣经.新约给我。还有证明神存在的一本书。想读圣经缘起于这位策划朋友在我们一起做过的游戏中写过一句NPC对话: "凡事包容,凡事相信, 凡转载 2012-12-31 11:04:00 · 851 阅读 · 0 评论 -
[书摘]游戏开发核心技术-剧本和角色创造
[书摘]游戏开发核心技术-剧本和角色创造by AKara 2010-07-02 @ http://blog.csdn.net/akara @ akarachen(at)gmail.com @weibo.com/akaras 以下内容均精简化的摘抄自: > by Marianne Krawczyk & Jeannie Novak > 姚晓光转载 2012-12-31 10:57:19 · 1972 阅读 · 0 评论 -
[原创]龙之谷服务器构架结构设计实现分析
[原创]龙之谷服务器构架结构设计实现分析by AKara 2010-07-24 @ http://blog.csdn.net/akara @ akarachen(at)gmail.com @weibo.com/akaras 由于朋友介绍,周末陆续玩了两天 龙之谷(http://dn.sdo.com)。 如果一个网络动作游戏可以打10分,那截止现在,我至少给它9分左右的高分。转载 2012-12-31 10:58:14 · 3618 阅读 · 0 评论 -
2D 游戏引擎 全纪录
--------------------Allegro.cc - Mainhttp://www.allegro.cc/老牌子了,和SDL同时是很经典两个EG开发组件,最近貌似在和PY进行联合?ClanLib - ClanLib Game SDKhttp://www.clanlib.org/CLANLIB是以前听过最复杂最丰富的SDK,看看链接http://www.c转载 2014-07-22 11:46:43 · 1685 阅读 · 0 评论 -
自动寻路 穿交路点算法(线段相交)
<br />#include <Windows.h><br />#include <iostream><br />using namespace std;<br /><br />#pragma comment( lib,"winmm.lib")<br />/*<br />struct point{ <br /> int x; <br /> int y; <br />}; <br />struct v{ <br /> point start; <br /> point end; <br />}; <br />原创 2010-06-23 09:31:00 · 939 阅读 · 0 评论 -
a*寻路
<br />#include <list><br />#include <math.h><br />#include <map><br />#include "iostream"<br />using namespace std;<br /> <br /><br />// 坐标点<br />typedef struct _point<br />{<br /> int timelist[1000];<br /> bool isWall;<br /> int x;<br /> int y;<br /> int原创 2010-07-14 02:08:00 · 619 阅读 · 0 评论 -
torque 碰撞检测盒
bool SceneObject::collideBox(const Point3F &start, const Point3F &end, RayInfo *info){ const F32 * pStart = (const F32*)start; const F32 * pEnd = (const F32*)end; const F32 * pMin = (const F32*)原创 2010-03-25 18:52:00 · 646 阅读 · 0 评论 -
一个C++游戏框架开源项目部分源码(仅供分享)
//接口定义//同步对象接口interface IThreadLock{ //锁定函数 virtual void Lock()=NULL; //解锁函数 virtual void UnLock()=NULL;};//线程接口interface IServiceThread{ //状态判断 virtual bool IsRuning()=NULL; //启动线程 virtual bool原创 2009-12-10 10:16:00 · 7924 阅读 · 3 评论 -
C/C++内存操作经典源码(仅供分享)
//计算数组维数#define CountArray(Array) (sizeof(Array)/sizeof(Array[0]))//计算字符长度#define CountString(String) ((UINT)((lstrlen(String)+1)*sizeof(TCHAR)))//安全删除指针#define SafeDelete(pData) { try { if(pData原创 2009-12-10 10:20:00 · 1985 阅读 · 0 评论 -
游戏开发流程和部分分工
游戏开发流程和部分分工 流程:调研 -- 开发 -- 测试 -- 运营(我们公司的情况分析) 公司类型介绍:游戏开发公司、游戏运营公司、游戏开发运营公司开发部门构成:策划(灵魂)8-10人 主策划、执行策划、脚本策划、文案策划、关卡策划、数值策划、界面策划程序(骨肉)8-10人 主程、客户端引擎、服务器端引擎、逻辑程序员、3D程序、AI程序、物理转载 2009-12-23 10:06:00 · 1582 阅读 · 0 评论 -
3D游戏的数学基础
第1章 向量 1.1 向量的性质 1.2 点积 1.3 叉积 1.4 向量空间 1.5 本章小结习题 第2章 矩阵 2.1 矩阵的性质 2.2 线性方程组 2.3 逆矩阵 2.4 行列式 2.5 特征值与特征向量 2.6 对角化 2.7 本章小结习题 第3章 变换 3.1 通用变换 3.1.1 正交矩阵 3.1.2 手向性 3.2 缩放变换 3.3 旋转变换 3.3.1 绕任意轴旋转 3.4 齐次转载 2009-12-23 10:31:00 · 689 阅读 · 0 评论 -
实现MFC扩展DLL中导出类和对话框
如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。一、创建MFC扩展DLL步骤:运行Visual Studio 6.0->File->New...->Projects; 选择Mfc AppWizard(dll),在右边Project原创 2010-03-08 10:40:00 · 778 阅读 · 0 评论 -
MD2文件的读取及三维动画显示
摘要 本文介绍了运用OpenGL,通过读取MD2文件开发复杂三维动画的方法,从而实现OpenGL与其它软件相结合创建复杂场景的能力,为快速开发复杂三维动画程序提供了捷径,并给出了一个实例。关键词 开放图形库; 文件格式;三维建模 1 前言OpenGL被严格定义为“一种到图形硬件的软件接口”。从本质上说,它是一个完全可移植并且速度很快的3D图形和建模库。转载 2010-03-12 11:03:00 · 4672 阅读 · 0 评论 -
转贴:网络游戏封包基础 作者不明
要想在修改游戏中做到百战百胜,是需要相当丰富的计算机知识的。有很多计算机高手就是从玩游戏,修改游戏中,逐步 对计算机产生浓厚的兴趣,逐步成长起来的。不要在羡慕别人能够做到的,因为别人能够做的你也能够!我相信你们看了本教程后,会对游戏有一个全新的认识,呵呵,因为我是个好老师!(别拿鸡蛋砸我呀,救命啊!#¥%……*) 不过要想从修改游戏中学到知识,增加自己的计算机水平,可不能只是转载 2010-01-05 13:45:00 · 1790 阅读 · 0 评论 -
简单游戏服务器客服端搭建
客户机: Login()// 登入模块{ 初始化游戏数据; 获取用户输入的用户和密码; 与服务器创建网络连接; 发送至服务器进行用户验证; ... 等待服务器确认消息; ... 获得服务器反馈的登入消息; if( 成立 ) 进入游戏; else 提示用户登入错误并重新接受用户登入;}Game()// 游戏循环部分{ 绘制游戏场景、人物以及其它元素; 获取用户操作输入; 将用户的操作发转载 2010-01-05 13:48:00 · 11087 阅读 · 1 评论 -
项目前述
来HP快3个月了,对于一个c++程序员来说。在大公司做自己不拿手的东西有时候的确很别扭, 其实在之前那家公司自己就做过这个游戏的Demo,只不过因为种种原因后来没有继续做下去,一个游戏项目设计开发都自己做的确有点费时间,尤其在编码过程中和界面设计过程中往往要花我好几天时间去做,不过感觉是越做越有激情有成就感,上次这个项目也就做了个游戏Demo出来,后来还把项目搞掉了,现在又得重来,原创 2010-01-08 10:46:00 · 852 阅读 · 0 评论 -
项目架构
由于csdn上传相片功能关闭所以原本想把架构图和数据库手机贴出来的看来要延期了,不过开发进度还在在继续的,等上传相片功能好了以后吧部分设计一哈贴出来一起参考。原创 2010-01-14 09:48:00 · 625 阅读 · 0 评论 -
开发版本控制
软件版本控制需要明确的概念软件版本控制指的是所有能自行运行的系统或者子系统的版本控制。 项目版本的确立需要整个项目小组共同决定。 项目版本的版本号组成大致有三部分组成:主版本号+次版本号+改动号 主版本号的变更由项目有重大突破或者结构出现了变更的情况下出现。 次版本号由修复bug或者小的变动使用。(一般是2位的数字) 改动号是用于每天项目更新后的标记。一般采用当日Year+month+day来原创 2010-03-25 15:43:00 · 558 阅读 · 0 评论 -
torque引擎内核 线程 pool
//-----------------------------------------------------------------------------// Torque Game Engine Advanced// Copyright (C) GarageGames.com, Inc.//---------------------------------------------------原创 2010-03-25 15:45:00 · 1091 阅读 · 0 评论 -
标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这原创 2010-03-25 16:53:00 · 454 阅读 · 0 评论 -
directx数学基础
向量(也叫矢量,英文叫vector) 向量就是包含大小(长度)和方向的一个量。向量有2维的,也有3维甚至4维的。在DX的所有结构体中,有一个结构体是用来表示3维向量的,它就是D3DVECTOR,这个结构体很简单,只有三个成员:x、y、z。一般来说,如果不涉及到向量运算的话,用这个结构体来定义一个向量就可以了。我们可以它来表示方向以及顶点在3D世界中的位置等。如果你要对那些向量进行一些运算的话转载 2010-03-26 11:30:00 · 830 阅读 · 0 评论 -
Torque Script入门教程
一. 基本语法不同1. 字符串的比较. C++中可以通过重载运算符实现比较,Torque Script则直接用$=和!$=进行比较,或者通过脚本内置函数strcmp进行比较. 2. 变量表示脚本中没有类型(实际上都是c++的字符串),即转载 2010-03-26 11:33:00 · 856 阅读 · 0 评论 -
torque 网络部分(二)
Network Ghosts and Scoping网络复制和范围The NetObject class is a derivative of SimObject that can replicate (ghost) itself across a network connection. All world object classes are subclassed from NetObject转载 2010-03-26 11:49:00 · 684 阅读 · 0 评论 -
HGE的中文显示解决方案 .
最近在自己借鉴hge写一个2d游戏引擎,无意中看到中文字体的简单解决方案,先记下来备忘。HGE本身并不支持中文的显示,因此我使用由 微妙的平衡 大神提供的解决方案.大神提供的代码本来包含gfxfont.h和gfxfont.cpp文件,只需要将这两个文件添加到工程中即可使用.但是我实在太懒,为了避免每次都添加两个文件到工程中去,于是我擅自将cpp的代码全部移到了.h文件中转载 2014-07-30 17:30:41 · 1584 阅读 · 0 评论