游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 免费打工仔

我理解模板编程的意义

[复制链接]

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2007-1-4 11:13:00 | 显示全部楼层

Re: Re: 我理解模板编程的意义

lit0mail: Re: 我理解模板编程的意义

D垃圾游戏就不用说出来了..不一管你是xbox ps3
据我所接触的销量好,可玩性强的ps2游戏都是用c做的..
你常...

DOOM3、Half Life2、Unreal3 Engine、Farcry 。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2007-1-4 15:52:00 | 显示全部楼层

Re: Re: 我理解模板编程的意义

lit0mail: Re: 我理解模板编程的意义

D垃圾游戏就不用说出来了..不一管你是xbox ps3
据我所接触的销量好,可玩性强的ps2游戏都是用c做的..
你常...


首先说明一下,在现在这个时代商业游戏基本上是不可能一个人完成的。
当然 在学生时代我也做过同人作品,如果你认为那个是作品的话。

如果你认为
C=好玩 C++=不好玩。
这样的提法让人觉得很新颖。

据如同说
木剑=高手  屠龙刀=菜鸟
一样

C和C++只不过是工具,为什么非要和好玩不好玩联系上呢?
宫本老大从来不写程序,但是拿出来的作品哪个不好玩?
卡马克大神天天写程序,但是Doom3德声光效果上去了,但有多好玩?

好玩是策划的事情,不是程序能做的。

宫本茂大神说过盒子理论。技术是一个盒子,创作人员要在这个盒子中尽量作出最好玩的东西,这个盒子越大,给创作人员的空间越大。就越可能做出好玩的游戏。

如果说C和C++是两个盒子。

哪个更大?


如果你愿意,可以在C++环境中写和C一样的代码,编译之后的效率不必C差(可能更高)。虽然我不是很甘心说这种话,C的特性语法库,C++一个不少。我包含了你。

C++不是一种语言,这是一个C++届牛人说的。
1它包含了完整的C
2它包含了完整的面向对象语言
3它包含了将要完整的模板编程语言
4它包含了完整的STL魔板库

他们只是工具,至于怎么使用使用户的选择。你可能都在用C++的环境写C语言不是么?那只是一部分。没有必要排斥什么。C++只是大一点的盒子。多功能瑞士军刀,如果你要抽出C那把刀,一点都不比c差。但是其他的刀更锋利,也相对难于使用。


退回来说一句,在技术上游戏开发者既是先锋,又是时代的遗老遗少。
所有新鲜技术都是在游戏前沿被应用的,比如人工智能或者图形学的领域。
而对于软件本身的学问,游戏者(某些)优势抱着排斥态度的。

某些人:
Dos人流程最早排斥 Windows程序得回调。
C人的过程排斥C++的面向对象。
RTTI这种语言特性也被排斥过。
软件工程学在游戏届更是无人问津。

幸好我是学Ogre的,Ogre是游戏届的另类,注重结构而不是功能。

Ogre说:在发展中,好的结构能带来更多的功能,而反过来则不可以。

似乎跑题了,
我们在来说C++,设计模式是基于面向对象的,C++当然比C更适合于设计模式的应用。而这是软件工程的范畴。软件工程对于大型程序的作用是毋庸置疑的。在今后,随着储存量信息量的增加,C++是不得不考虑的选择。

至于为什么有那么多好游戏仍然用C来做呢?我不知道你是从哪里得到的资料。我也确实看到Q3是C写的。

我觉得对于卡马克等级的高人,语言已经不是他们的障碍,对于他们而言木剑确实能胜过屠龙刀。但这只是对这些高人而言。
不过卡马克卡神也自食其果,用C语言写虽然效率有余,但结构不足。扩展性几乎没有,在惊叹于各种奇妙的编程方法的同时,虚幻帝国异军突起。好的结构好的扩展好的开发工具。虚幻3已经是当代最流行的游戏引擎,甚至被ps3和x360作为官方指定。

在技术上卡神是神,但在商业上,虚幻的成功是有目共睹的。

卡马克在这次id的大会上承认:每秒120frame的画面和每表60frame的画面并没有什么本质的区别,以后的发展将会注重游戏内容。

为什么要排斥C++?C++已经包容的把C包含在里面,你为什么就不能反过来包含C++的新特性?

不要被经验束缚住思维,这扇门后面的世界比你想象的精彩






193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2007-1-4 16:12:00 | 显示全部楼层

Re: Re: 我理解模板编程的意义

据我所接触的销量好,可玩性强的ps2游戏都是用c做的..
我接触过5000个游戏
用c做的效率,性能都比c++高很多..


小弟在这里斗胆问一句:哪5000个游戏?
这个消息却是很吊!ps2 5000个用C做的游戏。

我是任饭,一直都骂PS,再Ps2时代受过不少气,你告诉我这个消息是真的是假的?如果是真的,我回去笑索饭去。 [em4]

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-1-4 17:48:00 | 显示全部楼层

Re:我理解模板编程的意义

发表个人的几点看法:
1.  语言是死的,人是活的
2.  语言是为了人类表达思想而存在的
3.  影响表达的因素有很多,其中表叙的人的原因占主要
4.  出家人不打诳语,没有调查就没有发言权
5.  LS请注意讨论归讨论,没有必要通过人身攻击来证明自己的观点正确
6.  template在最初设计时根本没有想到今天会被人玩成这个样子,谁都没想过
7.  使用template做递归之类属于奇技淫巧
8.  编译时间虽然一定程度上不及运行时间重要,但也是需要重视的
9.  loki算是把template玩得最转最花的了,可c++他爹看了却婉转得表示这是过于聪明的人写出来的过于聪明的东西
10.以上

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2007-1-4 18:00:00 | 显示全部楼层

Re:我理解模板编程的意义

看来马肝兄也喜欢一贴多发啊:)
马肝兄是前辈,所言既是,小弟不敢胡乱造次。

但为模板,只好搬出C++标准委员会来说,
标准委员会对C++的定义:

 C++是一门偏向于系统编程的通用编程语言。它

   ·是一个更好的C

   ·支持数据抽象

   ·支持面向对象编程

   ·支持泛型编程

本人理解有两条。
首先,他要比C好“是一个更好的C”。
然后,泛型编程已经载C++体系中相当重要“·支持泛型编程 ,1/4的特性”



之前还看过C++之父对未来C++发展方向的说明,但找不到文章,只记得5条新特性有3条半时给模板用的。

而且后面评论说,这个之父,平时说C++特性的时候一直说谨慎发展。
但到了模板就比谁都激进了。

小弟才疏学浅,不在胡乱造次。
但“之父”说的话,总还有些许道理吧。如果他都能激进,小弟跟着疯狂也没什么大不了的事情。

爱因斯坦发明质能方程的时候,没有想到去炸了大阪和广岛,也没想到苏联的老鼠被辐射的那么大。

就算爱因斯坦老人家生下来的时候大家也都没发现他有什么价值,他妈妈也不会说我生下来一个相对论。

但是,天才总有成长到顶天立地的一天,模板也是这样。

既然“之父”都这么说了。那么大家都认了吧


15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-1-7 23:38:00 | 显示全部楼层

Re:我理解模板编程的意义

泛型还是不成熟的思想,与传统的OO思想还没法比。谈不上平起平坐。

真正泛型的设计模式也没有几个。可怜loki用泛型还是通过奇技淫巧来实现传统OO的编程思想。哎~

泛型顶多只能算是能在编码时提供一些方便,不用写那么多份代码。应该是工作量上的改进,与传统的OO思想不是同一个等级的东西。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2007-1-17 13:57:00 | 显示全部楼层

Re: Re:我理解模板编程的意义

yukun84: Re:我理解模板编程的意义

泛型还是不成熟的思想,与传统的OO思想还没法比。谈不上平起平坐。

真正泛型的设计模式也没有几个。可怜...

以下文章摘抄自http://cpp.ga-la.com/html/21/22/0610/162.htm
《C++0x 热点问题访谈》
荣耀:一些人认为当前C++对TMP(Template Metaprogramming,模板元编程)的支持不够好,就像C对OOP的支持那样,仅仅勉强可行,您是否赞同这一点?为了更好地支持TMP,您认为还需要向C++0x中添加什么样的特性?

Bjarne:就目前来看,C++对TMP的支持似乎比任何语言都要好。毋庸置疑,我们可以改进语言使其更好地支持TMP,问题是我们到底该不该这么做?什么样的做法才算是一种改善?什么样的程序最好执行于编译期?什么样的程序又应该采用通用语言特性进行实现?没错,我们是可以设计一种专用的语言,与C++相比它对TMP有着更好的支持,就像我们可以为任何特殊的任务设计一种专用的语言那样。问题还是那句话:这样做值得吗?

在C++0x(标准库)的设计中,中心议题仍然是经典的泛型编程。


荣耀:尽管我们都知道在C++中面向对象和泛型编程同等重要,但是,您是否和大多数人一样,认为C++对泛型编程的强力支持是它与其他语言的显著区别?

Bjarne:对泛型编程的强力支持只是显著的区别和显著的优势之一,即便与那些提供了“generics”的语言相比也是如此。一如既往,C++的主要力量不在于在某一方面表现完美,而是擅长于很多事情,因此,对于许多应用领域来说,C++都是一个优秀的工具。

15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-1-17 18:03:00 | 显示全部楼层

Re:我理解模板编程的意义

C++之父的意思很明显了:C++的模板功能是给那些喜欢模板的人用的。即使不用也没什么影响。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2007-1-21 17:38:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-1-22 10:56:00 | 显示全部楼层

Re:我理解模板编程的意义

嗯,有那个味道~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 10:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表