用户名 密码 联盟服务 关于我们 联系方式 收藏本站
返回网站首页 PgMP认证,美国项目管理协会高端项目管理认证!大型项目与项目群管理Program Management全球权威认证


网站登录:会员 企业 专家 服务商
企业服务:PMP培训  内训课 公开课
工 具 箱:发表文章 提问题 发案例
首页动态 | 文库 | 下载 | 书架 | 访谈 | 专栏 | 专题 | 人才 | 培训 | 软件 | PMC 互动:活动 | 案例 | 问答 | 论坛 | 博客 | 圈子 
应用:基础工程软件制造活动研发  认证:PMPNPDPACPPgMPIPMPP2ISPMPIMCP建造师MPM  特色:热点奖项

PMI-ACP®认证

适合敏捷开发项目
敏捷项目管理最佳实践

网络课程

PMI-PBA®认证

重视项目商业分析
商业价值与需求分析能力

网络课程

NPDP®认证

产品管理国际认证
全球产品管理最佳实践

网络课

PMP®认证

单项目管理经典指南
年轻项目经理首选

北京 | 直播 | 录播

PgMP®认证

大型复杂项目全球标准
定位高级项目管理层

网络班

PfMP®认证

链接战略与项目
实现组织资源投资回报

全球直播

软考项目管理

信息系统项目管理师
系统集成项目管理工程师

计划 | 报名 | 经验

敏捷项目管理ACP认证培训
国际产品经理NPDP认证

游戏项目开发管理经验

作者:佚名   提交人:项目管理者联盟[佚名]   属性:提交人转载   发布时间:2012/11/5   点击:8881   【收藏本文

  5、注意显卡的差异。现在显卡有两大主流ATI和NV,虽然显卡可以被主流的操作系统所支持,但是必须注意在不同的游戏平台上还是使用不同的GPU,而在GPU之间也相应有自己的功能扩展,因此在使用特定的扩展功能时必须检查一下是否被显卡所支持。blog.mypm.net

  6、注意shader语言的差异。可编程图形语言的出现是最重要的一项发明,现在几乎每一个游戏都在使用这项技术,而正由于它的重要性现在出现了多个标准,HLSL只能用于DX中,而OpenGL由于标准的开放性更加混乱,每一个显卡厂商都根据自己的产品推出相应的扩展指令来实现shader,而NV更推出了GC可以同时适用于DirectX和OpenGL,这是一个非常好的想法,不过由于这不是一个开放的标准因此没有得到其他厂商的支持,在ATI显卡上运行GC代码你会发现比在NV显卡慢了几个数量级,由于上面的情况你需要根据不同的平台相应进行封装,方法和第4条一样。下面的建议值得你去考虑,当你使用DirectX平台时应当使用HLSL,而对于OpenGL可以封装为两个模块,根据显卡的不同进行切换,也可以使用GC特别为NV的显卡封装一个模块来对它进行优化。项目管理者联盟

  这里需要补充一点,如果可以的话尽量和OGRE一样为不同的操作系统进行封装,这样方便在不同的系统之间进行切换。项目管理者联盟

  接着看看如何实现游戏无关性,通常游戏引擎如果要实现游戏的无关性是非常困难的,这也就是说要求你的引擎适合所有的游戏类型,这太难了,考虑一下一个RPG游戏引擎如果用来做一个RTS游戏那简直是不可能,类似的你不可能拿Q3引擎来做RTS游戏,但是如果引擎设计的非常良好的话还是可以实现部分的游戏无关性。也就是说你可以将引擎的一部分模块设计成通用的模块,这样在开发其他类型的游戏时可以重用这部分的代码,这部分代码包括底层显示,声音,网络,输入等部分,在设计它们时你必须保证它们具有良好的通用性。项目管理培训

  在这些问题之后你应当考虑程序的国际化问题。这也是非常重要的方面,因为你的游戏可能在其它国家发行,这主要是注意语言方面的问题,尤其是字符串的处理,在C++的标准库中提供了一个String容器,它提供了对国际化的良好支持,因此在引擎中你需要从头到尾的使用它。项目管理者联盟

  接下来我们看看本文最重要的内容,如何组织一个引擎的架构。这是引擎最重要的部分,为什么重要呢?如果我们把引擎看作一间房子的话,那么架构可以看作是房子的框架,当你完成这个框架后就可以向框架内添砖加瓦盖房子了。下面让我们来看看如何构建这个框架,通常一个大型的软件工程是按照模块化的方式来构建的,编程之前要进行必要的需求分析,将软件工程根据不同的功能划分为几个较大的功能模块,对比较复杂的模块你可能还需要将它分为几个子模块,并需要给出各个模块之间的逻辑关系。当你编写一个引擎时也需要进行相应的功能分析,让我们看看如何来划分引擎的功能模块,如果按照上面的游戏无关性和相关性进行分析的话我们可以发现它可以分为游戏相关层和无关层两层,游戏相关层由于包含了游戏的逻辑性代码也被称为逻辑层。逻辑层应该位于引擎的最顶层,如果你在开发一个局域网或在线游戏的话,按照网络程序的C/S开发模式,这一层应该分为两个模块,服务器和客户端模块,它包含了和特定游戏相关的所有功能,如AI,游戏角色,游戏事件管理,网络管理等等。在它下面就是游戏无关层了,包括了引擎核心模块,GUI模块,文件系统管理模块等等,其中引擎的核心模块是最重要的部分,逻辑层主要通过它来和底层的模块打交道,它应该包含场景管理,特效管理,控制台管理,图形处理等等内容。在向下就是一些底层模块了,如图形渲染模块,输入设备模块,声音模块,网络模块,物理模块,角色模型模块等等,所有的这些底层模块必须通过核心模块来和逻辑层进行交互,因此核心模块是整个引擎的枢纽,所有的模块都通过它来进行交互。项目管理者联盟

  下面看看应该如何来进行模块的设计,这里有一些通用的规则是你应当遵守的:blog.mypm.net

  1、减少模块之间的关系复杂度。我们知道通常每一个模块内部都存在大量的对象需要在各个模块之间进行相互的调用,如果我们假设每一个模块内部对象的数量为N的话,那么每两个模块之间的关系复杂度为N*N,这样的复杂度是不可接受的,为什么呢?首先是它非常不利于管理,由于各个模块都存在大量的全局对象,并存在相互依存的关系,并且各自建立的时间各不相同,这就存在初始化顺序的矛盾,考虑这种情况,一个模块中存在一个对象需要另外一个模块中的对象才能进行初始化,当这个对象进行初始化时而另外的对象在之前并没有初始化就会引发程序的崩溃。其次,不利于多人进行同时的开发,由于各个模块存在相互依存的关系,当复杂度非常高时就会出现模块与模块的高度依存,也就是说一个模块没有完成下一个模块就无法完成,因此就需要一个模块一个模块按照它的依存关系进行编程,而无法同步进行。因此在设计模块时的第一件事情是减少模块之间的复杂度,为此你在设计模块时必须为模块设计一个交互接口,并约定所有模块之间的交互必须通过这个接口来进行,这样模块之间的关系复杂度就降低为1*1了,非常方便管理,同项目管理者联盟文章

  时这非常利于多人之间进行开发,假如每个人负责一个模块的开发的话,那么你只需要先完成这个接口类,其他人就可以利用这个接口进行其他模块的开发,而不必等到你完成所有的类再进行,这样所有的模块都是同步进行,可以节省大量宝贵的开发时间。

  2、对类的抽象接口而不是类的实现编程。这是《Design Patten》一书作者对所有软件编程者的建议,它也对游戏编程有很大的指导意义。对模块中所有被其它模块使用的类都要建立一个抽象接口,其它模块要使用这个抽象接口进行编程,这样其它模块就可以在不需要知道类是如何实现的情况下进行编程。这样做的好处是在接口不改变的情况下任意对类的实现进行改变而不必通知其它人,这对多人开发非常有用。项目管理者联盟

  3、根据调用对象的不同对类进行分层。实际上本条还是对第2条的补充,分层还是为了更好隐藏底层的实现。通常一个类不仅被其它模块使用还要被自身模块所调用,而且它们需要的功能也不同,因此我们可以让一个类对外部显现一个接口而对内部也显现一个接口,这样做的好处和上面一样,因为一个复杂的模块也是多人在进行编程的。项目管理者联盟

  4、通过让一个类对外显现多个接口来减少类的数量。减少关系复杂度的一个方法是减少类的数量,因此我们可以把完成不同功能的类合并成一个类,并让它对外表现为多个接口,也就是一个类的实现可以继承多个接口。项目管理者联盟

  上面的建议只是起到参考作用,具体实现时你应该根据情况灵活使用,而不是任意乱用。

  下面的内容涉及到具体的编程技巧,对于引擎中的全局对象你可以使用Singleton,如果你不了解它是什么可以阅读《Design Patten》,里面有对它的详细介绍,具体的使用可以通过OGRE引擎获得。service.mypm.net

  调用模块内的对象可以通过类厂来实现。COM可以看作是一种典型的类厂,DX就是使用它来进行设计的,而著名的开源引擎Crystle Space也是通过建立一个类似的COM物体来实现的,但是我并不对它很认可,首先构建一个类似COM的类厂非常复杂,开销有点大,其次COM的一个优点是可以对程项目管理者联盟

  序实现向下兼容,这也是DX使用它的重要原因,而一个游戏引擎并不需要。OGRE中也实现了一个类厂结构,这是一个比较通用的类厂,但是使用起来还是需要写一段代码。我比较欣赏VALVE的做法,它通过使用一个宏就解决了这个问题,非常高效,使用起来也非常方便。这个做法很简单,它把每个项目管理者联盟

  模块中需要对外暴露的接口都连接到一个内部维护的链表上,每一个接口都和一个接口名相连,这样外部模块可以通过传入一个接口名给CreateInterface函数就可以获得这个接口的指针了,非常简单。下面看看它的具体实现。它内部保存的链表结构如下:项目管理者联盟

  class InterfaceReg项目管理者联盟

  {项目管理者联盟

  public:项目管理者联盟

  InterfaceReg( InstantiateInterfaceFn fn , const char *pName );项目管理培训

  public:

  InstantiateInterfaceFn m_CreateFn;项目管理者联盟

  const char *m_pName;项目管理者联盟

  InterfaceReg *m_pNext;项目经理圈子


<<上一页 1 2 3 4 下一页>>
项目管理者联盟PMP认证中心
[相关文章] [网友互动]
·项目经理、产品经理和研发人员之. (1239)项目管理者联盟08-24
·如何对项目的研发团队进行年终绩. (1124)项目管理者联盟07-07
·整车新产品研发的多项目管理分析 (1798)项目管理者联盟01-24
·理想的体制,无言的结局 ——一个 (2227)赵春明01-10
·研发质量管理的“红与黑” (2116)项目管理者联盟11-03
·产品经理与研发经理要如何分工? (1485)项目管理者联盟07-08
·研发项目经理如何做好需求管理? (1617)项目管理者联盟06-24
·挥起三板斧,做有效有用的研发IT. (1513)项目管理者联盟06-21

04-14[帖子] 产品研发项目如何借力易趋项目管理平台. (113)
02-26[帖子] 项目管理交流会 AI+研发提效:聚焦交付. (550)
02-08[帖子] 研发效率低下?试试这些改进方法 (747)
12-10[帖子] 易趋携手华立科技,联合搭建研发信息管. (847)
11-20[帖子] 项目管理交流会 产品研发项目管理主题会 (860)
02-19[帖子] 易趋中标北汽重卡项目管理系统项目,助. (6922)
04-18[帖子] 价值导向型研发管理数字化建设方案——. (11230)
02-27[帖子] “研发型企业PMO体系的建设与发展”项目 (9625)
[发表评论]
本站热点
· 华师大CTO学院:科创生态建设与创新项
·宏发电声江玫瑰谈PgMP:“下好一盘棋”
·PgMP:交付能力与创造未来的项目管理方
·开放讲座|《项目组合管理与PfMP认证》
·开放讲座|项目组合管理与PfMP认证
·开放讲座|PgMP:项目管理思维与方法论
·开放讲座|《项目组合管理与PfMP认证》
·网络讲座|《项目组合管理与个人职业发展》
·开放讲座|《项目组合管理与PfMP认证》
栏目说明
    《文库》栏目为项目管理者联盟网站核心栏目,收录了十大行业项目管理文章5000余篇,囊括了项目管理五个阶段、九个知识领域的相关文章,是广大项目管理爱好者学习的知识库,欢迎大家发表原创文章、转贴文章,或直接发给编辑。须联盟会员且登陆后才能发表文章。
敏捷项目管理ACP培训
项目管理活动
活动QQ群:531390275
免费积累PDU,仅500人

2022年项目管理活动计划
2021活动精彩回顾
原创排行榜
 项目管理评论杂志 311 高扬 106
 乔东 100 项目管理 84
 高国伟 61 人月神话 60
 张为 59 郭致星 52
 蒋昕炜 46 肖杨 38
 曾伟强 37 潘德有 36
搜索文章
关键词:
行  业:
团 队   成 本   风 险   进 度
沟 通   采 购   质 量   合 同
更多>> 专题集锦

企业项目化管理

PMO实践与应用

如何处理项目客户关系

更多:
经理访谈
更多:
个人专栏

王树文

赵春明

高国伟

更多:
项目管理者联盟特刊
联盟特刊是对网站会员发行的内部刊物,刊物内容包括:案例及分析等,得到了会员好评。
电子期刊:
特刊下载:
2017合刊  2016合刊  2015合刊 
2014合刊  2010合刊  2009合刊 
2008合刊  2004合刊  2005合刊 
2006合刊  2007合刊       
施工企业管理
《施工企业管理》创刊于1986年1月,中国施工企业管理协会主办,是反映施工企业管理杂志。
浏览往期:
建造师杂志
《建造师》杂志由清华国际工程项目管理研究院主办,是中国面向建设企业管理人的高端杂志。
浏览往期:
更多>> 推荐文章
09-02·项目集管理:构想一种不同.
08-17·项目经理“催活儿”的正确.
08-17·建筑工程项目管理中施工现.
08-17·进阶项目经理必备的复盘方.
08-17·项目管理协会PMI发布新人才
08-17·互联网大厂项目经理面试的.
08-17·项目经理要如何提高自己的.
08-17·管理改进中几个确实有用的.
08-17·项目经理提升职场能力的20.
06-14·项目经理搭建团队,需要看.
06-14·5A学员董雏:PMP取证重要,
06-14·成功管理能源项目的技巧和.
06-14·拥抱敏捷—计划发布与冲刺
06-14·从PMP到PgMP :不畏浮云遮.
06-14·这30+项目管理工具,优秀项
06-14·深度剖析项目管理五大痛点.
关于联盟 | VIP会员 | 培训服务 | PMP认证 | PgMP认证 | 刊物出版 | 沙龙会议 | 人才服务 | 广告投放 | 联系我们 | 友情链接

项目管理者联盟 版权所有 | 京ICP备10055250号-11 | 京公网安备 11010202009440号

如转载本站文章,必须于文章开头处注明转自“项目管理者联盟”,并注明原作者
PMI,Project Management Professional, OPM3, PMBOK, PMP,PgMP,PfMP,PMI-ACP,PMI-PBA
and the PMI Registered Education Provider logo are registered trademarks of the Project Management Institute, Inc.