游戏开发
文章平均质量分 63
红火吖
网络游戏的架构设计,服务器程序设计,以及服务器安全,数据库架构等
展开
-
Lua的require小结
在游戏开发中会经常使用到lua作为游戏逻辑层的脚本语言,各种优势就不说了,虽然平时用的比较多,但对lua语言本身和内部的一些实现并不是很了解,让我们先从lua的require入手来一探require的各种用法吧。require其实类似与C/C++中的#include,就是加载一个指定名称的模块进来,该模块可以来自于lua,也可能来自于C/C++,在lua虚拟机启动时,默认会给我们预先加载好一些模块,保存在package.loaded中,我们可以实际打印一波看看:for k, v in pairs(原创 2022-01-05 14:09:05 · 8502 阅读 · 0 评论 -
skynet lua操作 mysql 带有返回参数的存储过程
skynet/test/testmysql.lua源码测试用例里面没有带操作mysql存储过程返回参数的例子,不知道如何处理更好,这个问题我今天研究了大半天????,下载了mysql-server源代码https://github.com/mysql/mysql-server,看了libmysql实现https://github.com/mysql/mysql-server/tree/8.0/libmysql,以及存储过程相关的操作,结合skynet 本身的sql的支持实现,做了测试,需要再次读取数据才能获原创 2021-10-27 18:44:34 · 472 阅读 · 0 评论 -
游戏引擎剖析
Jake Simpson 译者: 向海 第1部分: 游戏引擎介绍, 渲染和构造3D世界 介绍 自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存原创 2007-09-02 02:24:00 · 1538 阅读 · 0 评论 -
IrrLicht的GUI使用
irrlicht有自己的ui系统,不用再去找其他的ui系统来挂载了.下面介绍一下irrlichtUI系统的基本使用方法.我用一个hello world的工程来讲解.因为代码量并不多,就将所有的代码都贴出来了. #include #include //头函数,因为将调用GetWindowsDirectory()函数获得系统目录所以包含了 using namespace irr原创 2007-09-29 14:44:00 · 1880 阅读 · 0 评论 -
Javascript版A*(a star)算法
script type="text/javascript">var map = function(){ var owner = this; //起点 this.startNode = []; //map table this.table = null; //清除颜色 this.clearColor = functio原创 2008-08-20 11:44:00 · 550 阅读 · 0 评论 -
LUA类API
tolua的最新版本是5.0,下载地址:http://www.tecgraf.puc-rio.br/~celes/tolua/以下是简单的使用说明:功能内容:可以在LUA脚本中使用C++的方便对象,包含创建,释放,调用成员函数文件包括:Main.cpp,tClass.cpp,tClass.h,tClass.pkg,tClassLua.cpp(自动生成)tClass.h(定义提供给LUA使用原创 2008-08-27 17:36:00 · 2170 阅读 · 1 评论 -
对2D免费游戏的认识
对于2D游戏来说,程序的质量 都不是问题了,现在看重的是游戏的品质,完整的世界观,游戏内容,数值,玩法等,丰富的主线以及分支任务, 让玩家在不知不觉 中成长,副本可以让玩家更加的融合,战场可以给玩家更加的激烈刺激的享受,不花钱的可以玩,花了钱的能够玩的更好,我认为这才是一款成功的免费游戏。 在设计一款免费游戏的时候 我不知道策划是否想过以下几个问题 1 游戏周期是多少时间?也就是游戏合原创 2008-09-26 16:40:00 · 724 阅读 · 0 评论 -
魔兽3自适应地块贴图算法
整个贴图过程分为4个步骤:1. 删除地块2. 拼接地块3. 排序地块层4. 更新地块有2种类型的地形纹理:根据上面这张排好索引的图片,加上效果图可以知道基本地块为:1 | 28 | 16然后是随机地块,数据如下:s32 s_pBaseTexIndex_c[] = { 1, 2, 8, 16 };s32 s_pRandTexIndex_c[] = { 0, 4, 5, 6, 7, 12,原创 2008-10-24 17:25:00 · 1154 阅读 · 0 评论 -
游戏场景管理设计
前言如之前博客中所说,最近一直忙于业余游戏开发项目中。我一直是个比较懒散的家伙,可这次猫窝的管理员(我们组唯一一名策划)却不愿意让我闲着,几乎每日都会QQ联系,再三叮咛询问我项目的事情。突然有些日本某些连载漫画作家被杂志社催稿的味道了。不过,拖他的福,项目进展比我预料的迅速。虽然被我狠心砍掉了一大模块下去,仍然比我原计划快出很多,感谢他。希望项目快点出来吧。因为我们做的是2D的SLG(转载 2008-12-11 11:29:00 · 1500 阅读 · 1 评论 -
第三人称摄象机系统例子
l 前言 Ogre是一款优秀的3D图形渲染引擎,在国内,很多前辈从04年甚至更早就对它有了深入的了解,并留了许多译文和心得,极大的便利了我的学习。虽然我起步比较晚,但仍希望自己学习间的这些记录和翻译能够帮助到他人,如您对Ogre有所心得和资料,望提供至Ogre中文Wiki http://ogre3d.cn/wiki中大家共享交流。因能力所限,翻译和整理难免有错误之处,欢迎各位原创 2008-12-10 18:05:00 · 652 阅读 · 0 评论 -
用NVPerfHUD来分析3D程序
<br />NVPerfHUD是一个很好的3D程序调试工具,它是NVPerfKit的一部分,由Nvidia开发,在写D3D程序时(它不能查看OpenGL程序)加入简单的语句就可以利用NVPerfHUD来调试察看显卡的工作情况了。<br />到这里下载其安装文件(包含文档),文档里有详细的使用说明。<br />最近在使用时,感觉越来越方便,所以在这里说一下最近用的最多的两个功能。<br /> <br />1. 用Frame Debugger来查看单独一帧的渲染情况。<br /><br /><br />(1)原创 2010-07-27 16:51:00 · 768 阅读 · 0 评论 -
一个在Irrlicht中会常用的字符串转换函数
让Irrlicht支持中文后,编程过程中不免经常会用到char* 到wchar_t*的转换,看了上次转载的那篇关于L"xx"的文章,写了个小函数供使用.#define xmalloc(s) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (s))#define xfree(p) HeapFree (GetProcessHeap(), 0, (p)原创 2007-09-02 01:03:00 · 1228 阅读 · 1 评论 -
为Irrlicht中的人物添加武器
在Irrlicht中的人物添加武器 其实相当简单:找到关节然后attach上去就ok了。 scene::IAnimatedMesh* pManMesh = smgr->getMesh("../../media/noblade.ms3d"); scene::IAnimatedMeshSceneNode* pnMan = smgr->addAnimatedMeshSceneNode( pM原创 2007-09-02 01:01:00 · 1233 阅读 · 0 评论 -
IrrLicht引擎研究 材质动画
下面创建的是由start0.bmp - start9.bmp 组成的材质动画// 加载材质core::array startmovie;for (int i = 0; i { char path[256]; sprintf(path, "../media/start%d.bmp", i); video::ITexture* tex = pDriver->getTexture(path);原创 2007-09-02 01:13:00 · 1217 阅读 · 1 评论 -
QuakeIII 的 MD3模型文件 结构研究(-)
QuakeIII使用的d3模型格式是MD3的,这里研究下看了这个清晰的结构定义以后 可以知道 从3d Max导出那些数据, 3D游戏设计的时候 也可以知道这些数据具有什么用 // 下面的结构体保存了从文件的头部信息struct tMd3Header...{ char fileID[4]; // 文件ID,对于MD3格式的文件,必须原创 2007-08-25 22:55:00 · 1348 阅读 · 0 评论 -
游戏引擎中的通用编程技术
这里必须再次提醒你,本文介绍的是一些通用的游戏编程技巧,虽然是通用但是可能并不是非常全面,可能存在这样或那样的缺陷,因此如果你希望它发挥最大的效用必须恰当的使用它,而不是不分场合的滥用。切记切记,一个初学者最容易犯的错误就是任意使用一些设计模版而不顾它的使用范围。 在开始构建一个游戏引擎时你需要先考虑哪些方面的问题呢?这是你必须认真考虑的问题,我的答案是首先必原创 2007-08-31 17:15:00 · 1764 阅读 · 0 评论 -
OGRE中的四元数与旋转
想象一个物体在3D空间中移动的过程,该物体必然会涉及到旋转。例如一个怪物,他的运动方向会改变,要改变其方向只需要对其进行旋转即可。旋转的方式大致分为三种:Euler旋转,矩阵旋转,以及四元数旋转。这里稍微记录下我目前对于四元数旋转的理解。对于四元数方面的数学,以及其原理,这里不关心,只需要学会如何使用即可。无论是哪一种旋转,物体与该物体的局部坐标系之间的相对位置,相对方位都是不会改变的。因此,在进原创 2007-08-31 17:24:00 · 1746 阅读 · 0 评论 -
MD2关键帧动画
本想用骨骼动画的,无奈.x格式的太过于复杂,而且游戏业里也不怎么用。只是把它的原理弄明白一些了,但是,我弱小的意志在DirectX SDK那个1000多行的SkinedMesh例子面前顺利地崩溃了,心想,还是先从最基本的关键帧动画开始做吧-_-!确定文件格式:md2(正好连找都不用找了,老师给了)以下是我Copy的:MD2文件格式简介 MD2是Quake2中使用的模型文件格式,由于其比较简单,容原创 2007-08-31 17:35:00 · 860 阅读 · 0 评论 -
3D Engine 的设计架构
咱们谈谈你如何撰写一份提供优雅性能的3D引擎。你的引擎需要提供的包括:曲面(curved surfaces)、动态光线(dynamic lighting)、体雾(volumetric fog)、镜面(mirrors)、入口(portals)、天空体(skyboxes)、节点阴影(vertex shaders)、粒子系统(particle systems)、静态网格模型(static mesh mo原创 2007-08-31 18:12:00 · 1164 阅读 · 0 评论 -
用C++实现跨平台游戏开发之Irrlicht引擎(1)
Irrlicht引擎是一个用C++书写的高性能实时的3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台),OpenGL 1.2或它自己的软件着色程序,可以实现该引擎的完全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等(见图1)。原创 2007-09-02 00:34:00 · 3459 阅读 · 0 评论 -
用C++实现跨平台游戏开发之Irrlicht引擎(2)
三、 在Irrlicht中的特殊效果 在本文的例子中,我将向你展示怎样使用模板缓冲区影子技术,还有粒子系统,告示板,动态光以及水表面场景结点等技术。参见图3。 图3.结合动态的光和水进行的场景着色 Irrlicht引擎自动地检查是否你的硬原创 2007-09-02 00:35:00 · 1779 阅读 · 0 评论 -
用C++实现跨平台游戏开发之Irrlicht引擎(3)
六、 粒子系统 下面介绍的这个特别效果更有趣:一个粒子系统。在Irrlicht引擎中,粒子系统既是组件化的,也是可扩展的,但是仍然易于使用。你只需要简单地把粒子发射器放到一个粒子系统场景结点,这样以来粒子看上去没有产生源。这些发射器可以据需要进行灵活配置,并经常带有许多参数,如粒子方向,粒子数量,以及粒子颜色等。 当然,发射器类型有区别(例如,一个点发射器能够使粒子从一个固定的点上发出粒子)原创 2007-09-02 00:36:00 · 1467 阅读 · 0 评论 -
Irrlicht引擎里的冲突检测与响应
这是Irrlicht SDK中给的一个例子,用来演示如何在Irricht中冲突检测与响应,其它的例子还有十三个,俺会陆续翻译出来。自己英语水平很洼,但对翻译又有点瘾,所以就帖到这里来,有译错或表达不好的地方请指正。 例7,碰撞检测与响应 这一节,我将演示如何在Irrlicht引擎里进行碰撞检测。有三种方法:自动的碰撞检测,例如上下楼梯时移动全局坐标;手工拾取三角形和场景结点。 演示程原创 2007-09-02 01:07:00 · 1669 阅读 · 0 评论 -
IrrLicht中ms3D模型不支持多个贴图问题的解决
测试过irrlicht中ms3d模型的朋友可能发现了这样的现象,如果ms3d模型只有一个贴图,则无论贴图文件放到和demo可执行程序同一目录下或者调用setMaterialTexture()函数都可以让模型正常被正常渲染,而当模型拥有两个或以上贴图时,则只有贴图和可执行程序在同一目录被自动加载时才能正确渲染,而用setMaterialTexture(0,。。。),setMaterialTextur原创 2007-09-02 01:12:00 · 1824 阅读 · 0 评论 -
DXUT 框架函数介绍 学习开发游戏UI
友情提醒:所谓的框架是指SDK目录下/Samples/C++/Common路径下的DXUT系列函数包装。学习框架的前提是必须有足够的Windows API,GUI编程经验,必须熟悉Windows的消息机制,回调机制,最好有万行左右的C/C++编程经验。MFC在这里没有任何用处。另外我觉得最好在看程序之前对于D3D的所有概念有点了解,什么是vertex,texture,matrix,lighting原创 2007-08-17 10:52:00 · 1359 阅读 · 0 评论