OGRE 3D游戏开发框架指南

出版社:电子工业出版社
出版日期:2010-5
ISBN:9787121106910
作者:邸锐
页数:193页

作者简介

《OGRE 3D游戏开发框架指南(含CD光盘1张)》主要用来帮助读者从一个引擎研究者成为一个游戏开发人员,《OGRE 3D游戏开发框架指南(含CD光盘1张)》的最大特点是依靠代码来推进进度,以三周21天的时间顺序来编排主体内容,帮助读者熟悉OGRE3D演示程序所使用的框架,并完成一款《打地鼠》游戏,采用Orz框架来代替OGRE3D演示程序框架实现《太空侵略者》这款经典游戏,以及Orz框架的使用细节。每一个课程都有相关的代码提供给读者参考,读者可以更直观地了解学习《OGRE 3D游戏开发框架指南(含CD光盘1张)》内容。
《OGRE 3D游戏开发框架指南(含CD光盘1张)》适合有一定的OGRE3D基础知识、希望进一步学习游戏开发的游戏爱好者,以及需要一款稳定的开发框架作为开发基础的个人和小型游戏开发公司。

书籍目录

第1章 引言 1
1.OGRE 3D的起源 1
2.关于Orz游戏开发框架 3
3.如何使用本书的随附光盘 5
4.本书使用指南 7
第2章 21天课程
准备工作
第1周·星期日 从OGRE 3D演示框架开始
第1周·星期一 第1个3D程序
第1周·星期二 打地鼠
第1周·星期三 地鼠出击
第1周·星期四 动起来
第1周·星期五 击中地鼠
第1周·星期六 记录在案
第2周·星期日 Orz开发框架的简单使用
第2周·星期一 准备出发
第2周·星期二 战斗机起飞
第2周·星期三 侵略者来袭
第2周·星期四 开火!
第2周·星期五 击中要害
第2周·星期六 震耳欲聋
第3周·星期日 搏击俱乐部
第3周·星期一 插件系统
第3周·星期二 有限状态机
第3周·星期三 A*寻径
第3周·星期四 事件驱动
第3周·星期五 完备
第3周·星期六 搏击
第3章 高级开发框架
3.1 对象ID管理器
3.2 任意类型存储器
3.3 消息系统
3.4 时钟工具
3.5 定时器管理器工具
3.6 基于有限状态机的逻辑管理工具
3.7 单件工具
3.8 自动列表工具
3.9 异常处理工具
3.10 动态库及插件管理工具
3.11 Orz游戏框架
3.12 使用逻辑层
3.13 系统层
3.14 未来
附录A Boost部分工具
附录B 部分设计模式概述
附录C OGRE 3D概述

编辑推荐

  免费打工仔呕心力作国内第一本OGRE编程经典。  即使我无从阅读一本用中文撰写的书籍,我依然非常欣慰地看到,在地球的另一侧会有这样一群人满怀激情地加入到OGRE事业中,并且投入大量的时间来完成此书,更重要的是,有这样一群人,比如你,出于对OGRE的热衷,来阅读此书。  因此我要感谢《OGRE 3D游戏开发框架指南》作者为此而做出的不懈努力,并且希望你能从《OGRE 3D游戏开发框架指南》中收获对OGRE更多的满意,就像我设计之初所希望的那样。哪天我们真应该见个面,或许你还可以教我一些有关3D的中文词汇。

前言

  推荐序  当我在2001年开始做OGRE项目的时候,我的初衷只是想做一些可以帮助开发者(当然首先也是为了我自己)尽可能减少实时3D的开发难度而同时又增加开发灵活性的事情。这在那个时候确实不是什么宏伟的计划,而仅仅是出于个人角度的原本应该做的事情,而最终却被全世界范围内大量开发者所支持,这着实令我惊讶。我以前从没有想过OGRE能在当今如此流行,更没有想到我能有幸被邀请为本书做一个简短的序言。即使我无从阅读一本用中文撰写的书籍,我依然非常欣慰地看到,在地球的另一侧会有这样一群人满怀激情地加入到OGRE事业中,并且投入大量时间来完成此书,更重要的是,有这样一群人,比如你,出于对OGRE的热衷,来阅读此书。  因此我要感谢本书作者为此而做出的不懈努力,并且希望你能从本书中收获对OGRE更多的满意,就像我设计之初所希望的那样。哪天我们真应该见个面,或许你还可以教我一些有关3D的中文词汇。  Since I began the Ogre project in 2001, my primary goal was to create something that helped developers (and by that I mean myself first of all!), to do what they wanted to with real-time 3D, with as little difficulty and with as much flexibility as possible. There really wasnt a grand plan at the time, just a personal vision of how I thought things should be done, which as it happens turned out to be very compatible with the visions of a lot of other people around the world too. This was a surprise to me - I never imagined Ogre would become as popular as it is today, and as such Im very honoured to have been invited to write a small foreword for this book. Even though I wont be able to read it - since I cant read Chinese - its very pleasing to know that there are people on the other side of the world who care enough about the project I started to invest their own time in writing such a book, and that there are people, like you, who want to read about it.  So my thanks go to the authors for their efforts, and I hope you all get as much satisfaction out of using Ogre as I did creating it. Should we meet one day, perhaps you can teach me some 3D-related words in Chinese.  I hope that sounds ok.  Good look with the book!  Best regards Steve  Steve Streeting  OGRE创始人和ogre3d.org项目主管

内容概要

OGRE 3D引擎的中文社区(http://ogre3d.cn站长。

章节摘录

  (1)创建并维护Root类型的生命期,该类型是OGRE 3D引擎程序的入口点,作为整个引擎的Facade模式实现(参照附录B),负责维护主要组件的生命周期和调用流程。  (2)创建并维护摄像机(Camera)。  (3)创建并维护场景管理器(Scene Manager)。  (4)创建并维护渲染窗口(Render Window)及相应视口(Viewport)。  (5)载入游戏所需资源。  (6)设置渲染相关参数。  (7)提供创建场景的方法,用于派生类对场景进行相应的布置。  (8)创建Example Frame Listener 或者派生的类型并注册到引擎中,这个类型继承于:Frame Listener(帧监听器)。在每一渲染帧更新前后被调用,一般处理游戏逻辑的更新。  (9)调度游戏循环。  以上一些OGRE 3D图形引擎的相关概念可以在附录c中找到。  Example Frame Listener的主要作用是监听系统输入,并对场景做出控制反应。  (1)处理OIS提供的输入消息(键盘、鼠标和手柄)。  (2)创建一个简单的界面,并在其中记录渲染信息。  (3)提供每个渲染帧前后的调用事件给派生类型使用。  以上两个类型组成OGRE 3D提供的最简单游戏框架,其大部分方法被定义成虚成员函数,可以通过继承来修改并加入相应代码完成不同的程序。然而这个框架“过分”简单,其目的只是为了快速创建并展示OGRE 3D应用程序,所以其中并没有提供扩展的规则和方法。但其可以很好地说明游戏框架要做的工作,让我们了解如何在一个已有的框架基础上来构造完整的游戏。  编译并生成安装《七天打地鼠》工程,相应的方法在光盘的介绍中可以找到。

图书封面


 OGRE 3D游戏开发框架指南下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计5条)

  •     没有人,比我更了解这本书。记得《围城》的书后杨绛女士拆解着所有围城中人物的故事,小说毕竟是小说,做为一本技术读物,其实能八卦的地方真的很少。我也想象堂吉诃德那样拆解掉他。之所以说我甚至比作者本人还了解这本书,其实不仅仅是那句只缘生在此山中把。我本科的专业是化学,由于学校的社团组织,结识了本书的作者(免费打工仔[以下简称打工仔])。我们一开始都是从网页做起的,在学校里不务正业的那段日子里,我开始鼓捣asp,php,html,css...直到有一天我认识他。我知道我还能干另外一个事情叫做游戏。这之前我没有任何c++方面编程经验,事实上从写第一个游戏开始,我也搞不清什么是面向对象,当然背书我会。仅仅是在学校acm比赛里会写几句叫“代码”的东西,无外乎跟现在很新的新人一样,我知道有if和for这两个玩意。我一直自以为我应该是做学术的人,不过2007年我放弃了读研究生的机会。成长的痕迹渐渐刻在我身上的同时,时常提醒我不应该再无聊下去,不应该再为了混迹3年去考一个无聊的考试。我喜欢随遇而安但有时候又喜欢冒险,很奇怪,性格上我象个双子座,但是我是金牛的。跟打工仔不一样,他天生就是为梦想而生的,他会利用一切的环境构建他意淫的那些东西。所以2007他选择了创业,而我就是在那里跟着他开始了亲密接触。我还依稀记得刚去上海的那段时间,我们挤在一个15平米的狭小的房间里睡觉的情景。还记得我们4个人的不像样的小团队一起开例会的样子。他试着做个一个领导者,尽管在心智上我们都差不多的稚嫩,梦想是什么呢?当时,现在回想起来我其实也不是很清楚。但是那是我度过的工作以来最快乐的一段时光,在一个纯粹的近乎没有任何商业气息的环境下我学习什么是c++什么是图形学,而这一切都轻松和自然。尽管和那时比我现在有比较不错的薪水,比较不错的职位,可真的是我想要的么?还是质朴才是?我清楚的记得公司里工作的场景,那时候我接受的教育就是结对编程,敏捷建模,测试驱动。直到今天我想99%的大公司的新人也没有这样的待遇。而这些恰恰是我在经历了很多项目和项目管理后所理解的最重要的东西,很幸运在我还不会写代码的时候就接触到了这样的训练,我觉得无比的欣慰。和书里的给你展示的精髓一样,框架或许比库更重要,软件工程远比软件更重要。正如乔布斯说的,小时候做的每件看似无关的事可能会影响你的一身。有点牵强,毕竟我只是整个IT的沧海一粟,或许只是大一点而已。我看到现在大部分公司的情况是,很多刚刚入行的程序员很聪明也很有激情,可是由于公司项目管理方面的问题,日复一日的加班,慢慢磨灭他们的棱角,他们开始过起得过且过的生活,比起他们我实在太幸福了。很多人问我大学毕业择业的第一个选择应该是一个大公司还是小公司,我想这谁也说不清,在中国的IT界如果你能碰到一个公司,一个主管,跟你讲或许令你昏睡的人月神话、测试驱动、XP,敏捷建模而不是你感兴趣的面向对象,多态,图形学,shader,你就偷着乐把,并且跟着他走下去,那是谷歌才能享受到的。那段时间我明白了很多事情,我开始渐渐知道这个社会上每天在挑逗人们神经的那个东西--金钱是多么无趣的一样东西。那时无论我们做什么项目,成功抑或失败,从没有气馁过。实际上我们也不知道什么是失败,我们快乐的写着我们愿意为之付出时间的东西,就像在写诗。orz是一个作者写了5年的东西,一个5年用心做的程序,无论如果都会给你展现一个无穷的力量。从一个很小的框架开始写起,到今天,经受了国内无数Ogre爱好者的把玩,已经逐渐变成了一个易用且完善的软件。关于orz书中的所有内容,我就不赘述了。倒是三个范例我都非常熟悉。第一个范例是我曾经做过的一个外包项目,人手很少的时候,我一个人完成所有服务端逻辑跟客户端渲染。也是令我快速成长的一个项目,我觉得无论看了多少书,也没有程序多写代码来的快。古语大家都知道么~哈。当然本文中的不是我那时候的代码,只是打工仔借那个创意自己做的一个范例。第二个范例是真正的我在打工仔手下做的,每一个步骤我都历历在目,我第一次知道了什么是结对。第一次开始写一种程序叫c++,第一次接触IDE忙的手足无措。第一次在键盘上快速的敲击而不是在聊天。第三个范例,是一个电影,我们喜欢的,反正我是喜欢的为数不多的文艺片之一。当然也是借那个话题的一个创意,展现了一种新的编程方式。我们受开源社区精神感召知道在软件的世界还有一种东西叫免费和共享。就象大教堂与集会,就像他的名字免费打工仔。今天我在一个稍大点的公司里,而打工仔还在忙碌着他的理想东奔西走,我知道他写出这本书是顺理成章的,但是也象序言里说的那样,他毫不夸张的说出了写这本书时的状态,就是封面用的词:呕心沥血。你知道一个成熟的想法到最终的产品,甚至整理成书是一个很漫长的过程。这本书,对于新手来说,或者对于一个根本不知道游戏是怎么做出来的朋友来说绝对是一个至宝。对于已经在游戏行业混迹多年的老生他也绝不是一本幼稚读物,我想本书传达的思想远比那一两句代码要深。当然新人会很快乐的在书中发现21天你就可以完成3个像样的东西。但是我也要告诉你,不要指望21天你就能明白一切,希望作者给你的启迪能让你去思考你的人身。如果本文也对你有帮助的话,那远在另一边的我们同样会很开心。直到最近我们还在聊着语言的细节,编程的范式,软件工程,做人与做事,他称我们是学术上的交流,我很乐意接受。我们喜欢一些奇怪的东西,如果在一起交谈,旁听的一定认为我们两个怪物。我是全宇宙最先拿到这本书的,比打工仔本人还早。:) 我激动的写下这一切,文字尽管拙劣,我也懒的再改,我迫不及待的让思绪顺着刚开始的路一步步走下去。这不仅仅是本书,我觉得应该是对过去的交代和勇敢的面对未来,在混乱无序的游戏界和混乱无序的社会里,勇敢的去实现自己的理想。而这个理想有可能是很平凡的,尽管是伟大的,不切实际的,也会很淡然的说出来。就像我跟打工仔在一起的时候,他很不经心的告诉我的那样:这是我小时候就想做的。是的,小时候,我们曾经的理想,曾经的追求是否已经被社会涂抹的模糊不清了?我们最纯真的追求是不是一次次被世俗打击?但是骨子里的梦还是要做下去,做我们本来的样子,不是社会强加给我们的样子。开心的活下去,开心的写程序如果是你喜欢的。记住:我们是艺术家,我们不是程序员。至于价格,我强烈要求免费打工仔吐血打折出售,开玩笑,他关注这本书的热销度远比多点的版税要高的多。甚至我可以强烈建议盗版商关注。别忘记他曾经自己出钱送过Ogre的中文版翻译。所以那些出生时就没带在身上的东西,我们也不会太在意。
  •     让我想到了一些书(遵循相同的方法学):1. 讲述 ACE 的那两卷《C++ 网络编程》http://book.douban.com/subject/1165791/2.《面向对象的游戏开发》http://book.douban.com/subject/1392493/过度设计:为了解决结构复杂性,而引入设计模式,后者慢慢地变成了更复杂的东西(异化)。本书的设计方法的确精妙,例如实现游戏 Entity 间交互的消息系统。本书也比《面向对象的游戏开发》更实际,有可运行的代码示例,而不像前者只是设计和代码片段。但是这书以及框架的定位在哪里?1. OGRE 定位是一个图形基础引擎。2. Unreal 等商业引擎定位是高层游戏引擎,面向设计者(美术、策划、游戏性程序员)。但同时允许做底层的优化。而本书框架和本书有点高不成、低不就。仔细想想,实际是为“修炼中的游戏引擎程序员”准备的“把纷乱的基础引擎和通用代码组织到一起的规范约束”。正途:1. 把框架改进为引擎,增加可视化编辑、脚本系统、资源打包等。可只针对特定的游戏类型。2. 放弃这个框架,转向成熟的引擎,做 RAD 方法学的游戏性程序员。3. 用这个框架做小游戏,这时引擎程序员和游戏性程序员职责区分不明显。
  •     看名字以为是讲ogre的,其实主要是讲ORZ,ogre只是附带品但是这本书仍然是很不错的,ORZ提供了很多有意思而且非常有用的功能,作者所阐述软件开发思想也让我收获很多但是我对ORZ有一点担忧,用了这么多c++高级特性,新手入门ORZ的难度不是一般的大,一个好的框架应该是易于使用的,但是目前来看ORZ只适合c++老手总的来说ORZ是很不错的

精彩短评 (总计10条)

  •     感觉跟我目前的构架思路不是很符合,最大的一点就是貌似中文社区已死,根本找不到讨论的人。
  •     内容还可以吧,不知道怎么定位这本书,新手看不懂,老手不屑看。不过我当时刚学游戏,看了这个书还是解决了大部分的疑惑。
  •     第一本ogre引擎的书,启蒙可以,但是有点坑爹 价格~
  •     太坑人的感觉 不如看 Pro OGRE 3D Programming
  •     恭喜邸兄出书啦,家里还保存着你当年寄来的打印版本呢:) 朝着目标继续战斗吧!!!
  •     第二章第三周和第三章的价值超越游戏制作本身,Orz框架分布式离散化的设计理念和层次结构在各种方面都跟OzJS的微框架理念和模块体系惊人一致且异曲同工
  •     也就从图书馆里借来看看,不值得购买。挂着个ogre的招牌,纯粹是给orz打广告的,而且写的不是一般的差,看过对游戏开发也没多大用处。
  •     游戏框架有点过度设计。
  •     坑爹呢,这货就是一阴谋.编辑约稿的时我想:ogre3d已经有一本经典著作了,不需要第二本了,要写就写我自己的东西.所以我决定里面除了开始的几个章节之外都介绍游戏架构为主.我知道买书的人都会认为被骗了,但是只要他们坚持学下去就会发现架构的作用远远重要于引擎本身.会有很多人骂我,但是我觉得这是有意义的.看到这里的人和读者,我对你们道歉,这本书出版社一共给我6000块钱,如果你不喜欢这本书或者觉得不爽,可以把书原价退还给我,6000元还完为止. 但是如果你能留着这本书的话,我相信总有一天它会帮到你的. 抱歉~
  •     评价
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024