- 博客(41)
- 资源 (12)
- 收藏
- 关注
原创 《武大头传》上线Apple App Store经验谈
以前在大公司中,有专人负责游戏上线的事情,不必开发人员来处理。而现在经营自己的初创公司,凡事不论大小都得亲力亲为。一个试水小作品《武大头传》在几个月前成功上线Apple App Store(iOS版本)和360市场(安卓版本),iOS版本售价1 RMB,安卓版本投了一点广告所以免费玩。本文只谈一谈在打包苹果版本和发布收费App时碰到的一些问题,希望对后来的朋友有用。
2015-08-17 00:01:38
977
原创 cocos2d-iphone FAQ
目录许可证给cocos2d做贡献开发人员疑难解答 许可证 我能在闭源的iPhone应用程序中使用cocos2d吗?是的,可以。cocos2d-iPhone使用MIT许可。如果你有任何疑问,请仔细阅读该协议。 如果有人购买了我的游戏,我需要给他源代码吗?你不必要把游戏代码开源,即
2011-07-16 10:15:27
2360
原创 cocos2d-iPhone简介
cocos2d-iPhone是制作2D游戏、演示程序以及其他图形/交互式应用程序的游戏引擎。它基于cocos2d,从Python移植到Objective – C语言,因为Objective – C是iOS/Mac OS X系统的原生语言,自然拥有最好的兼容性和速度。 cocos2
2011-07-15 08:29:38
2097
翻译 第三章 第十一节 总结
本章快速的浏览了传统的固定管线渲染流水线。如果要详细的研究用在3D渲染的每一个DirectX类,那要几个章节的篇幅。我们宁可不去深究其中的细节,而只是介绍了在随后几章需要使用的知识。DirectX的文档以及Visual Studio的帮助和代码完成功能可用来在前进的道路中陪伴我们。
2010-05-18 17:23:00
753
翻译 第三章 第十节 渲染
渲染管线中的最后一步是实际呈现到屏幕上。在这一点上,每个对象的每个像素已经确定,并转化为屏幕坐标。由于每个像素是即将被绘制到屏幕上,会检查Z缓冲中相同位置的Z(或W)值。如果像素的深度值比目前这个位置中存储的值大,此像素不会被绘制。如果深度值小于(即像素更接近视点),则像素渲染到该位置,深度值也被存储在缓冲区中。
2010-05-18 17:17:00
777
翻译 第三章 第九节 着色,纹理和雾
至此,渲染过程需要关注对象的形体绘制了。现在要论述从颜色的角度来看这些形体。很多因素决定了要渲染到屏幕上的像素的颜色。这些因素包括应用在三角形的材质、纹理、照在对象上的光,以及当前的雾效。对象有四种基本的颜色属性——漫反射,环境光反射,镜面反射和放射:n 散射颜色:对象的一个特定部分的基本颜色n 环境色:颜色的亮度最低水平n 镜面颜色:颜色的镜面发射(即反射的颜色)n
2010-05-18 16:54:00
1355
1
翻译 第三章 第八节 设置顶点缓冲器
设置顶点缓冲器(Vertex Buffer)在前面的“转换模型坐标到视点坐标”一节里,需要渲染的物体的顶点数据全部打包放在一个顶点缓冲器里。在渲染阶段调用的DrawPrimitive方法使用了顶点缓冲器里的这些信息来进行渲染。指定的图元(primitive)类型必须要匹配顶点在缓冲器里放置的方式,这样才能得到想要的结果。 五个基本的图元类型可以用来渲染:点、线、三角形列表、三角形带和三
2008-07-20 23:19:00
2814
1
翻译 第三章 第七节 裁剪
裁剪裁剪是把超出当前视野之外的对象部分或者它们的多边形丢弃的过程。这是渲染流水线的一部分,由DirectX和视频卡为我们处理,不需要任何其他的帮助。某些命令可以让我们修改裁剪平面,但是这些仅仅在裁剪程序的高级调优(advanced tweaking)时才会需要,所以本书不涉及这些。
2008-07-20 23:17:00
956
翻译 第三章 第六节 背面剔除
背面剔除背面剔除确保只有面向摄像机的三角形才会被渲染。当启用背面剔除时,所有背向我们的三角形都不可见。三角形的正面朝向有两种方法来定义。第一种方法是三角形的顶点指定成逆时针方向。第二种方法是用面的法线向量指向的方向来定义。 面法线向量的计算参见列表3-13。数组V表示定义三角形的三个顶点。变量N是计算结果法向向量。 列表 3.13:面法线的计算// Calculate
2008-07-06 00:01:00
4778
翻译 第三章 第六节 转换模型坐标到视点坐标
转换模型坐标到视点坐标(Converting Model Coordinates to the View Frame) 前面的步骤都是关于(geared towards)在当前场景中建立和最小化可见的多边形。描述这些多边形的定点都存储成坐标,这些坐标都是物体的本地坐标。为了让我的3D场景看起来像模像样,我需要把所有的这些顶点变换到正确的屏幕坐标。这个过程通过三个变换矩阵来完成。前两个是投影
2008-06-27 22:13:00
2129
翻译 第三章 第五节 选择细节等级(LOD)
选择细节等级(LOD)下一个步骤是确定没有被剔除的对象的细节级别(level of detial)。细节级别利用了我们人类对远处的物体辨识力不够的弱点。因此这样,离视点远的物体我们就用较少的多边形来构造,离视点近的物体我们就用更多的多边形来构造。 以前,我们需要在每个细节级别上存储物体的网格(mesh)版本。然后我们可以基于物体当前离摄像机的距离来选定最好的网格。虽然您可以继续使用
2008-06-22 10:44:00
1999
原创 STL vector的erase操作问题
STL vector的erase操作问题一老大说优快云上有篇博文( “关于STL vector的erase操作”,地址是:http://blog.youkuaiyun.com/tingya/archive/2007/12/28/1998442.aspx)黑奇怪,抱着猎奇的心态,偶也去凑哈热闹,发现了一点问题,报告给大家。 作者说下面的代码是错误的: vectorunsigned s
2008-06-20 19:15:00
26859
14
翻译 第三章 第四节 检查可见性和执行粗略剔除
检查可见性和执行粗略剔除 现在所有的对象已经被放置在他们正确的位置上了,是决定哪些对象需要渲染到当前场景的时候了。这个过程被称为剔除。目前有三个主流的剔除技术:二分空间划分(BSP),入口(Portal)和四叉树。 剔除技术BSP技术通过划分和再细分整个数据库,里面的所有东西都基于划分的平面。通过放置平面划分区域,使位于平面一边的对象可见,而位于相反的一面的对象不可见,我们可以
2008-06-16 10:10:00
1373
1
原创 用“十力读书法”读Introduction to 3D Game Engine Design Using DirectX 9 and C#
用“十力读书法”读Introduction to 3D Game Engine Design Using DirectX 9 and C#本书出版于2003年,已经有5个年头了,也意味着经历5个年头的考验了。Amazon上对本书的评价很有意思,那就去看看这些老外如何评价这本书的吧。 l 标题为“不是一本入门书”,给了4星评价If youre looking at
2008-05-01 01:00:00
2076
2
翻译 第三章 第三节 动画对象
动画对象把物体的运动关联起来就是动画处理。动画对象有一个或者多个动画作为对象定义的一部分和动画对象存储在一起。一个动画可以看做是子对象相对于物体主对象位置变化的一个基于时间的序列。例如人体的动画有奔跑、跳跃、蹲下、战斗等等。动画的速度通常以每秒多少帧来定义。给定一个速度和动画持续的时间,我们就能计算出给定的动画需要多少帧。我们也可以计算出两帧之间需要多少时间。调和(reconcile th
2008-03-30 16:40:00
1269
3
翻译 第三章 第二节 移动摄像机和对象
移动摄像机和对象 当我们进入3D渲染领域,有两个基本类型对象需要定义:摄像机和3D对象。摄像机可以认为是视点。虽然至少需要定义一个摄像机,我们可以定义多个。根据不同的游戏类型,我们可以在第一人称视角,摄像机位于动画角色的视点上,或者车辆中不可见的驾驶员的跟随摄像机之间转换。我们也可以拥有几种跟随或者在用户控制的对象上盘旋的第三人称摄像机。不论摄像机在场景中如何移动,摄像机的位置、朝向和定义
2008-02-14 22:21:00
1396
翻译 第三章 Hanging Ten——走马观花渲染管道
第三章 Hanging Ten——走马观花渲染管道 概述现在是时候开始在三维里思考了。目前为止我们做的任何事情都是二维的。这一章讲述传统3D渲染流水线的背景知识。我特别指出“传统”,那是因为当前有两种渲染流水线:传统的fixed-function流水线和vertex and pixel shader流水线。传统流水线包括下面的步骤:n 顶点数据和高阶图元(high-order
2008-02-01 22:37:00
938
翻译 第二章 第十节 总结
总结本章建立了一些写游戏时需要的下层建筑。这里我向你展示了游戏循环中的最初几个状态。我们可以显示splash screen和option screen,以使玩家可以看到自己将要玩的是个什么样的游戏,以及在开始游戏之前选择所需的选项。本书剩下的内容将着眼于真正玩游戏过程中需要用到的游戏引擎组件。
2008-02-01 22:35:00
666
翻译 第二章 第九节 全部凑一块来
全部凑一块来在我们结束本章对用户接口的讨论之前,得考虑怎样把这些类整合进GameEngine类。游戏引擎会包含列表2-37里的属性。列表2.37:GameEngine属性 public class CGameEngine { #region
2008-01-27 23:40:00
925
翻译 第二章 第八节 开发控制台
开发控制台我已经数次提到了游戏控制台。近年来,通过游戏Quake和Half-Life暴露控制台给玩家,控制台变得越来越流行了。即使你不希望在你的游戏中允许玩家访问控制台,你也应该为了自己使用而纳入控制台到游戏中。控制台在游戏开发过程中是一个强大的工具。有了控制台,我们能以合理和可控的方式在游戏中显示处理流程信息和统计信息到屏幕上。我们可以通过在游戏中(on the fly)设置变量的值,并且可
2008-01-15 15:37:00
1152
1
翻译 第二章 第七节 绘制options screen
绘制选项屏幕下一个要讲述的用户接口组件是选项屏幕。依赖于游戏的复杂性,它可能由多个选项屏幕组成,通过一个主选项屏幕来访问。在这里玩家可以设定他偏爱的游戏方式或者退出游戏。选项屏幕的需求决定了在屏幕上应用的控件(controls)的复杂性,从从头到尾应用简单的按钮,到使用类似于MFC的对话框。 为选项屏幕建立砖块为我们的最初的选项屏幕,我们使用一个按钮风格的接口。为了支持这个,我们定
2008-01-10 09:15:00
933
翻译 第二章 第六节 绘制Splash Screens
绘制Splash Screens第一章里,我提到了使用splash screens向玩家呈现游戏开发者的荣誉,以及游戏的序幕。对于更加高级的游戏或者商业游戏,它们可能是一张静态的图片或者一个视频短片。视频短片由DirectX的DirectShow组件来处理,不管是DirectX以前的版本还是当前的C++版本。这个有Managed DirectX里的AudioVideo类提供支持。微软提供的视频
2008-01-08 09:16:00
1094
1
翻译 第二章 第五节 统一输入接口
统一输入接口目前我们已经会怎样和输入硬件通信的基本方法(Now that we have the basics down on how to communicate with the input hardware),是时候把这些信息整合进游戏引擎了。游戏引擎只有一个类,封装了三种输入设备,并为游戏提供了一个统一的接口。这个类,我们把它叫做GameInput,从IDisposable接口继承而来
2007-12-29 09:10:00
1275
3
翻译 第二章 第四节 获得操纵杆的输入
获得操纵杆的输入操纵杆设备是一种奇怪的(odd duck)接口。因为一个操纵杆或者游戏控制器可以安装在玩家系统中一个或者多个操纵杆端口,并且可以任意组合(could be any of the vast array of such items available),所以使用操纵杆会更加复杂。在我们创建和配置操纵杆设备,先得发现可用的操纵杆和我们需要使用哪些。我们用来创建键盘和鼠标设备的类Inp
2007-12-28 09:47:00
1362
翻译 第二章 第三节 取得鼠标输入
取得鼠标输入取得鼠标的输入和键盘很像。DirectInput在这两者之间很一致。使用相同的过程来创建设备;我们仅需要在枚举中指定鼠标而不是键盘。创建设备的代码如下:MouseDev = new Device( SystemGuid.Mouse ); MouseDev.SetCooperativeLevel(m_form, CooperativeLevelFlags.Exclusive
2007-12-28 09:07:00
878
翻译 第二章 第二节 取得键盘输入
取得键盘输入DirectX提供了专门的一个类来取得用户的输入。这个类叫做DirectInput。同DirectX其他部分的一样,DirectInput的使用也是以设备对象为中心的。在交互方面DirectInput设备是非常灵活的。当我们创建一个DirectInput设备,我们必须制定设备需要干什么。C#有一个枚举叫做Microsoft.DirectX.DirectInput.System
2007-12-28 09:06:00
1003
翻译 第二章 用户接口 第一节 简介
第二章 用户接口简介如果玩家不能参与交互,那游戏将无乐趣可言。虽然你极其渴望马上进入游戏引擎的3D图形部分,但是让我们首先花少量的时间在用户交互上吧。这将让我们掌握当开始渲染时改变3D环境的技能。 用户界面可以分为两个主要的类别:用户输入和数据显示。首先我们探究一下三种主要的输入方法:键盘,鼠标和操纵杆。一些高端的系统可以支持有限的语音输入控制,但是我们将不会探究这个,因为时
2007-12-28 09:05:00
745
翻译 第一章 第十二节 总结
总结这一章里,我们大致了解了一般的游戏引擎。简单的重复一下,游戏引擎是用来写游戏的底层技术。通过使用游戏引擎,游戏设计者便可以自由的集中力量关心游戏的玩法和故事情节。本章也在高层次展现了示例游戏引擎的设计。我们还看到了游戏应用如何和一些高层的游戏引擎函数交互,来控制游戏的流程。(第一章完)
2007-12-26 12:47:00
603
翻译 第一章 第十一节 查看C#代码
查看C#代码列表1-5中的代码是来自示例游戏application class。正如你所见,application从另一个叫CD3DApplication的类继承而来。此类基于微软DirectX 9 SDK提供的类。一个唾手可得的类用来记录初始化和终止DirectX所需要的薄记信息。我稍微修改了微软的版本,以便可能以全屏幕启动以及调整了循环的处理,以符合我们用在游戏引擎中的循环。如果你对初始化
2007-12-26 12:45:00
1098
翻译 第一章 第十节 游戏回顾:玩家得分
游戏回顾:玩家得分玩完游戏后,最好为玩家合计一些东西。取决于具体的游戏,可以有几种形式。对一些简单的游戏,可能就是一些高分,告诉玩家其他的玩家如何(或者他们的另一些记录)。如果有电脑对手,显示玩家在电脑玩家中的名次。如果是多玩家游戏,显示游戏中每个玩家的名次。如果是基于剧情的游戏,可能提供重新玩一次的选项。这个步骤是可选的,但是绝大多数的游戏在玩完后为玩家提供某种形式的反馈。一旦用户
2007-12-26 12:42:00
783
翻译 第一章 第九节 玩游戏
玩游戏一旦进入主游戏状态,游戏真正开始。游戏循环开始执行只要玩家进入这个阶段。游戏循环包括以下的一般步骤:n 处理玩家输入n 计算自动玩家(NPC?)行为n 更新所有动态模型n 如果是多玩家模式,和其他玩家交换状态信息(不包含在示例游戏引擎中)n 渲染下一帧这些步骤构成了游戏循环,它一直执行
2007-12-26 12:40:00
672
翻译 第一章 第八节 介绍选项
介绍选项除了一些极其简陋的游戏,我们仍然没有准备让玩家开始玩游戏。玩家也许想要在开始玩之前做一些选择。使用怎样的屏幕分辨率?使用什么控制器和按键来操纵游戏?玩家想要加载以前保存的游戏记录吗?玩单人游戏还是联机玩多人游戏?我们提供给玩家的选项数目决定了screens需要显示的选项。 如果游戏需要多于一个的选项screen(我们的示例游戏不需要),我们需要每一个screen的状态。每一个s
2007-12-26 12:39:00
688
翻译 第一章 第七节 Game Splash Screen
Game Splash Screen提示玩家谁创造了这个奇妙的游戏之后,是时候告诉玩家他们将要玩的是个什么样的游戏了。这个splash screen可能以两种形式出现。游戏最开始时,需要设定游戏背景,以便玩家能够理解游戏的状况。游戏启动后可能需要注册,如果没有注册,需要秀一段扩充的介绍。否则,一段简短的介绍后直接进入游戏。 有大量制作预算的游戏开发工作室往往提供扩展的高质量的视频(通常
2007-12-24 18:22:00
703
翻译 第一章 第六节 开发者splash屏幕
开发者Splash屏幕打开游戏首先映入玩家眼帘的是developer splash screen。可以把这看成是电影开始时显示的电影工作室的logo。它让观众知道将要享受的超好看的作品是谁制作的。Splash screen既可以是静态图像也可以是一个视频短片,取决于游戏开发者的偏好。为了这个目的,我们的范例游戏引擎把所有的游戏资源作为单独的文件,而不是打包成可执行资源包。它有一个ShowSpl
2007-12-24 18:19:00
2291
翻译 第一章 第五节 处理流程概述
处理流程概述尽管这不是游戏引擎设计的一部分,但是我们需要知道典型游戏的结构和处理过程,为我们开发的游戏引擎提供一个框架。这个处理流程是基于对众多商业计算机游戏的观察。重要的是要记住,这个流程里的步骤不是硬性规定的。不过受困于要包含任何不恰当的步骤。本书实示例游戏将用一个简单的状态机来实现这个流程。 在我们的游戏处理中有五个状态:n 开发者splash屏幕n
2007-12-24 18:17:00
699
翻译 第一章 第四节 接口:整合契约
如我前面所说,这将是一个面向对象的游戏引擎。C++惯例,为引擎的多样的类使用多重继承来提供预先定义的行为集合。 虽然这是一个强大的技术,但是有它的危险。如果一个类继承两个定义了同样的属性或者方法的基类,这就会产生问题。同样的名字将会冲突,产生一个编译器错误。C#通过不允许多重继承来解决这个问题,只能继承一个基类。为了取得多重继承的好处而又消除危险,C#使用interface机制。如果你熟悉
2007-10-11 11:42:00
1171
翻译 第一章 第三节 从定义少许原始结构开始
从定义少许原始结构开始在我们进行游戏引擎代码的冒险之旅之前,定义一些将要用到的低级或者初级的数据结构。C#有两个方法来定义数据和相关的方法。第一个是结构(struct),它是一个值类型,在栈上分配而不是在托管堆。结构类型没有类(class)类型强大和灵活,但是对于小数据单元更加高效,例如组成游戏引擎基础的原始结构(primitives)。 首先是Vector3,由三个单精度浮点变
2007-09-14 22:15:00
1084
翻译 第一章 第二节 本书游戏引擎工程的不同点
本书游戏引擎工程的不同点这本书的目的是在示范如何创建一个示例游戏引擎时,讲解游戏引擎所有的基本组成部分。可以扩展示例游戏引擎来建造你的游戏。我使用DirectX 9来渲染。如果你偏好OpenGL,我把它作为编码练习留给你,用OpenGL API替换Direct3D API。两套API都支持相同的渲染能力。 本书研究的游戏引擎不专研使用vertex和pixel shader可以作出的伟大
2007-09-14 22:13:00
1117
翻译 第一章 第一节 概述
第一章概述这本书是写给不论你有没有3D图形经验,只要你想一窥游戏引擎设计大门的人们的。这一章从大的方面来看游戏引擎。目标是提供对游戏引擎的一个概观,本书剩余部分的更详细讨论都以这为基础。在这本书里,我们将研究游戏引擎的方方面面,并且检验随书附带的示例游戏引擎(可以在Apress网站下载http://www.apress.com)源代码里相应的特征。每一章都关注游戏引擎的一个主要概念或者子集
2007-09-11 23:38:00
1345
3
翻译 导言
导言我自学游戏设计和3D可视化很多年了。我的书架上充满了程序设计、游戏开发,以及各种图形APIs的书籍。许多书籍都在介绍DirectX或者OpenGL的方方面面。相当多的书也专注于使用一种或者几种这样的技术来创建游戏的一个组成部分。 对于游戏引擎设计的书,我是从来没有发现一本。我想要一个面向对象的,可以重用的软件包,并且它不是只适用于一个特定的游戏。我知道,不只是我一个人对游戏引擎设计
2007-09-03 12:15:00
926
iphone3开发基础教程(英文版)
2011-05-13
OGRE 3D 1.7 Beginners Guide
2011-03-15
Learn iphone and ipad cocos2d game development
2011-02-15
windows网络编程(第2版)中文版
2008-05-30
ASP网页制作教程4
2008-05-27
ASP网页制作教程3
2008-05-27
ASP网页制作教程
2008-05-27
ASP网页制作教程
2008-05-27
Introduction to 3D Game Engine Design Using DirectX 9随书代码
2008-01-15
Introduction to 3D Game Engine Design Using DirectX 9 and C#
2008-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人