游戏开发论坛

 找回密码
 立即注册
搜索
楼主: death

大家写engine的,用stl还是自己写?

[复制链接]

8

主题

553

帖子

560

积分

高级会员

Rank: 4

积分
560
发表于 2005-7-4 13:13:00 | 显示全部楼层

Re: Re:大家写engine的,用stl还是自己写?

kevin_lethe: Re:大家写engine的,用stl还是自己写?

。。。。。。。。。。。。
我只相信术业有专攻,我喜欢把精力花在有意义的事情上。。。。所以呢?
因为个人...

所谓出生牛犊不怕虎,呵呵,装老鸟的话,就不要什么东西都一棒子打死,更不要进行人生攻击。打倒别人证明自己高明是很可笑的。

23

主题

515

帖子

552

积分

高级会员

Rank: 4

积分
552
发表于 2005-7-4 14:59:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

主要是看到各高手发言害怕引导初学者,为了避免一些初学者受到疑惑,
我发表一些个人的观点。

首先,STL不是专门为游戏服务的,它是适用于各种领域的。所以有的时候效率可能会比你专门去写一个优化的 my::vector 要慢。譬如:STL中就没有staticvector,而在游戏中,你往往需要staticvector。

其次,STL中的std::string和MFC中的CString使用的是不同的字符管理方式,不能一概而论。就我的经验来说,MFC中的CString提供的接口更人性化。

最后,Don't rewrite c runtime library and stl just you can。原文大致是这个样子的,这不是什么书上的,而是某个国际大师的原话。大概意思是即使你能,也不要重新去写c runtime库和stl。我不知道大家有没有重新写过memcpy的经历,呵呵~

我曾经就此问题问过几个游戏高手(自认为),其中一个回答,我使用自己的数据结构类是因为我开发游戏的时候还没有STL。还有一个回答,我不使用STL,是因为我觉得MFC的CArray,CMap已经足够用了。而其中大部分的回答是,我相信我也可以做得更好,可是现在既然有STL了,我为什么还要去浪费时间做一些没有意义的事情?

每个游戏程序员都是技术钟情者,并希望别人能佩服自己设计优良的代码,可是往往呢,在业界,更重要的是看你做了多少个游戏,每个游戏的质量,都是宏观的,没有人愿意去具体到你的具体代码。所以在实际应用中,我们仅仅需要写一些STL不具备的功能,并且我相信,没有几个人会在短时间内写的my::string比std::string更出色。

我觉得这句话有一些道理,stl就是一个工具,摆在那用不用是你的自由,看你的设计、水平甚至是rp。但是我不同意他的全部,至于stl使用不使用,我觉得的确是一个人的自由,但是这种自由取决于你要定位的方向,你的最终目标是什么。

时刻记住,我们是游戏开发者,并不是库开发者甚至技术比拼者,业界的游戏开发人员时间都是很宝贵的,他们需要不断的加班和制作领导安排的新工作,至于写STL这个主意,很多人都会感到惊讶。:)

24

主题

104

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2005-7-4 15:10:00 | 显示全部楼层

Re: 大家写engine的,用stl还是自己写?

自己写 [em7] [em12]

31

主题

630

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2005-7-5 09:56:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

别人究竟是高还是低,真的没必要讨论。
我觉得如果用标准C++的话,在初期还是应该用STL。这样可以加快项目进度,降低软件复杂度。
当软件基本成型以后,就开始优化,我觉得首先是上层的优化。像STL这种底层的优化,对性能提高有限。肯定不会10倍10倍的提。
更进一步就需要自己设计一些专用的数据结构,这个时候就得把STL之类的库踢开,因为你这个结构根据自己的引擎特点发明的,以前肯定没有。但是对于那些能够使用现有类库的地方,我觉得如果不是性能瓶颈,真的没必要动他。
用STL也不能过分。我以前就是STL的狂热支持者,每回用个字符串都得从MFC转换到STL,处理一下在转换回来。并且用我所爱,得意啊。其实这也没必要,关键问题在于如果有现有类库就应该充分利用。这是我的观点。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2005-7-5 10:29:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

什么时候又有人有兴趣开始讨论我的水平了.真是"荣幸"啊.

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2005-7-5 10:37:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

不过偶有个疑问:  既然STL不是为游戏服务的,那么MFC是为游戏服务的吗?
在非Windows下开发游戏怎么用MFC?

31

主题

630

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2005-7-5 10:48:00 | 显示全部楼层

Re: Re:大家写engine的,用stl还是自己写?

xpertsoft: Re:大家写engine的,用stl还是自己写?

不过偶有个疑问:  既然STL不是为游戏服务的,那么MFC是为游戏服务的吗?
在非Windows下开发游戏怎么用MFC?

老兄,你没明白我的意思。不是非得用MFC,也不是非得用STL,而是有现成的就应该尽量用,除非它真的不能满足要求。
在非windows平台上我没有C++编程经验,我觉得在非windows平台上如果有STL就应该尽量用,否则有什么类库用什么类库,只要是成熟稳定的就行。

31

主题

630

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2005-7-5 11:23:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

当然了,也不能太绝对。
有的系统就是从底层开始优化的,包括硬件、操作系统一体化优化。但是这样做有前提条件:
1、目前系统的性能急需提高。
2、上层技术已经绝对成熟,没有优化余地。
3、底层的优化可以解决目前的性能问题。

31

主题

630

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2005-7-5 11:26:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

其实我觉得目前有一个很严重的误区:现在普遍认为游戏对于性能要求是很高的,其实这是错误的。游戏对于性能的要求并不严格,只能算中等。

9

主题

266

帖子

266

积分

中级会员

Rank: 3Rank: 3

积分
266
发表于 2005-7-5 11:30:00 | 显示全部楼层

Re:大家写engine的,用stl还是自己写?

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
公说公有理,婆说婆有理。
本就是一个个人爱好的问题!
STL 居然最后都扯出了MFC,我正不知道各位是搞游戏开发还是搞企业级应用的?
MFC不说不能跨平台了,也更不考虑他的效率,就连那肥大的体积也难让人承受。
游戏里用STL还是很不错的。

PS::俺从来不使用std::string.  char* 是最好的选择。使用std::string 的程序很难避免不会出现
额外的字符串拷贝。memcpy 就算你重写的效率再高,这个额外的花销也是难以承受。可能本人水平有限,但是我公司程序员写的程序,只要带std::string 做参数的,我就发现汇编码中要多很多东西,字符串拷贝。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 15:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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