Tricks of the Windows Game Programming Gurus,比较古老但是值得读的书[mikespook & swill]...

下载地址
http://www.xxiyy.com/temp/TWGPG.rar

在线阅读地址
http://www.xxiyy.com/temp/TWGPG/contents.htm(26M,正在上传)

我也看过翻译的中文版,没有英文的看着讲得明白,但是也不错的,至少不那么累~~
游戏开发的所有方面都涉及了,技术老了点,但是基础的东西了解了解应该没错~~ teeth_smile.gif

如果谁有中文版的电子书,也发上来吧~

转载于:https://www.cnblogs.com/ourgame/archive/2004/05/19/10269.html

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

[Windows游戏编程大师技巧(第二版)].(Tricks.of.the.Windows.Game.Programming.Gurus).(美)André.LaMothe.扫描版.part2.rar -------------------------------------------------------------------- 《给C++初学者的50个忠告 》 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 是的,我们仍然应该抱着这样一种心态来学习C++。前一段时间,C/C++ User’s Journal 上面有一连串关于C与C++关系的文章,Bjarne Stroustrup、Herb Sutter等几位C++领域的大师从不同方面讨论了C/C++今后发展的问题,颇为深刻。 看问题有深有浅,有高有低。我们不是大师,不要把C和C++说得好像自己的两个儿子。 水果刀是一种刀。瑞士军刀也是一种刀,但它何尝不是剪刀、起子、锯子、锉刀、牙签、指南针、尺子、放大镜……?谁在使用瑞士军刀之前还要先培训如何使用水果刀?另外,在水果刀上面粘一个剪刀、起子、锯子、锉刀、牙签、指南针、尺子、放大镜……我估计也不会太好用(不叫“瑞士军刀”,叫“超级武器霸王3000”)。 2.看《Thinking In C++》,不要看《C++变成死相》; 新:2. 看《Accelerated C++》,看《C++ Gochas》; 如今《Thinking In C++ 2nd》也出了中文版,翻译质量好坏kingofark不想再谈——毕竟有人(至少在www.china-pub.com上)觉得翻译还不错。经常忍不住要去跟人争辩翻译质量的kingofark忽然明白了萝卜白菜定理的另一个推论:看好像看A片,有人爱看欧美,有人爱看日台,各得其乐。自己去衡量罢,不过最好不要参与图信息页上面的无聊口舌战。请记住一句话,一句就好:管它黑猫白猫,能抓老鼠就是好猫。 Andrew Koenig的《Accelerated C++》是一本真正具有实践性的入门。该传承了《Ruminations On C++》的阐述方法,通过一个又一个具体的设计实例充分体现使用C++进行开发的真正优势之所在。事实上,笔者觉得Andy的都是程序员必(还好不算多)。对于《celerated C++》的评论,国外网站上皆有,笔者不再累述。Stephen C. Dewhurst的《C++ Gochas》是一本“奇特”的。说“奇特”不是因为Gotcha这个单词对于中国人难于理解(何况中译干脆把这个标题扔掉不要了),而是在于:Dewhurst用酸中带刺、笑里藏刀的口吻提醒程序员一些编写C++程序(本来就)应该注意到的问题。这些问题中,有编码细节问题,有编码习惯问题,甚至有个人修养问题。CUJ上有一篇对该的评论,笔者认为还比较中肯。笔者看了该的样章以后的感受是:忠言向来都逆耳;这本中的观点你可以不认同,但其确实引出了一些应该注意(而通常没被注意)的问题,这对于一个程序员来说是非常值的关注的。 说明 : 新版忠告第二条说《Thinking In C++》没必要 了 ,但是我还是下载下来了 。 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 新:3. 看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为它们很难而我们自己并不想搞“学术研究”所以就不看;这两本的确都不适合初学者看,旧条款说得有些过激,想必当初kingofark是希望刺激一下那些“浮躁的人(包括kingofark)”(见条款10-15)。总听人说“语言其实都是相通的”。问:什么时候才能融会贯通?答:通透其理的时候。 好好学吧您呐! 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群; 8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的; 新:8. 学编程与玩游戏,两者“相互作用,相互影响,辩证统一”,可以分割;不过的确有很多人因为爱玩游戏而学编程,也有不少人因为不爱学编程而玩游戏;其实这里面的道理再简单不过:如果你不是厨师——而自己会做一手好菜,自己当然有余地饱尝美味;如果你是厨师——拜托你不要光顾着吃,好好学厨艺行不行?回头吃肥了跌进猪圈人家认不出你。 旧条款是一句理由不充分的气话,源于当时笔者对沉溺游戏的“科班学生”的焦虑。关于游戏编程,其实也有不少好,比如Andre Lamothe的《Tricks of The Windows Game Programming Gurus 2nd》《Tricks of 3D Game Programming Gurus》,通俗易懂、门槛儿低,深入浅出,大师的经验体会娓娓道来,精辟深刻,直入核心。对该作者的,国外网站有评价,不用笔者费口舌了(好词儿都用光了)。 笔者本人对游戏编程也蛮有兴趣,非常喜欢Andre Lamothe的有多好呢?这么说吧:《Tricks of The Windows Game Programming Gurus》中文版虽然译得参差暧昧、差强人意(比如把数据结构linked list译为“连接的清单”),仍然还是瑕不掩瑜,可以让人坐在电脑跟前打开VC,一口气到深夜,体验使用VC/DirectX SDK编写游戏的乐趣。 9.看Visual C++的,是学不了C++语言的; 新:9. 在工作环境中,请小声与同事说话。 方便快捷(且易导致发胖)的快餐业McDonald、KFC到了中国,成了孩子们的牙祭和每周的节日,情侣们约会的廉价地点。一到周末,McDonald、KFC店内“一片欢腾的景象”。所有人都大声说话。咖啡厅本来是过去从美片上面看到的那种“零零星星有着装高雅的俊男美女在催情的柔光下窃窃私语”的梦幻般的地方。中国的咖啡厅,烟雾缭绕,音箱发出不柔和的八十年代怀旧欧美歌曲(且一般都不是原人原唱)——地方话,骂人话,话话别扭;手机声,牌将声,声声入耳。所有人都大声说话。 软件公司里面,开发人员探讨技术问题,间歇中的打趣,是再正常不过的事情。A和女秘B正在咯咯的打情骂俏;C为了告诉D文档已经做好了,伸长了脖子盖过AB的声音;一旁的E正在面红脖子粗的与高手F激烈的讨论一个技术难题,这时候绝对不准有谁的声音比他还高;G向作管理的H抱怨公司的软件工程没有做好,伴着唾液的“啧啧”浊音故意要让自己的上司听到。所有人都大声说话。 请你记住一点:你大声说话,同事只听得见你的声音;你小声说话,同事还听得见你的心情。交流需要的是心境 10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!? 11.浮躁的人容易问:我到底该学什么;——别问,学就对了; 12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行; 13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! 新:13. 浮躁的人容易说:我要中文版!我英文不行!——希望这不是你不好好学的原因。 14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行; 15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人; 16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 17.C++不仅仅是支持面向对象的程序设计语言; C++是以multi-paradigm为目标的通用型语言,学习起来应该全面了解。标准库为你做了很多,不用都是浪费。而如果你是做嵌入式,不妨参考一下Embedded C++的规范。 技术跟进,工具更新,并不一定就是盲目浮躁——镰刀锄头怎比得过洋枪洋炮?笔者愿意相信,学生、年轻程序员、初学者都比较容易了解这些,同时也正需要被引导着去了解这些。但是在国内,大学教授、项目经理、相信“人月不是神话”的领导者们——他们了解吗?我疑心重重。强奸,蹂躏无辜良民;奸淫幼女,摧残纯洁的心灵;出版淫秽音像图制品,毒害青少年儿童。偏偏这些事情在IT领域里面不算违法犯规。 18.学习编程最好的方法之一就是阅源代码;DK,CLI正是上佳的参考资料。至于C++方面,除了STL,还有Boost,Loki,ACE等等优秀的代码值得研究、参考,甚至抄袭(如果你有足够技术能力的话) 19.在任何时刻都不要认为自己手中的已经足够了; 如今国内的图市场较之过去几年,最大的改变的就是大量国外图的引进。少的时候,没有选择的余地;多的时候,选择太多,无所适从。这里就有一个如何择的问题。接受推荐是一个不错的选择——不,我不是说某些图网站上的口舌对骂。 20.请阅《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准; 新:20. 请参考《 TCPPL 3rd没弄到 》《C++ Primer 3rd》《The Standard C++ Library》,掌握C++标准; 基本上,以目前的图状况来看,要掌握>C++标准,看哪本也看不到《The Standard C++ Bible》>(中文版:标准C++宝典)这一本上来。笔者在另外的文章里已经发表过对这本的看法。说起权威的C++参考,一定少不了《TCPPL 3rd》《C++ Primer 3rd》《The Standard C++ Library》。Bible? 唔……看《TCPPL 3rd》《C++ Primer 3rd》《The Standard C++ Library》的者,大可不必信教。 21.看得懂的,请仔细看;看不懂的,请硬着头皮看; 22.别指望看第一遍就能记住和掌握什么——请看第二遍、第三遍; 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》; 新:23. 请看《Effective C++》《More Effective C++》《Effective STL》《Exceptional C++》《More Exceptional C++》《Exceptional C++ Styles》《C++ Templates》《Ruminations On C++》《C Traps and Pitfalls》《Expert C Programming》; 写这么多不是要谁都看都买。这些都是顶级好,根据自己的情况择来之,易收宏效。 Andrew Koenig的《C Traps and Pitfalls》是程序员必。令笔者不寒而栗的是,该提到的许多错误笔者都犯过(而且一直在犯!)。《Expert C Programming》也是一本相当好的,其中译本也不错,可惜就笔者而言,中对某些典故的翻译欠妥(比如StarTrek,其作为西方的一种文化现象,已经渗透到西方文明的方方面面,对其中一些典故的引用对于中国人来说,不经解释可能是不太容易理解的)。 24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序; 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好; 26.请看《程序设计实践》,并严格的按照其要求去做; 题外话:从Herb Sutter的网站www.gotw.ca上看到,Sutter与Alexandrescu欲合著一本C++ Coding Standard,应该也是令人期待的一本。 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样; 新:27. 注意C与C++之间的区别。在国内,有那么一群猪……噢不,我是说大学教师……噢不不,我是说项目经理……不不不……对不起,其实我是想说“人”,对C/C++/Java/C#/……存有太多太多的误解(一般很愚蠢,以至于别人都不知道该怎么解释才好)。 28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密; 新:28. 了解各个语言之间的关系和区别,切忌盲目褒贬、妄加评论; 关于C与C++的关系及C++的发展与演化,C++创造者Bjarne Stroustrup在《The Design And Evolution of C++》(中译本,裘宗燕老师译)里面已经说得很清楚了。学C++的朋友应该看看本,就当是扫盲。 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已; 新:29. 请不要认为学过XX语言再改学YY会有什么问题——你只不过又在学一门全新的语言而已; 30.完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++; 31.学习编程的秘诀是:编程,编程,再编程; 这一点在Andrew koenig的《Ruminations On C++》《Accelerated C++》里面有很好的体现。随着Andy 的一 起作思维上的编程,自己再动动手,将是非常美妙的学习经历。 新:32. 请留意下列籍:《Design by Contract,by Example没得下载》《Refactoring没得下载》《Design Patterns Explained无源http://www.javaresearch.org/dn/DesignPatternsExplained.rar》;《Design by ntract,by Example没得下载》《Design Patterns Explained》毫无疑问是好,且中译本令人期待。 这几本我只下载到最后一本,其中还有一本暂时没速度!其它如果有人下载到麻烦邮件我867594980@qq.com,先谢谢了! 32.请留意下列籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》; 33.记住:面向对象技术不只是C++专有的; 34.请把上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码; 35.把在中看到的有意义的例子扩充; 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中; Exception Handling引发着无数的讨论。关于exception handing的各种议题,看Herb Sutter的文章的确让人有些“震惊”。Embedded C++倒是蛮干脆——STL,Exception Handling全部删光光——可见什么事物总有个适用范围.DbC绝不仅仅是assertion。DbC要求各个组件各尽其责,将交流和协作建立在非常明晰严格的条款之基础上。DbC是不容忽视的,其所涉及的层面和深度,或许比我们想象的要广,要深。 37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去; 38.不要漏掉中任何一个练习题——请全部做完并记录下解题思路; 39.C++语言和C++的集成开发环境要同时学习和掌握; 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的; 41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主; 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43); 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的; 44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的; 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了; 46.记录下在和别人交流时发现的自己忽视或不理解的知识点; 47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX; 郑重提醒:请学会使用版本控制工具!Visual Source Safe,CVS——使用它们作版本控制绝对比你新建一个名为“MyApp_New2”的目录要好得多!在实际开发中,不使用版本控制工具的结果可以用一句话概括:能变得多糟,就定会变得多糟。 48.保存好你写过的所有的程序——那是你最好的积累之一; 49.请不要做浮躁的人; 50.请热爱C++!
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值