游戏开发
cluner
这个作者很懒,什么都没留下…
展开
-
音频基础
音频基础(六)数字音频 音频基础(五)3D环绕声技术 音频基础(四)单声道 立体声和环绕声 音频基础(三)和弦铃声 音频基础(二)压缩编码 音频基础(-) -----摘自Mirror1027的笔记http://blog.21ic.com/user1/4749/cmd.html?do=blogs&id=5719&uid=4749原创 2008-11-24 15:55:00 · 460 阅读 · 0 评论 -
什么是 lua 闭包
—— 本质上还是全局变量(Upvalue) + 函数(function)原创 2010-01-14 13:02:00 · 956 阅读 · 1 评论 -
应用程序中的缓存(Cache)设计
Cache(缓存)机制是计算机中很重要的思想,从计算机硬件中的高速缓存缓存,到操作系统中的虚拟内存管理都应用到了Cache。因此在应用程序的开发中,我们也会很自然的想到用Cache来进行某些局部的优化。比如设计一个用于存放文件指针的缓存,以避免每次读文件的时候再从磁盘打开文件。 本文将介绍如何设计和实现一个文件指针缓存缓存的设计缓存的设计主要考虑使用什么样的数据结构和替换算法。原创 2008-11-27 16:43:00 · 591 阅读 · 0 评论 -
关于Hook技术的一点心得
1. 基本思想,对程序中的APi进行重定向!例如对LoadLibraryA进行Hook,基本思路如下:0x12345678 call LoadLibrary -> 0x12345678 call MyLoadLibrary 2. 实现中的一些具体问题,如何在一个进程中对另外一个进程的API进行修改?这其中包含两个问题,首先,一个进程可以对另一个进程的空间进行操作么?可以,Windo原创 2009-12-25 17:31:00 · 597 阅读 · 0 评论 -
算法设计方法(二)——分而治之
基本概念:君主和殖民者们所成功运用的分而治之的策略也可以运用到高效率的计算机算法的设计过程中,这就是分而治之的方法。该方法和软件设计的模块化方法非常相似。为了解决一个大的问题,可以:1)把它分成两个或多个更小的问题;2)分别解决每个小问题;3)把各个小问题的解答组合起来,即可得到原问题的解答。小问题通常与原问题相似,可以递归地使用分而治之策略来解决。著名问题:【找出伪硬币】给你一个装有原创 2008-12-29 22:07:00 · 728 阅读 · 0 评论 -
dlmalloc的内存分配策略
流行分配器dlmalloc剖析之:设计理念http://www.vtzone.org/discuz/viewthread.php?tid=34流行分配器dlmalloc剖析之:chunkhttp://www.vtzone.org/discuz/viewthread.php?tid=36&page=1&authorid=1Memory Managementhttp://www.v原创 2008-04-08 14:50:00 · 463 阅读 · 0 评论 -
STL应用(一)——综述
我所知道的STLSTL 主要是为我们提供了丰富的容器和算法,以至于我们在设计程序的时候只用考虑一些更为复杂的结构,比如树状结构,除此之外就是设计的问题。另外,STL作为一个开放的源码库,良好的泛型结构设计,高效的算法实现都为开发者提供了很好的参考。但是,正因为STL的灵活性,以及高效性,使得对STL的使用和了解也不算是很容易,我在平时的工作中也深有体会,因此希望能够系统总结一下STL的基本使用原创 2008-11-10 22:10:00 · 403 阅读 · 0 评论 -
const 与 static
const static char *str = "hello world"!把 const 与 static 连在一起用有什么特别的意思呢?表示在该文件作用域中的常量,对该文件外的函数不可见 const与static变量分别位于程序的哪个区域呢?一个由C/C++编译的程序占用的内存分为以下几个部分 1)、栈区(stack)— 由编译器自动分配释放 ,存放函数的原创 2008-12-05 14:15:00 · 430 阅读 · 0 评论 -
C++反汇编调试经验总结
反汇编在万不得已的时候是不用不上的,因为大多数情况都可以通过调试源代码和打log完成。但是在一些比较极端的情况,比如第三方的库函数里crash,既没有源代码,也不能打log,在这种情况下,恐怕唯一的办法就是通过阅读反汇编代码找到一些线索。 1.基本知识点C++对象在内存中的布局: 0x0039A470 00 21 40 00 --> vTable0x0039A474原创 2010-11-17 23:21:00 · 807 阅读 · 0 评论 -
IEEE 754 浮点数的表示精度探讨
前言 从网上看到不少程序员对浮点数精度问题有很多疑问,在论坛上发贴询问,很多热心人给予了解答,但我发现一些解答中有些许小的错误和认识不当之处。我曾经做过数值算法程序,虽然基本可用,但是被浮点数精度问题所困扰;事情过后,我花了一点时间搜集资料,并仔细研究,有些心得体会,愿意与大家分享,希望对IEEE 754标准中的二进制浮点数精度及其相关问题给予较为详尽的解释。当然,文中任何错误由本人造成,由我转载 2009-09-14 18:34:00 · 656 阅读 · 0 评论 -
为什么需要TLS(Thread Local Storage)?
线程局部存储(TLS)是Win32提供的一种底层基础技术,用于将某些数据和一特定线程关联起来,即,这些数据为关联线程所独有(私有)。初看上去,有点郁闷了:既然每个线程都有自己的私有堆栈,那么还要整个TLS做劳什子?线程的私用数据全放堆栈里不就得了?…..然而事情并不是那么简单的=) 下面举个具体的例子。所谓堆栈,相当于是一个历史记录,里面存储的数据(函参、返回值、调用上下文)与函数调用顺序有着转载 2008-11-07 16:41:00 · 490 阅读 · 0 评论 -
游戏开发中常用的数学公式
三角函数:sin(θ + β) = sin(θ)cos(β) + cos(θ) sin(β)cos(θ + β) = cos(θ)cos(β) − sin(θ) sin(β)原创 2010-03-28 22:04:00 · 1390 阅读 · 0 评论 -
利用抽象优化虚函数性能
虚函数因为需要更多的重定向,所以性能会比较低,这是众所周知的事情。以下两段代码,都使用到了虚函数,但是通过不同的抽象,减少了虚函数的调用次数,优化了性能 class GameObject{public: virtual void updateAI( float dt ) = 0;};class Fighter : public GameObject{public:原创 2010-07-14 18:12:00 · 849 阅读 · 0 评论 -
浅谈GCC预编译头技术 (转)
其实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA。后来一直用到C++ Builder,尽管Borland的广告无时无刻不在吹嘘其编译速度,我却从没有对这个问题上心过,因为心里根本没有“编译速度慢”这种概念。没有坏,哪来好?所谓矛盾的对立统一。遇到的第一个“慢”的编译器也许是javac,但因为Java的特殊性,也就容忍了。真正接触到世间的“恶势力”,还要转载 2008-11-06 14:32:00 · 978 阅读 · 0 评论 -
Compiler技术研究(1)
在当前的计算机应用系统中,脚本语言使用非常广泛,并由此产生了大量优秀的脚本语言,比如Lua, Python等等。因此如何设计并扩展脚本语言成为了一个非常有趣的技术,而且了解这样的技术,非常有助于你编写和优化自己的代码。原创 2010-03-15 21:00:00 · 353 阅读 · 0 评论 -
关于 Quaternion 的一点心得
在3D图形开发中我们经常需要对物体进行旋转,通常的办法是产生一个旋转变化的矩阵或者一个四元数(Quaternion). 而Quaternion的优势就是占用的存储空间比矩阵要小。那么Quaternion到底是个什么概念,是如何表示的, 又是如何让让矩阵旋转的呢? 首先来看看Quaternion的定义吧, 设q表示一个Quaternion, 那么 q = s + xi + yj + zk 或原创 2010-01-22 01:30:00 · 562 阅读 · 0 评论 -
VC++制作魔法表情
。。。原创 2008-04-10 09:42:00 · 605 阅读 · 0 评论 -
flash animation 技术研究
参考网站:1.3D flash wall on http://flashloaded.com/flashcomponents/3dwall/ 非常cool的3dflash效果, 基于papervision engine。2. flash 片头之家 http://www.sinker.cn原创 2010-03-08 22:01:00 · 520 阅读 · 0 评论 -
概率中几种分布函数的曲线
占位原创 2009-12-07 10:21:00 · 2034 阅读 · 0 评论 -
游戏中的现代音频技术综述
3D Sound vs Surround Sound 在游戏开发中,声音(Sound)的地位并不如图象那么重要。游戏开发者们会发费大部分的时间来增加3D图形的新功能和特效;但是,想要说服他们花更多的时间和金钱,来开发具有高质量音频效果的游戏可以说是非常的困难。同时,在硬件方面,玩家们也更乐意购买最新款式的3D图象加速卡,而对新的声卡似乎也并不是那么感冒。 然而,随着显示卡的发展转载 2008-11-24 17:04:00 · 759 阅读 · 0 评论 -
性能优化方法总结
占位原创 2008-12-02 09:49:00 · 284 阅读 · 0 评论 -
提高程序健壮性的方法
占位原创 2008-12-02 09:52:00 · 1064 阅读 · 0 评论 -
耳机和音箱有何区别
耳机,双声道,音箱,2.1, 5.1等等发声原理听觉效果上的区别原创 2008-12-03 11:12:00 · 453 阅读 · 0 评论 -
视频游戏中音频系统的基本功能
==原创 2008-12-05 15:06:00 · 352 阅读 · 0 评论 -
游戏音频系统的设计
==原创 2008-12-05 15:09:00 · 448 阅读 · 0 评论 -
声学常用概念
共振频率通常一个物体有多个共振频率,因为振动可以叠加,所以当受迫振动的频率和共振频率一样时,就会产生物体在该频率上的最大振幅。共振频率包括harmonic和inharmonic。harmonic一般是基音的整数倍,而inharmonic不是整数倍。通常inharmonic会让人有一种不安的感觉。 泛音(overtone)泛音是指一个声音中除了基频外其它频率的音,乐器或人声等自然发出原创 2008-12-07 13:58:00 · 675 阅读 · 0 评论 -
FMOD Event System
loading and allocation EventSystem::getGroup / EventGroup::getGroup / EventGroup::getGroupByIndex allocate the event instance memory (including any DSP effect allocations) for the events in that g原创 2008-12-13 16:35:00 · 673 阅读 · 0 评论 -
盘点男人必玩的十大游戏 看看你玩过几款?
1.追求--《暗黑破坏神》 暴雪的力作,游戏界的不朽丰碑,开创了即时联机RPG的崭新时代,令后世之作纷纷效仿。 而《暗黑》之中最为经典且最被人所津津乐道的便是--极品的装备。 在浩如烟海的装备库中,玩家几乎不可能在短时间内打出最令自己满意的极品。玩家孜孜不倦的杀怪正是为了期盼着某个时刻掉出一件暗金或者绿色的装备,那便是游戏生活中最美妙的时刻。因此,这令这个游戏的重复可玩性产生了质的飞转载 2008-12-14 22:00:00 · 1173 阅读 · 0 评论 -
cool edit 音效调节
占位原创 2008-12-14 15:00:00 · 776 阅读 · 0 评论 -
关于游戏编程的数据驱动
用数据驱动的方法开发游戏是十分重要的,应该尽量用编辑器完成所有的重复工作所以在设计编辑器时,应支持1. 支持事件动态添加, 事件可由用户输入触发,或有其它条件触发2. Actor支持事件,事件可以绑定动画,绑定声音 整个编程的思路就是应该让编辑器可以完成所有的游戏设计原创 2009-05-23 22:59:00 · 674 阅读 · 0 评论 -
视空间知觉
在视空间知觉的问题上,心理学家一直在探索下面两个问题:(1)我们的视网膜是二维的,同时我们又没有“距离感受器”,那么在二维空间的视网膜上如何形成三维的视觉,我们又通过哪些线索来把握客体与客体、客体与主体之间在位置、方向、距离上的各种空间关系呢?(2)如果说视空间知觉的获得是由于双眼协调并用的结果,那么为什么在很多时候使用单眼仍然可以获得准确的空间知觉?根据已有资料,空间知觉需要依靠许多客观条件和机转载 2009-10-13 14:34:00 · 1288 阅读 · 0 评论 -
3D 空间中物体绕任意轴旋转公式
占位原创 2010-03-26 16:16:00 · 2169 阅读 · 0 评论 -
Windows shell 编程 ¬¬——将指定文件夹中的所有文件名输出到一个文件中
问题分析:该任务主要有三个问题要解决1)如何存放指定的文件夹,2)如何遍历文件夹下的所有文件;3)如何将遍历的文件输出到文件中。下面就逐一来解决这些问题。问题解决:1. 如何存放指定的文件夹在Shell中主要通过set 来存放环境变量。比如:Set var=xxxx。如果要删除该变量,则使用Set var=。在shell脚本中并没有类似数组这样的变量来帮助你存放数据。所以只能考虑将几个原创 2007-11-11 23:09:00 · 5134 阅读 · 3 评论 -
算法设计方法(一) —— 贪心法
基本概念在贪婪算法(greedy method)中采用逐步构建最优解的方法。在每个阶段,都做出看上去最优的决策(在一定标准下)。决策一旦做出,就不可再更改。做出贪婪决策的依据称为贪婪准则(greedy criterion)著名问题1) 最少硬币问题一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为2 5美分、原创 2008-12-10 10:09:00 · 1552 阅读 · 0 评论