社区
游戏开发
帖子详情
MFC和游戏框架。(需要和高手讨论)
tobato
2002-08-04 01:42:43
问题: 1. MFC为何不适合做游戏?
2. 制作游戏的时候,你是否考虑过程序的框架?如何考虑的?
3. 是否考虑过程序的面向对象特性和重用性?
4. 是否考虑过用那种模式来设计程序,已达到程序有比较好的扩展性?
5. 在制作游戏的时候,是否使用一些分析工具?
我对这几个问题百思不得其解,希望能和游戏的设计高手们讨论一下。
...全文
139
14
打赏
收藏
MFC和游戏框架。(需要和高手讨论)
问题: 1. MFC为何不适合做游戏? 2. 制作游戏的时候,你是否考虑过程序的框架?如何考虑的? 3. 是否考虑过程序的面向对象特性和重用性? 4. 是否考虑过用那种模式来设计程序,已达到程序有比较好的扩展性? 5. 在制作游戏的时候,是否使用一些分析工具? 我对这几个问题百思不得其解,希望能和游戏的设计高手们讨论一下。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guoyin007
2002-08-10
打赏
举报
回复
游戏公司应该有用什么引擎来开发产品吧,难道真的一切都得从车轮造起吗?
自己写一个游戏框架费神费时,还不一定很健壮,我想这只是在学习过程中有用吧,但真正拿到商业开发就是另一副样子了
夭夭
2002-08-07
打赏
举报
回复
1MFC在游戏中有用处吗,界面上用不上,别的更不用了,
anamnesis
2002-08-05
打赏
举报
回复
mfc本身还有mem leak
目前好像光荣的和3do的游戏很多用mfc开发的
所以说也不是不可以
但是directx等本身就是sdk方式的
硬要改成mfc框架来跑不是很爽
mfc主要是为了rad
一步到框架
但灵活性比较差
c#的默认工程现在也改回sdk了
finalvictory
2002-08-05
打赏
举报
回复
我的经验?举个例子吧。
在游戏设计初级阶段,就要尽量把游戏中所有的对象都设计好,当然不用太详细,但是每个对象的功能,行为,属性等等都要有一个清晰的轮廓,有点像一个软件工程。当你完成这一步的时候,呵呵,下面就要看造化了,你要尽可能把所有对象的共性提取出来,抽象成一套适合于所有对象的接口(在C++中就表现为抽象类和纯虚函数)。以后编程的时候,严格按照这套接口来,不到迫不得已,决不改变接口,除非发现确实是当初接口设计失误。等工程庞大起来以后,你会发现:原来增加一个原先没有料想到的模型是这么容易,只要从虚基类派生一个描述新对象的类就可以了,别的代码都不用改!如果你一次又一次重用这个模型,你会对它的内涵把握得越来越清楚,你也会把它优化得越来越合理,于是你的开发速度就越来越快了!我觉得这当中最难的地方就是抽象提取那一块,非常费脑筋,而且要非常细心,一旦有一个地方提取得不好,接口设计得不完善,事后你想一想的话,它给你带来的麻烦会呈几何级数增长!我觉得这种本事学是学不来的,更是背不来的,靠的是平常经验的积累,和对面向对象编程思想的深刻把握。
好了,废话了一通,让高手们见笑了,呵呵……
tobato
2002-08-05
打赏
举报
回复
我的意思是不是单独用MFC,而是MFC+Directx.
to finalvictory(维克) "在一开始就尽自己最大努力设计一套好的接口"
你的经验是什么?
面向对象的设计,绝对能够提高程序的可重用性,为什么感觉国外的程序或大公司做的程序比较健壮,这是可重用性产生的技术积累。比如EIDOS古墓系列,和它的3D游戏,大部分感觉都是一样的。有了技术积累才会有快速开发的能力。
key_lord
2002-08-05
打赏
举报
回复
我的切身体会是,速度不是问题,那点额外的开销在根本觉查不出来。但用MP3做背景音乐(用DIRECTSHOW)时声音会断续,可能和线程机制有关。
zhangyan_qd
2002-08-05
打赏
举报
回复
1. MFC为何不适合做游戏?
这要视游戏的性质而定,如果是一些交互简单的战略性游戏比如三国志那样的,利用MFC未尝不可。但是否考虑过MFC扩展UI的时候的麻烦?如果是对速度有要求的游戏,特别是3D实时游戏,MFC的OO特性会影响表现力。虽然传递几个虚指针浪费不了多少时间,但是请计算一下,在一个每秒30帧的3D游戏里,处理一帧的时间实际只有30毫秒,还要花多少功夫在几何计算和像素处理上?所以综合来说,MFC的特性不太适合做游戏,但如果你自己根据MFC的思路做一套适合游戏的Framework又另当别论了。
2. 制作游戏的时候,你是否考虑过程序的框架?如何考虑的?
这个毫无疑问,做什么程序不需要考虑框架呢?但是如何做就是见仁见智的了。做得多加上勤动脑而已。至于成熟的框架都是游戏公司的不传之密。
3. 是否考虑过程序的面向对象特性和重用性?
底层的处理,比如图形、声音、输入等等,可以考虑一定的重用性,但未必一定要OO这种重量级的东西来实现,C Style API也很好用,只要你设计得好。至于框架级的重用,我觉得意义不大。除非你想炒冷饭。
4. 是否考虑过用那种模式来设计程序,已达到程序有比较好的扩展性?
游戏和一般的商用软件不一样,基本没有什么可延续性,考虑所谓扩展性得不偿失。至于模式,模式从来都是后验的,做的多了自然总结出模式来,可是如果从来没做过,或者经验很少,给你个模式也用不好。不必迷信模式,但是应该不停的思考再思考。
5. 在制作游戏的时候,是否使用一些分析工具?
分析工具?UML吗?太夸张了吧?
游戏制作是一种很专业的程序类型,经验远比理论重要。这一行要形成像UML那样的方法论还需要很长的时间和更大的市场来支持。
uno
2002-08-05
打赏
举报
回复
Andre Lamothe著
《Windows游戏编程大师技巧》
中国电力出版社出版
看看大师的忠告
就知道了
ninny
2002-08-05
打赏
举报
回复
有道理
顺便问一句,大家又没有写过mfc框架下的directx程序?有代码例程给小弟参考吗?
madmanahong
2002-08-05
打赏
举报
回复
问题: 1. MFC为何不适合做游戏?
据说是慢!
2. 制作游戏的时候,你是否考虑过程序的框架?如何考虑的?
从流程考虑
3. 是否考虑过程序的面向对象特性和重用性?
没有!淘汰是一种必然!
4. 是否考虑过用那种模式来设计程序,已达到程序有比较好的扩展性?
面向对象!
5. 在制作游戏的时候,是否使用一些分析工具?
在窗口模式下用vc调试感觉良好~:)
nickHu
2002-08-05
打赏
举报
回复
我的意思是:速度已经越来越不是问题了!(当然,别用windows gui去做!)
gaf(game application framework--口气大了些!)是“第二人生工作组”开发的一套游戏编程库,免费下载,另外新书《pc游戏编程》盘中提供(比较好用,对dx的复杂初始化、释放进行了重新封装,还提供了直接用jpeg文件创建表面)
finalvictory
2002-08-04
打赏
举报
回复
to nickHu(小子):
1.有些微词:
永远不要指望用户的机器让你的程序运转如飞!没错,他的机器是PIII,可是如果你有一台PIII的话,你会甘心开着一个窗口玩游戏不做其它的事吗?我想不会吧?我的老牛C433还要玩quake的时候载东西呢!有可能他也认为你的程序足够快了,他的机器足够劲了,于是开着Winamp听歌,开着FlashGet下载,再来一个金山独霸后台扫描……呵呵,还有多少CPU分给你的程序?
2.保留意见……
3.同意!
to tobato(tobato):
1.我认为MFC之所以不能用来做游戏除了它体积庞大的原因还有别的原因,而事实上我不用它也不是因为我的程序苛刻到要在乎这些,而是我认为它的结构不适合用来做游戏。看看MFC的类框图就知道了,它是为那种典型的OnXXX()结构设计的,说白了就是“有任务就执行,没有任务就等”。做过游戏的都知道,这样可不行啊!
2.框架没用过,因为担心效率。顶天写过10万行代码,框架是自己写的……
3.up
4.使用C++,并且应用OOP。在一开始就尽自己最大努力设计一套好的接口(虽然这很难,现实一点来说基本不可能,但还是要尽力去做)并且严格按照接口规范编程。等工程庞大起来以后你就有可能发现自己当初是多么的英明!
5.down
tobato
2002-08-04
打赏
举报
回复
问一句:
Gaf 游戏框架是什么?
对于是否使用面向对象,我的观点是:使用面向对象,一定能够提高程序的适应性,和可扩展性,但是需要对面向对象的方法有比较深的了解,还需要对使用的语言有深入的了解。
nickHu
2002-08-04
打赏
举报
回复
1.
他们总说因为MFC复杂的class层次结构导致了程序速度降慢,我总是不以为然:现在开发2D游戏即便再复杂,用directX,玩家是PIII的机器也能应付了得了,directdraw已经为我们节约了大把的时间,多态的、复杂的class层次结构所占的时间总是凤毛麟角!
至于3D那就不好说了,没做过,不敢胡说八道!
2.
我所喜欢使的是gaf游戏程序框架,正在自己力求写一套游戏中用的基于ddraw的控件库,别的我认为就很难重用了(工具程序除外!)
3.
面向对象是你的奴隶,你不是面向对象的奴隶,认为有必要就用,没必要就不用!你又不是在开发library!
剩下的我认为我没有资格做答:)
我看
MFC
的过去、现在和未来
首先说句题外话,虽然我现在的“主业”是Qt,但自己扪心自问,对
MFC
的熟悉程度要超过Qt。正是由于有了对
MFC
的熟悉,才能在使用Qt时,比较清醒的认清两者的优劣之处,在此暂且不提。 这个话题也可以说是由来已久,众说纷纭,今时我也谈谈自己的感悟。 一、对
MFC
的总体看法 首先看看云风在其《
游戏
之旅-我的编程感悟》一书中对
MFC
的看法: “我所见到的程序员中,很多把C+
找不到
mfc
100u.dll怎么办,
mfc
100u.dll丢失常见的5种解决方法
此外,运行病毒扫描程序时,请确保你的杀毒软件是最新版本,并且已经更新了病毒库。具体来说,
mfc
100u.dll 文件包含了
MFC
库中实现多种功能的函数和类,这些函数和类在Windows平台上运行的许多软件和
游戏
中被使用,尤其对于那些使用
MFC
编译和构建的应用程序而言,它们在运行时
需要
调用这个DLL以执行必要的功能,如用户界面操作、窗口管理和事件处理等。如果确定缺失的是
mfc
100u.dll文件,可以从可靠网站下载与您的操作系统版本(32位或64位)相匹配的文件版本,然后将其复制到相应的系统目录。
MFC
六大关键技术之初始化过程
MFC
六大关键技术之初始化过程 我并不认为
MFC
减轻了程序员们的负担,
MFC
出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在
MFC
里徘徊了很久很久(因为那时没有书本详细介绍
MFC
的原理),毫无收获。可能朋友们会说,怎么一定要了解
MFC
的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗? 不行!!!如果这样,我宁愿永远不选择
MFC
!在学电脑之前,本人学习的东西大
SDK &
MFC
SDK和
MFC
SDK —Software Development Kit 软件开发包
MFC
—MicroSoft Foundations Classes 微软基础类 API —Application Programming Interface 应用程序接口SDK 是 Windoews 的API 集合
MFC
是 Windoews API C++ 封
MFC
六大关键技术
我并不认为
MFC
减轻了程序员们的负担,
MFC
出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在
MFC
里徘徊了很久很久(因为那时没有书本详细介绍
MFC
的原理),毫无收获。可能朋友们会说,怎么一定要了解
MFC
的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗? 不行!!!如果这样,我宁愿永远不选择
MFC
!在学电脑之前,本人学习的东西大都与艺术不无关系,小学时参加过全国书画比赛...
游戏开发
8,325
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章