[知乎] 开放世界游戏中的大地图背后有哪些实现技术?

有两件事物,我愈是时常反覆地思索,就愈是感受到发自心底的由衷的赞美和无边的敬畏——这就是我头顶灿烂的星空,和我内心的道德准则。 - 康德

早些时候在知乎上看到这个有趣的题目,忍不住写两笔吧 :)

原题目:开放世界游戏中的大地图背后有哪些实现技术? 题目链接

补充说明:诸如GTA,武装突袭之类的游戏中,开发者是如何实现超大地形的?对于这一问题有什么主流的解决方案?

补充:例如一......

[知乎回答] C++ template 为什么不能推导返回值类型?

这个问题是周末在知乎上看到的一个问题,有点意思,俺觉得可以讨论一下。

原问题

C++ template 为什么不能推导返回值类型?

补充说明:

例如:

template<typename T>

T value()

{

// for expample

T* ptr = static_cast<T*>(_ptr);

return *ptr;

}

......

[知乎] C 语言学习的经典书籍有哪些?

[知乎回答] - C 语言学习的经典书籍有哪些?

首先声明一下,我不是黑。如果是几年前,我会推荐 @王潜升 同学推荐的这几本(毕竟确是经典),但这几本书也不是啥都好,我具体谈一下吧:

  • 《C程序设计语言》 - 比较短小,跟《C++程序设计语言》的洋洋千页,娓娓道来的风格比较而言,应该说也是C的简洁凝练的体现吧。此书适合 有一定实践经验的人 作为一个全面熟悉和巩固语言的工具书, 不是很适合初学者 用来了解和学习。当然了,本书有一定的历史意义,可以买一本纯收藏,亦或安慰一下自己,对K&R稍表敬仰之寸心。总得来说,K&R网上评价一直非常高,这一点我个人持保留意见。
  • 《C和指针》 - 不要被书名骗了,此书看似专说指针,实则是C语言较完整的语言和运行环境的描述。虽然有一些复制粘贴充篇幅的嫌疑(后面的字符串,数据结构,IO,标准库什么的显得有点大杂烩,好吧我真的不是黑, 不过真的有必要把F1一下就能看到的文档都弄进来吗? ),不过对一些编译器的实现细节有一些探讨还是值得一读的。对了,有的练习题还不错。总得来说,值得买来略扫一遍。
  • 《C专家编程》 - 好吧,这个书里面有不少八卦和无厘头,适合宅男们消磨时间用。举个栗子吧,卡耐基梅隆大学的计算机系经常搞活动,有一次搞了个编程竞赛,实现功能巴拉巴拉巴拉,要求就一条——尽可能的快。我会随便说第一名消耗的时间是负数吗? 是的,你没看错!这厮写的程序消耗了负数的时间!! 想知道真相吗?去找一本来翻翻吧,呵呵。再来一个吧,大家知道MIT人工智能研究室的宅男们整天都在研究什么吗?这些热情的家伙们用LISP去控制自己楼上的电梯升降( 据说这货还能自检自己是不是真身 ,免得被黑客利用了让自己人卡在电梯里出不来)。他们还专门设计了个网络协议(运行在七十年代的互联网上),用来查询楼道里的可乐机里有没有货,够不够凉(就为了少跑点路)。我勒个去,宅到这个地步,家里人知道吗?这下大家知道为啥人工智能多年来都没啥进展了吧。唉,控制不住啊,一说起八卦就停不下来。你是不是已经看到了谢耳朵同学的影子了?是的,我看这个书就有看《生活大爆炸》的感觉,可以买来乐一下。
  • 《C陷阱与缺陷》 这本书是典型的挑刺党了,不过在我看来,(可能是成书比较古老的缘故),它挑的刺 普遍不够硬,没啥杀伤力 ,基本上都属于初级(勉强中级)错误。实打实写过几年C语言的同学应该明白我的意思, 想看那些真正的缺陷和陷阱还是得在实际项目里找啊 (我是说的那种一枪把自己的脚轰碎了的那种)。这书没啥好看的,谁要的话我五毛卖给他。

有人问,你巴拉巴拉说这么半天,难道就没有本正常点的书,能够囊括以下所有特征的吗?

  • 完整翔实,细腻丰满
  • 不复制粘贴有凑字数嫌疑
  • 不是专业搞怪和无厘头
  • 不是专业挑刺党

好吧我说的当然不是谭浩强。

如果是几年前我只能双手一摊——我也不知道。不过有一次偶然间翻阅到这一本书,就产生了这种感觉——如果我是一开始读这个书入门的就好了,呵呵。

[知乎] 人类历史上有哪些思维能力特别强的人?他们有哪些独特的思考方法?

John Carmack, 现代3D游戏的启蒙者,最杰出的程序员之一。
John D. Carmack

从他的代码来看,我个人认为他的逻辑思维能力是相当罕见的。
id-Software (id Software) GitHub

关于他的 Methodology(严格来讲,方法论比题主所说的思维方法更宽泛一些,但应该也不算偏题),卡马克曾说过一段话(出处:http://www.aeflash.com/2013-01/john-carmack.html):
Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better.

这段话曾使我受益良多,也许对你也会有所启发。


[2014-03-13] 添加:
今天又读了一下这个题目,发现题目问的是“有哪些”,就想到应该把爱因斯坦补充进来,让这个答案更完善。

爱因斯坦,德国物理学家,相对论的奠基者。
相关信息:(这三个链接的信息量都很丰富,我在里面不知不觉就逛了两个小时,慎入)
(官方网站) http://einstein.biz/index.php
(Wikipedia介绍) http://en.wikipedia.org/wiki/Albert_Einstein
(Wikiquote引言) http://en.wikiquote.org/wiki/Albert_Einstein

我在下面的每一段前加了标签和我的简短理解,以便阅读和整理
凡是引言均以"引用+斜体"的方式注明

(著名的公式)
爱因斯坦常对人说:学习时间是个常数,它的效率却是个变数,单独追求学习时间是不明智的,最重要的是提高学习效率。他认为必须通过文体活动,才能获得充沛的精力,保持清醒的头脑,爱因斯坦还根据自己的亲身体会,总结出一个公式,即A=X+Y+Z。A代表成功,X代表正确的方法,Y代表努力工作,Z代表少说废话。他把这个公式的内容,概括成两句话:工作和休息是走向成功之路的阶梯,珍惜时间是有所建树的重要条件。

(直觉-演绎思维方法)
爱因斯坦不仅是位物理学大师,也是一位研究思维的专家,在他的文集中有大量研究科学思维方法的论述。他考察了从亚里士多德的演绎推理到培根的归纳推理,再到牛顿的归纳和演绎、分析与综合相统一的思维方法后,提出了一种新的思维方法。他认为从特殊到一般的道路是没有逻辑的,是直觉的方法,从一般到特殊的道路是逻辑的方法。这样,爱因斯坦在逻辑方法与非逻辑方法之间保持了必要的张力思维,他本人称为"直觉-演绎思维方法"。

(张力思维方法)
张力思维方法与其说是一种科学研究中的方法,不如说是关于科学研究方法的评论,而不仅仅只有方法论的意义。"直觉-演绎"本身是无法操作的。它要求我们善于在归纳与演绎、推理与直觉等对立的两极保 持必要的张力,但没说清楚怎样保持这种张力,可以 把它形容为走钢丝一样的高超技艺,稍一偏离平衡,就会发生"翻车"。它与科学家个人学术素养及对问题的认识深度等因素相关。但在提出这种方法时,爱因斯坦对逻辑推理作用的评价,值得我们重视。

(聚焦思维模式)
(与前面提到的卡马克的方法颇有共通之处,把思维始终聚焦在要点上,专注,砍掉细枝末节,才能探查到问题的本质)
在所阅读的书本中找出可以把自己引到深处的东西,把其他一切统统抛掉,就是抛掉使头脑负担过重和会把自己诱离要点的一切。

知识共享许可协议
本作品由Gu Lu创作,采用知识共享Attribution-NonCommercial-NoDerivatives 4.0 国际许可协议进行许可。