自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

langresser的专栏

Unity游戏开发 qq:450140822

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 windows下使用minidump获取和调试崩溃信息

非常简单和实用的功能,先上代码1、使用minidump获取和打印崩溃信息#include #include #pragma comment(lib, "DbgHelp.lib")void CreateDumpFile(LPCWSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException) { // 创建Dump文件

2013-02-27 21:14:07 5837 1

原创 一个基础但是隐晦的c++语法问题

1、工作现场代码:typedef MyData{ int data1; int data2;} * LPMYDATA;const LPMYDATA pData = getData();// do sth elsepData = getNewData(); // compile error2、分析:    a、首先我们应该都知道const的使用方法,一些面

2013-02-25 13:12:45 1895 3

原创 一把剪刀完成iphone4剪卡

一把剪刀,只有一把剪刀,其他什么都不需要,尺子、铅笔、剪卡器统统都是浮云。       作为程序员,我的学习心得就是明白原理,当原理明白后,很多东西的理解都是水到渠成。之前我做ios充值时,有一些细节问题问无线的ios开发程序员(比如苹果是什么时候完成信用卡扣款,我们应该什么时候确认交易完成等等),结果问了几个人都没有给我一个准确的答案,要么是“这个不是我做的,你要问xxx”,要么是“这个我不

2013-02-24 02:25:16 5251

原创 工作bug现场回放 (CFURLCreateStringByAddingPercentEscapes和vector)

1、之前博客中提到了崩溃收集系统。给服务器发送消息是一个http post的过程,其中会接收一个二进制数据流,这个可以是文本,也可以是一个zip文件流。与服务器进行约定,这个参数会先进行base64编码,这就意味着不会出现中文兼容等问题。  但是,ios上面有一个bug,传输的文本数据会在某些字符后错乱掉。如果传zip包,zip数据流会被破坏掉,文件无法正常打开(但是zip文件压缩是没有问题的,本

2013-02-24 01:24:00 1975

原创 讨论nullptr和NULL

最近玩了两天的c++11,其中有一个是新的关键字nullptr。 这里讨论下nullptr的存在价值,应用场景以及不支持c++11的时候如何模拟nullptr。1、为什要有nullptr      我们给一个指针赋初值的时候一般这么写  FILE* fp = NULL;      这里有个NULL的定义,一般情况下它是这么定义的:     #ifdef __cplusp

2013-02-20 14:31:00 18444 1

原创 iOS平台一套完善的Crash Report解决方案

最开始想iOS和Android都做了,后面尝试了下android上面的崩溃收集,困难程度超出我的想象,也可以说几乎不可能实现像iOS下面一样实用且方便的崩溃收集系统(1.有堆栈等信息,不会产生卡死等副作用。  2.专指jni崩溃,java的崩溃很容易处理)。  这个有一点要反思一下,在困难的地方浪费时间不如把简单的东西做好,那么多赚大钱的游戏也是各种不完美,但是玩家不会在意程序是否牛x,技术是否高

2013-02-20 11:51:38 11552 4

原创 webp图片格式在手持设备性能测试

cocos2d-x最新支持了webp图片格式,google在2010年发布的这个图片格式具备比jpg和png更高的压缩比,并且支持alpha通道。图片体积对比:原始图片(map_008_BG_2.png   1024*1024的一张背景图)   大小910k压缩为png8      369k压缩为webp(-q 90)  115k可见,webp在图片体积的压缩上是非常有

2013-02-17 12:33:10 7721

原创 基于id的游戏客户端事件分发(消息队列)

主要目的是完成游戏客户端内的事件处理。这里要明确几件事情:1、同样一个方案在小项目中可能是漂亮的解决方案,但是在大项目中就是很不灵活的处理方法。游戏客户端无论如何都是小项目,不会像windows一样几千位工程师负责上千个dll,一起开发一个操作系统。所以,对我的需求而言,把模块分的很细,很独立意义不是很大,点到即止。2、这样一个事件分发机制主要是处理业务逻辑对gui的控制,或者是不同的界面

2013-02-14 00:49:16 9977 11

转载 游戏引擎架构:11

前端  你已经看到了菜单系统,你可能理解游戏内的头顶显示(HUDs)时常是游戏经历中被忽视和诽谤的部分。最近,这个领域开始被给人印象非常深刻的Black and White所关注,这款游戏实际上没有HUD。在Peter Molyneux经历了Dungeon Keeper以后,它在屏幕上大量的图标,他决定游戏的大部分被这些图标占用了,主要的屏幕没有被足够利用。因此他决定废除所有这些东西。Pe

2013-02-13 22:45:30 1755

转载 游戏引擎架构:10

人工智能(AI)  我们上面已经用了其他九个章节介绍了游戏引擎,现在让我们深入到非常有趣和重要的人工智能主题。人工智能如今正在变成被谈论得最多的仅次于游戏引擎渲染能力的游戏开发领域之一,确实如此。直到大约两年半以前,游戏似乎主要是在考虑你能够渲染多少个多边形,眼睛是多么的漂亮,和… 好…劳拉的胸部是多么的有弹性...既然我们现在已经能够渲染出非常真实的乳房,中心就开始转移到我们实际上用那些

2013-02-13 22:44:37 1251

转载 游戏引擎架构:9

现成产品与定做的设计工具  我们从第8部份的脚本引擎来到这一章节中的许多主题,我们认为那些铁杆游戏玩家和有志成为游戏开发者的那些人将会发现它们相当有趣。我们将开始讨论现成产品与定制的设计工具。  你的工具的选择是你引擎设计的一个非常重要的部份,因为这是你将用来给你的游戏产生内容的东西,是最耗时的部份。在这个过程中有助于节省时间和资源的任何东西都是好的。那些不能的东西就是糟糕的。在那

2013-02-13 22:43:48 1671

转载 游戏引擎架构:8

脚本系统  我们从第七部分的游戏网络问题来到了脚本系统,因为其呈现的故事叙述机会,最近已经形成一种很大的游戏元素。在一个需要以受控制的方式解释的情景,预先编制的电影脚本是解决问题的方法。在电影中,这通常用来处理或者由主角向一个伙伴解释情形,或者敌人对英雄解释。当然,有其它的方法来做这件事情 -- 叙事者,倒叙,等等 – 但通常是使用实时情景的人们和事件来完成。当然,游戏是不同的,游戏开发者

2013-02-13 22:25:54 1148

转载 游戏引擎架构:7

网络游戏我记得一些年前坐在GDC(游戏开发者大会)听负责开发X-Wing Vs TIE Fighter的家伙们题为“淹没在Internet”的演讲,全是关于让网络游戏实时地在Internet上工作的东西。他们选择那个题目是多么的正确啊。当它开始处理数据包的丢失,乱序,潜伏(一个数据包发送到它的目的地所花的时间)等等时,它确实淹没了。然而它是可能的。对于Internet需要一些聪明和经验

2013-02-13 22:21:26 1069

转载 游戏引擎架构:6

声音系统  由于人们玩的游戏在种类和技术上的进步,声音和音乐近几年来在游戏中正逐渐变得重要起来(声音是一个实际游戏的可玩特点,比如在Thief和其它同类游戏中的听觉提示)。现在四声道环绕系统在游戏玩家的宝库中是负担得起的和平常的事。给定空间的声音,噪音的障碍和闭塞,和动态的音乐,如今许多游戏使用这些提高玩家情绪上的反应,更多的关注投入到这个领域就不足为奇了。  现在在PC竞技场中,

2013-02-13 22:20:07 1511

转载 游戏引擎架构:5

世界建造  常常在建立一个含有任何3D成分的游戏时,你最终要试图建立一个将会在里面产生游戏动作的3D环境。不知怎么的游戏开发者提供了一个建立这种环境的方,它容易修改,有效率,有较低的多边形数量,对于游戏既容易渲染又容易运用物理学。很简单,对吗?当做这个的时候我用左手在做什么?当做这的时候, 我对我的左手做什么? 是的。不错。  虽然那里有许多3D结构程序,从CAD/CAM程序到3D

2013-02-13 22:16:34 1395

转载 游戏引擎架构:4

角色建模与动画  你的角色模型在屏幕上看起来怎么样,怎样容易创建它们,纹理,以及动画对于现代游戏试图完成的`消除不可信`因素来说至关重要。角色模型系统逐渐变得复杂起来, 包括较高的多边形数量模型, 和让模型在屏幕上移动的更好方式。  如今你需要一个骨骼模型系统,有骨架和网格细节层次,单个顶点骨架的评估,骨架动画忽略,以及比赛中停留的角度忽略。而这些甚至还没有开始涉及一些你能做的很好

2013-02-13 22:12:33 1062

转载 游戏引擎架构:3

关于内存使用的思考  让我们想一想,在今天实际上是如何使用3D显卡内存的以及在将来又会如何使用。如今绝大多数3D显卡处理32位像素颜色,8位红色,8位蓝色,8位绿色,和8位透明度。这些组合的红,蓝和绿256个色度,可以组成百万种颜色——那是你我可以在一个监视器上看见的所有颜色。  那么,游戏设计大师John Carmack为什么要求64位颜色分辨率呢? 如果我们看不出区别,又有什么

2013-02-13 21:58:08 1639

转载 游戏引擎架构:2

世界的灯光  在变换过程中,通常是在称为观察空间的坐标空间中,我们遇到了最重要的运算之一: 光照计算。它是一种这样的事情,当它工作时,你不关注它,但当它不工作时,你就非常关注它了。有很多不同的光照方法,从简单的计算多边形对于灯光的朝向,并根据灯光到多边形的方向和距离加上灯光颜色的百分比值,一直到产生边缘平滑的灯光贴图叠加基本纹理。而且一些API实际上提供预先建造的光照方法。举例来说,Ope

2013-02-13 21:57:18 2069

转载 游戏引擎架构:1

渲染器什么是渲染器,为什么它又这么重要呢?好吧,如果没有它,你将什么也看不到。它让游戏场景可视化,让玩家/观众可以看见场景,从而让玩家能够根据屏幕上所看到的东西作出适当的决断。 尽管我们下面的探讨可能让新手感到有些恐惧,先别去理会它。 渲染器做些什么?为什么它是必须的?我们将会解释这些重要问题。  当构造一个游戏引擎的时候,你通常想做的第一件事情就是建造渲染器。因为如果看不见任

2013-02-13 21:56:25 2265

转载 游戏引擎启示录

游戏引擎基础(一)(渲染和构造3D世界) 来源:IIEEG03-22-2011第1部分: 游戏引擎介绍, 渲染和构造3D世界介绍  自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或

2013-02-13 21:48:25 4117

转载 如何用CodeSmith减少代码重复编写

如果说代码生成工具仅仅是自动生成for循环代码或者是include头文件,或者是类定义,那么它对我而言还没有太大的意义,因为我平时工作也达不到“手指在键盘上飞舞”的状态。思考的时间远大于写代码的时间。我不会感到写个for循环会影响到我的工作效率。但是看了下面的文章,我感到这种代码生成工具还是非常有意义的。我之前看到服务端的同事写个状态过程写的异常辛苦,而且中间各种问题(例如写了一半编辑器崩溃了,之

2013-02-11 22:14:16 1766

原创 走进c++0x,体验不一样的c++

好吧,之前我错误的认为c++0x就是添加了一些大多数人不懂的语法,比如bind,lambda,或者是一些使用起来可有可无的特性,比如auto,或者是可以通过具体代码方式来避免的,比如move。        不过阅读了漫话c++0x系列文章,我发现c++0x真的是一门新的语言,并且是足够漂亮的新语言。说实话,我们平时写代码确实不会遇到什么复杂的语法(如果自己写了自以为很炫,但是别人都看不懂的语

2013-02-11 20:43:38 2119 2

原创 实现In-app Billing (IAB Version 3)

(未完成,可能存在误解的地方)详细文档参考: https://developer.android.com/google/play/billing/billing_integrate.html#billing-add-aidl        如果在Google Play发布应用,不能使用第三方充值渠道,只能使用Google的In-app Billing, V3版本的接口是google发布的最

2013-02-05 01:12:32 10598 12

原创 解决了困扰一整天的纹理颜色设置的问题

1、用途:我把cocos2d生成的文字字形缓存起来以提高效率,没有走CCLabelTTF--CCSprite那套,而是直接使用CCTexture2D::drawAtPoint绘制到屏幕上。所以一个纹理要直接支持颜色设置(把文字绘制成不同颜色)。2、基本流程:      a、纹理创建的时候使用  setShaderProgram(CCShaderCache::sharedShader

2013-02-03 22:42:19 4308 1

原创 经典开源项目介绍(游戏、游戏引擎、通用组件)

(未完成)        我是做游戏客户端的,所以介绍的内容会偏重游戏,偏重c++,这里不会出现分布式集群服务器,也不会出现node.js。会出现在这里的是那些非常经典的开源游戏、游戏引擎项目。        如果你想成为一个游戏开发者的话,先找本入门教材了解下什么是游戏开发,可以不会directx、opengl,但是一定要了解。 然后就可以进入开源的世界,不需要加入游戏公司就会有大量的游

2013-02-03 19:21:52 4817

原创 boost在实际项目中的使用

对于boost在实际项目中的使用应该有一个相对客观的态度,既不能过分使用,在项目中铺满boost,又不能对其畏之如虎,不敢使用。我想实际游戏开发中,我们的团队伙伴大多应该是跟我一样程度的----对c++有一定的了解,又绝对成不上专家。所以,我们使用boost应该有下面这些原则或者说是注意事项:1、不要认为boost非常庞大就一概否定,认为游戏客户端里面绝对不能或者完全没有必要加boost。

2013-02-03 16:05:57 5893

cocos2d-x 3d模型显示

cocos2d-x 3d模型显示. 部分代码。 cocos2d-x 3d模型显示. 部分代码。

2013-06-13

空空如也

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

TA关注的人

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