|
|
发表于 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这个主意,很多人都会感到惊讶。:) |
|