导言

导言

我自学游戏设计和3D可视化很多年了。我的书架上充满了程序设计、游戏开发,以及各种图形APIs的书籍。许多书籍都在介绍DirectX或者OpenGL的方方面面。相当多的书也专注于使用一种或者几种这样的技术来创建游戏的一个组成部分。

 

对于游戏引擎设计的书,我是从来没有发现一本。我想要一个面向对象的,可以重用的软件包,并且它不是只适用于一个特定的游戏。我知道,不只是我一个人对游戏引擎设计感兴趣。我明白了这一点,在我学习C#和托管DirectX 9,并使用这种新技术移植我的游戏引擎时,所以我会详细的记录这个过程。你正在读这本书,这意味着我们对3D游戏引擎有共同的兴趣。

 

我定位这本书为入门级别。当我最初计划写时,我考虑包含更多高级主题,比如动画,多用户支持的网络,以及可编程的流水线(shaders)。我很快就发现,在一本书里面包含这么多材料,不论对内容涉及深浅如何,都将是太厚的一本书。我希望未来某时,我会有时间写一个后续的分册,将包含这些和其他更多的高级内容。

 

没有一本书可以回答所有的问题。当你磨练你的开发能力时,我鼓励你通过其他书籍和因特网扩展你的研究。使你的问题得到解答的最好用的资源是MicrosoftDirectX新闻组。因特网上大量的新闻组都把microsoft.public.win32.programmer.directx列在前面。专注于托管DirectX的新闻组是microsoft.public.win32.programmer.directx.managed。我经常关注这个新闻组,并且回答一切我能解答的问题。

 

第一章:概述

这一章看看几种不同类型的游戏引擎,以及游戏和游戏引擎之间的区别。游戏引擎的设计比游戏本身里的硬编码渲染和游戏逻辑需要更多的考量。好处是,对底层技术更好的重用性以及总体设计的清晰性。

 

第二章:用户接口

游戏的用户接口提供输出给玩家信息和获取玩家命令的方法。这一章研究显示信息的几种方式:splash screens,选项屏幕,以及控制台屏幕。也考虑使用DirectInput获取玩家键盘,鼠标和手柄的输入。

 

第三章:Hanging Ten :走马观花渲染流水线

在深入到三维对象实际渲染之前,最好是对渲染流水线先有个基本的了解。这一章将带领你走马观花般了解一下固定渲染流水线包括的几个典型步骤。这包含操作摄像机,以便在游戏中提供视点。也给出了将会使用在所有渲染对象中的一个基础类。剔除对象和提高效率的其他技术也会被研究。这些步骤的实际讲解出现在第四章到第八章。

 

第四章:基础3D对象

这一章是接下来两章中的第一章,处理游戏中使用的各种类型的对象的渲染。这些对象包含天空盒,用来提供远景;地形渲染,提供可以在上面移动的表面;简单的对称对象,公告牌;以及粒子系统。粒子系统是一个非常强大的工具,可以使用在微小对象的动态系统中,包括流动的水,火,烟火和流沙。

 

第五章:复杂3D对象

 

第五章是处理游戏中对象渲染的第二章。这一章涉及的对象更加复杂,每个对象都包含很多多边形。就是提到的mesh对象,在游戏中主要用来作为移动模型。用来封装meshes的类包含自动调节mesh复杂度的功能,基于离摄像机的范围,以便提高效率。

 

第六章:摄像机:玩家眼中的世界

为了控制视野,我们需要类似于拍电影中的摄像机。这一章阐述摄像机类的设计和用途,它能以各种方式使用。摄像机可以静止的置于场景中,当对象移动时跟随他,或者可以绑定在移动的对象上。在游戏中使用多个摄像机和使用逻辑的摄像机,可以达到电影般的效果。

 

第七章:增加一些情趣:光照和雾

时下的游戏引擎渲染都在全光照和完全清澈透明水晶般的空气中——这种状况实现世界是不存在的。这一章研究四种类型的光照,他们用来照明场景,也研究怎么配置雾来提高游戏的真实性。雾还可以用来消除渲染离摄像机很远的对象所出现的问题。

 

第八章:人工智能:增加对手

没有对手的游戏几乎没有什么可玩性。尽管可以编写完完全全的多玩家游戏,所有的对手都是人类,然而网络不在这本书讨论。所有,我们将看看在游戏中用到的几种不同的人工职能技术。在本书的示例游戏引擎中使用其中的一个方法实现了人工智能。

 

第九章:游戏音频:让我们发出一些噪音

另一个往游戏中加入特性的方法是使用音频。选用恰当的背景音乐,则增加了游戏的情趣。这一章告诉大家怎样开发一个类,可以使游戏引擎方面的播放声音。也包含了在游戏中支持音效。玩家在游戏中期待与事件呼应的声音。如果一辆车撞上另外一辆车或者树,他们不仅期待看到撞击中对象的反弹也期待听到撞击声。

 

第十章:游戏物理:保持真实

就像谈到声音时提到的,玩家不仅期待听到撞击声,也希望看到物理反应。第十章集中精力讲汽车的反应。应用于汽车的基本数学也可以应用到很多类型的运动对象上。这一章也讲布料动态学中使用的物理。这些物理不仅仅使用在布,也可以用在许多复杂的对象,如头发和绳子。

 

第十一章:职业工具

本书的最后一章看看在游戏开发中使用到的工具。如果你才开始游戏开发(或者刚开始C#),看本书其余章节前先浏览这一章会更好。本章第一部分集中在编译和测试软件的集成开发环境上。其余主题覆盖了怎么样操作游戏中用到的艺术作品。艺术作品包含音频文件、二维图像和三维模型。

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值