文本在阐释中烟消云散——尼采《善恶的彼岸》
今天收到了《程序员》杂志2012年12期的样刊。上面有我应邀写的一篇稿子,在这里为自己存个档。
程序员是可以当作一生的职业。但首先,你需要热爱编程,而不是把它作为完成其他人生目标的工具。
既然计划投入数十年的人生,那么一定会不断的反思自己在哪些方面的努力是更有效率的。换句话说,现在的你,和十年前的自己到底有哪些不同,十年后又怎样超越现在的自己?
我的职业生涯还远远没有过半,深深感觉沉淀不足。总会有新的理解迭代到旧有的想法上。这次应邀来用简短的文字探讨这个深刻的话题,只能尽力来表达一些现阶段的浅薄之见。
我认为,一个程序员,无论他在哪个子领域工作,都需要在三个方面提高自己。
首先,保持对未知领域的好奇心,尽力开阔视野。
如果你只精通一门编程语言,那么就赶快去学习另一门,最好和之前的那门语言亲缘关系越远越好。这可以让你从不同的视角去看待过去的问题。
其次,把握各个层次上的细节。
尽可能向人解释清楚系统每个层面的运行。硬件如何调度机器指令;数据在硬盘、内存、缓存、CPU间的流向;代码如何被编译链接,代码经历了何种过程被加载到内存,JIT怎样加速字节码的运行;操作系统怎样管理线程、处理IO;软件用到的第三方模块和工具如何在处理数据;在网络环境中,数据流的通讯协议;你的代码中每个模块逐个层次中的相互关系……
对细节掌握的越多,思路会越清晰。在每个层次上,你会看到不同层次的设备对上一层业务逻辑的抽象方式,直到最终你直接面对的业务。对业务的抽象能力,不仅仅来自于你的业务的熟悉程度。这种能力是随同细节把握能力同时俱备的。了解的越多,就越能知道你经手工作的合理性。
第三,对代码的直觉。
优秀的程序员能很快的发现性能热点、找到系统崩溃的原因、找出不合理的代码……准确的估算能力非常重要,快速心算出每个模块的开销和输入的数据量之间的关系;在写下每行代码时能够判断其对性能的影响、以简洁去挑战各个层次模块间的耦合复杂度。
培养这种能力,以我个人浅见,除了不停不断的编写代码,别无良方。在写代码的同时,时刻保持着思考,对坏味道的地方零容忍。只要在最早的时刻动手,任何推倒重来的代价都不会太大;而放任它们在那里只会让局面演变到不可收拾。
保持自己总有代码可写,不断的去发掘自己新的兴趣点,拓展新领域。单纯一些,编程本身就是一件有趣的脑力活动,而不必仅仅为了解决一些问题而写程序。
云风,2012.11.6
2011年8月25日,我的离职申请上签上了丁磊的名字。
在网易10年半了,和一帮网易的兄弟们相聚甚欢。2001年4月8日,在广州36楼办公室办理入职手续的镜头仿佛就在眼前。我甚至还记得当时办公室的摆设。那一个个鲜活的人还坐在那个位置,我记得前台的金鱼缸,入门处的植物,办公室的落地窗,窗外环市中路上火柴盒般大的小汽车。
接待我的mm学艺,应该还在公司吧?她帮我租的房子住的很舒服。安静的旧楼藏在街道深处。房东两位老人很和蔼。清晨的阳光照进主卧,窗外是一片绿色。
公司的快餐是订的楼下的蓝与白,12块的人均标准可以吃的很好。在休息室里财务部门的美女们热情的和我聊天。嗯,八卦新闻总是很多。那时,我在大家的眼中估计是个初入社会的大孩子吧。
人生就这几个十年,我珍惜这其中的点点滴滴的时光。和朋友们聚聚散散,不曾想过自己离开的情景。但天下无不散之宴席,能够这样开开心心的分手,也是相当难得之事。
我对身边的人充满感激。网易是家非常不错的公司。我们一起做成了一点事情。这和与之奋斗的所有人都分不开。丁磊,叮当,都给了我极大的信任和支持。私人交情上,我们也有相当的感情。我与网易的情谊难以割舍。不同的人,即使有一些理念差异,也能求同存异。我认为他们的不同时期的不同决策在特定角度都是正确的。我也感谢网易这个由大家共同建设起来的平台,虽说总有些不尽人意的地方,但我认为在各位的共同努力下,已经做到了能够做到的足够好了。
这次离开,是我个人最近一年的愿望,思考了很久,并非因为人。先前也担心被误解,全程都在很低调的推进。最近突然在网上传出各种消息,让我领略了信息传播中的失实。我们都知道一个游戏,让一队人排队口头传递一个故事,当传到最后一位时,已经完全不偏离了最初的事实。让我觉得有必要做一点点澄清:
今天侠少同学说“现在全文看下来还是有些纠结,反对、支持、再反对,再支持,百转千回的小情绪,读者恐怕会犯晕”。嗯,的确很羞愧的。不应该在这本大牛的书前面发牢骚。打算晚上改稿子。旧稿就贴这里存档吧。
序
还有一天,我的人生就进入第三个0x10年。
第一个0x10年里我无忧无虑。
当我路还走不稳时,我就喜欢拿着彩色笔涂鸦。我妈盼望着我长大能当一名画家。理论上我应该能遗传点我爸这方面的基因的。可惜我不努力,最终辜负了母亲的殷切期望。
在我还小的时候,我坐在老爸的自行车后座上,父亲问,你长大了想做什么?那是我第一次考虑这个问题。我说,做个数学家吧。那时我参加小学生的数学奥赛,成绩还不错。他不是很满意这个答案,说再想想吧,那或许不是你真正的兴趣。我沉默了,好象我不是真的很喜欢数学。或许是因为比其他人学的好一点造成的错觉。
一直到16岁,一天他在家中地下室里,还是在查字典,突然间好像一道白光将整个地下室照亮,一个巨大的喜悦从心中涌出,他发现——原来字典是从A排到Z的。
原来,他自己发现了字典排序的奥秘。”
读到这则故事,十分感慨,因为我有同样的经历。
不知不觉,我最近两年居然读了许多英文读物。书、手册、论文、blog等等。前段想翻一点资料原文,居然记错了,以为自己曾在中文版中读到的,后来才发现我以前读的是英文版。
新西兰的南岛很美。我们从惠林顿飞基督城,下了飞机就去取了车,直接去LakeTekapo。一个非常漂亮的小镇。一开始还特地看了一下传说中的强震过后的基督城,完全不象刚经历过灾难。
如果你到了这里,就绝对能理解为什么地震没有人丧生。地广人稀,房子都是木结构的小房子,单门独栋的。新西兰提供只有400多万人。除了奥克兰是个大城市,占了140万人外,别的地方人都不算多。而且在城市里,人也不喜欢聚居,人口密度非常之小。
这里自然风貌保留的非常好。在南岛开车逛了一个星期,就是雪山,青草,蓝天,白云,牛羊遍地,偶尔几座精致的小屋子点缀其间。很快都审美疲劳了。车道还是那么窄,但路况非常好。除了小镇(80/70/50),全是100km限速。很窄的双车道,不少小桥都是单车道的,远远的看见了,需要减速让行。在这里开车,很有玩赛车游戏的感觉。连我这样不喜欢开车的人,都能感觉出一点驾驶的乐趣了。
我喜欢韩寒的直爽,如果有机会认识,我会想去交这样一个朋友。
这次看了刘谦写得这篇blog,我发现他也是一个很不错的人呐。
南隐是日本明治时代著名的禅师,他的一杯茶的故事常常为人所津津乐道并予以启发。有一天,一位大学教授特地来向南隐问禅,南隐以茶水招待,他将茶水注入这个访客的杯中,杯满之后他还继续注入,这位教授眼睁睁地看着茶水不停地溢出杯外,直到再也不能沉默下去了,终于说道:“已经满出来了,不要倒了。”"你的心就像这只杯子一样,时面装满了你自己的看法和主张,你不先把自己的杯子倒空,叫我如何对你说禅?"南隐意味深长地说。
情节很假,但是假得让人喜欢。
结尾的时候那段讣告,我震惊了。看来做字幕的大哥对这部片子相当有爱啊。
庄纳顿.卓加……有线体育台优秀监制既失红颜,复破婚盟肝肠寸断,遂于昨宵撒手尘寰享年三十有五庄君文质彬彬,公而忘私平素言行,绝无痴态孰料,阳寿将尽之际……流露鲜为人知的浪漫刹那惊艳,化作萦回梦魂遍觅芳踪,历尽一波三折本性情怀,浮现无遗呜呼,踏破铁鞋……方觉一番心事悉付东流语云:匹夫可以夺其爱……不可夺其志庄君依然坚信……人生际遇绝非偶然冥冥中,上苍早已……安排周详,丝毫不爽其友文坛巨擘……时报主笔甸恩谓……庄君晚年脱胎换骨有所顿悟一言以蔽之……欲臻天人合一……须坚信一字此字古已有之于今亦然,唯“缘”而已被感动了。
由于最近几年用的主要开发语言是C和lua。那么也打算以此为基础写。假定读者至少有不错的C语言基础了。我真正想谈的是,如何把一个软件很好的构建起来。到底需要做些什么。(从实现层面看)怎样才是好的软件。
那么有一个重点问题,也是老问题,怎样才是好的设计。
要写过多少代码才能得到哪怕一点真谛?
多少年过来,我在潜意识的去追求复杂的东西。比如我自幼好玩游戏,从小到大,一直觉得玩过的游戏过于简单(无论是电子游戏还是桌面游戏),始终追寻更复杂规则的游戏,供我沉浸进去。或许是因为,有了更高的理解和控制复杂度的能力,就可以更为轻松的驾御复杂性。
这很好的解释了2000年到2004年我对C++的痴迷。还有对设计模式的迷恋。
EricS.Raymond说:尽量不要去想一种语言或操作系统最多能做多少事情,而是尽量去想这种语言或操作系统最少能做的事情——不是带着假想行动,而是从零开始。禅称为“初心”(beginner'smind)或者叫“虚心”(emptymind)。
代码写多了,问题见过了,甚至是同一问题解决多了。模式这种东西自在心底,不必拿出来。时时的从零去想,总能重新明白一些道理。
为什么说语言重要也不重要,算法和数据结构重要也不重要。对要解决的问题的领域的理解很重要(即明白真正要做什么)。理解了,我们才可以用面向对象,用模式去套问题;可理解了,我们又不真的需要这些繁杂的抽象。
闲话放一边,今天想谈谈树结构的管理。
第一件事就是没有钩子。不要留一个接口,想着未来的什么时候当问题变化时插入一些代码,因为问题会以你不能预见的方式变化。反正这个成本肯定是浪费了。不要预测,只解决你眼前的问题。byCharlesMoore(Forth之父)
今天也是机缘巧合,莫名其妙的翻出老资料温习Forth了。我想是个心结吧。19年前,我痴迷于Forth,只看到了皮毛;13年前,我进入大学的第一年,在校图书馆借出的第一本书,就是《Forth语言》,读书笔记写了20多页。
如果让我说,第一反应是,网易重视技术人员。通常在IT的创业小公司中,这种现象比较常见。网易已经不算是小公司了,坚持这样比较难得。这倒不是因为丁磊有技术背景,我想更多的是,网易在几个关键时期,都是技术人员起了重要的作用。公司善待技术人员,算是投桃报李了。这是公司的一种发展偏好吧。
网易在做重要决策时,往往显得谨慎小心。不够大气。往往比别人慢一拍,且少有破釜沉舟的投入。这是几个公司高层性格的体现,物以类聚,人以群分,所以这也影响了许多员工。这似乎成了公司的性格,因此,也有性格不合的人离开。
能称之为文化的是什么呢?我拿不太准。或许,追求“平等”,勉强算的上吧。
在北京时,余雪松在家里招待我吃了顿便饭。他是我认识的程序员当中,我最推崇的一位(加了最就没有之一)。
进门的时候,他的儿子在客厅里玩。客厅很大,一地的玩具。我知道他儿子虚岁八岁,我打算离开kele8的时候,听到了他儿子出生的喜讯。上次和小家伙在一起的时候,他还在娘肚子里。我和余雪松夫妻俩坐在南戴河的沙滩上,谈论着许多许多。
发现地毯上有许多卡片的时候,我有点诧异。我原以为,现在的小孩子,除了电脑和网络,不会有其它迷恋的玩具了。正好我随身带着RFTG的卡片,拿出来给小家伙看。等我们吃饭的时候,他还在那里一张张仔细的翻看上面的图案和文字说明。小家伙有点羞涩,不好意思直接问我,就问他妈妈,每张卡片上图案的含义。为什么有点左上角画了个圈,另一些则是菱形。我有点后悔没有把说明书带上,不然可以瞧瞧现在小孩的理解能力。
对于门槛比较高的卡片类游戏,我们可能低估了它的市场。我没有精力做这个项目,它也不是我的主业。反而这个小项目已经消耗了我的不少精力。或许我应该交给一个合适的公司去宣传和运营它,这个公司不会是网易。
黄金时代是在我们的前面,而不在我们的后面——培根
在我可以被称呼为少年的时候,我经常想,如果可以早出生几年就好了。即使我早出生几年,我也绝对做不了马云,成不了丁磊;但是我有可能是求伯君,可能是马化腾,亦或是雷军。
但是,后面这些人在我现在的年龄已经逐渐不写程序了,我还在兴头上,所以,我还是我。事业会改变一个人的兴致,而兴致也会成就一个人的特质而不被改变,使得有些事情就该他去做,有些事情不该他做。这跟他所处的时代无关。
虽然很残忍,但是我们每个人都清楚一件事:你认识的每个人,有一天都会死去。
他唯一的女儿的老公中风也需要人照顾,不能守在身边。我的母亲就时常去看望他。因为老人有气管炎,需要定期服药,母亲就每周帮他去医院开药(由于福利,药是免费的,但是每次不能多拿)。
想来,我的母亲于这位老人,那真算是一日为师,终生为父。几十年的感情,是比亲生女儿还亲的。
由于《仙履奇缘》这个名字已经被人使用过,公司决定给新产品换个更响亮一点的名称。内部征集了很多意见,大家决定使用《梦幻西游》。
游戏的各种玩法也是一样。徐波自己的角色慢慢练了上去,建立了服务器上第一个帮派。还不想让人知道帮主就是他,怕被人怀疑是作弊练出来的。我想设计人员能有机会耐心的把自己的游戏玩上一年,以一个普通玩家的身份去玩,各种细节自然就照顾的到了。大部分策划不是不想这么干,而是没有机会。有多少项目有如此长的测试期,在稳定的环境下,拥有这样多的玩家一同游戏呢。
不计算周边工具,我一共为《梦幻西游》贡献了引擎部分(包括图象、声音、网络和UI以及对象管理)三万多行C++代码。这是今天用工具统计出来的数字。这些全部是在大话西游二完成后,从零开始写的,几经增删留到今天的部分。
对于梦幻的client,郭老的代码贡献量更大。除了保留修整少量我从大话二遗留下来的底层部分外,他写了个python的接口部分,和所有的游戏逻辑部分的C++支持。再次设计,我们做的比以前好。代码很精简,而完成的功能要多的多。依稀记得总共C++代码不会超过五万行吧(手头没有数据可供统计)。而对应的大话二的client代码量则是图象及声音的引擎部分二万七千行,逻辑和网络及UI部分三万一千行。
我想,合理的构架下,代码的体积应该是更为精巧,而不要过于膨胀。代码写的短小,是自然而然的结果,其成因是避免了重复。代码行数多少,则不是刻意去追求的。对于网游client(也包括server),都不应是超过10万行C++的规模。从程序角度上说,网络游戏是个小项目,不是吗?如果有人硬把一个小项目做成了大项目,不出问题才怪。
大话二收费以后,因为我脱离了这个项目的开发组,也就没什么记忆了。不过也时常关心一下,记得十月刚回公司时,在游戏里的聊天频道中,经常有玩家哭述自己被骗。他们用游戏币和人交换点卡,却总有单方面失信的事情发生。
我们曾想过在玩家条款中加入禁止游戏虚拟物品和虚拟货币与现实货币交易的条款,正如暴雪今天在wow中做的那样。有一种直觉告诉我们,游戏牵扯进金钱交易,游戏本身会受到冲击,不是什么好事。
直觉不总是正确的。固然,我们可以利用程序规则限制虚拟物品的转移,但那也会极大的破坏游戏性。有如美国当年的禁酒令最终执行不下去一样,禁止不了的事情,不如提供更大的便利去疏通。开发团队决定给系统增加一个公正的点卡交易系统。
2002年9月底,再次回到广州,仿佛一个新的开始。我想我要长住下来了。这次打算住在办公室附近,越近越好。
头几天,我住在安宁住的小屋子里。原来小蓝租下的,现在他已经离开公司。屋子很小,晚上我就睡在地板上。安宁给我看他写的一些小玩意,一个汇编写的软件3d渲染器,挺有意思。还有一个使用d3d做的简单引擎。公司的3d项目已经做了大半年了,一直没有定下一个技术方案,可能还想多一些技术尝试吧。
我也去公司转转,没有正式复职,只是跟朋友们打个招呼,我回来了。顺便向周围一个个小区问值勤的保安打探情况,看看有没有房子出租。这比找中介要划算一些。工业园还不太繁华,房源很多。没多久就找到一家,步行到公司才几百步(以前数过的确切的数字,后来又忘了),中间会路过一个中国银行,挺方便的。
不过不管怎么说,从五月里开始,一切都朝着好的方向在发展。
大话西游2.0在02年五一封闭内测的时候,已经更名为大话二。因为丁觉得,反正是重新做的,就应该以新名字重新来推广。
由于先前的刘铁等几个策划离开,月心被调离大话组,转到3d项目中(这也一定程度的导致了这个3d项目最终被命名为天下二)。Micro在他回加拿大前的一个月,开始重新为游戏策划招兵买马。
萝卜从大话西游的界面设计师改行做游戏策划,黄华被提升为大话西游的主策划。而丁丁(日后的《梦幻西游》产品经理)就是这个时候入职网易的。这是2002年四月间的事情。
让网易在网络游戏上看到希望的是《精灵》。这是个从韩国代理来的游戏。当时我们也有可能去谈MU,即《奇迹》。为什么定了精灵而不是奇迹呢?我听到的不确切的说法是,奇迹要价太高。
现在看起来,今天几家大的网游运营公司真的是特点明显啊。代理奇迹的九城,几个产品都敢花大价钱下注,先是奇迹,而后是魔兽世界。我想它的成功也绝非偶然了。
我记得麻雀当年陪我选手机;记得美术部的一群长发帅哥集体去剃光头;记得给乌鸦夫妻参谋买房子;甚至记得牙牙来报道的那一天情景……
记得一刀他们在公司地板上过夜;记得Mario半夜里陪着mm在办公室里看流星花园;记得我们大家常去的大排档;记得凌晨两点干完活,一起打车去石牌东吃烤蚝,萝卜还一个劲的说没有他们家乡的好……
我只是记下自己的历程,但我不只是为自己写。我也为大家写,尽可能帮一起共事过的大家留下过去快乐的点点滴滴。美好的记忆不是什么可耻的事情:),可耻的只是永远停留在回忆里的人,我想我们都不是这样的人。如果再有同行的朋友读过来,尽可以在留言中留下你的故事,或是提醒我一些被我遗漏的重大事件。
对于新加入网易的同事,据说有许多人是这个系列的读者,如果我写的能让迷茫的人看到一条模糊的路,那没有什么比这更能让我高兴的了。让我觉得在繁忙的工作之后,从每个晚上划出三个小时写这些很有价值。
网易之所以是一个好公司,正是因为不断的有同样信念的人聚集在一起。那些尚且不足的地方,需要大家一同努力。
以下是今天的正文:
说起国内自主研发的第一款商业上成功运营的MMORPG,不应该算给《大话西游2》。
2000年底,另一款网游悄然上线,并在2001年初成功收费,同时在线人数一度攀升到好几万,远超过当时失败的《大话西游》,它就是天晴数码的《幻灵游侠》。
dingdang上任不久,我们开车去珠三角转了一圈。拜访深圳,珠海的许多公司。有点新公司成立、四处拜山头的意思。
丁磊和雷军私交不错,据说还经常私设赌局,赌各自产品能做到多少人在线。嗯,有些遥远的故事,记忆模糊,还是不加详述。我们一行人自然也去了金山。当时他们在做《天王本生》,买的LithTech的3dengine。赵青是开发团队的leader。我和赵青颇有些交情。
事情源于1998年,一帮梦想在互联网上联合开发RPG的小子,成天泡在irc频道里YY(也不完全是,我们还真做了不少东西)。其中,我是唯一的一名程序兼职小组网站制作。我们给开发小组定了个名字“风魂”。后来小组解散,为了纪念这段历史,我把这个名字延用在了后来那个引擎上。
99年的暑假,我去珠海拜访Gary,他介绍了剑侠情缘2的程序王炜、赵青,以及著名游戏音乐人罗晓音与我认识。还记得那天黄昏,我们几个人晚饭后步行来到海边,坐在草地上遥望对面的澳门。大家交流技术经验,畅谈着国产游戏的希望。王炜是个仙剑迷,把仙剑翻来覆去的研究了个透彻,还为此制作了专题个人网站;赵青则回忆着红警如何吸引着他进入游戏这一行。
2001年金山的食堂里,很多朋友围坐在一起。Gary和王炜已经离开,赵青平时话不多,但在老朋友面前依然健谈。还有许多新面孔。
网易和金山的这种友好关系一直延续了下去,之后,金山的同行也曾经率领大部队来广州回访交流经验。我们的程序员也曾有过合作(精灵的反外挂程序是由金山一名程序员常驻广州完成的)。再之后,赵青领着一队人,过来网易组建了新的方舟工作室,似乎也没太损坏公司之间的友谊。我们还保持着互访的传统,几年后,我个人就几次拜访过已迁往成都的罗晓音。
再往后,网游市场产品竞争激烈,对于一些影响到玩家群的公众事件的内幕,虽也有些耳闻。但那些就是市场营销方面的事情了,无损程序员之间的友谊,不提也罢。
《大话西游》一边运营着,大家改着bug;另一边,2.0版开始筹备了。
后来聊了什么完全不记得,我只是知道,以后的工作由dingdang来主持了。这次长谈,颇有些战事不利、临阵易帅的味道。
《传奇》就是在这个背景下横空出世的。
陈大年是我大学时期结交的网友,跟我一般年纪,我们时常在icq上聊天。在我还在读书的时候,他已经辍学闯荡江湖了。他也是个程序员,似乎写delphi的,我早年也玩这个。我们那时候共同的爱好是想做游戏。在我还没毕业的时候,他给我看过他的公司做的网站,记得叫归谷,主推一只可爱的漫画狗。小狗叫stammy还是stame我是记不太清了,投资方有中华网的背景。
大年告诉我他们转做网游的时候,我丝毫不奇怪,游戏这么火,做网络的不做游戏才是奇怪呢。(我想,即使在那个所谓网游起步的时候,看的到网络游戏有赚钱潜力的公司根本算不上有什么独到的眼光,看不出来的没眼光才是)他和他哥哥一起做的公司,据说去韩国找了个小公司谈了个游戏,这个游戏就叫做《传奇》。
在网络游戏还没有盖过单机游戏的风头之前,大家都认为网络游戏只是电脑游戏的一个小分支。制作、销售的流程也还停留在旧的思维上。
我们都觉得,费劲心力做了这么一套东西出来后,应该先收玩家一些费用。简单说,也就是卖客户端了。7月里,《金庸群侠传online》上市,卖出了10元的低价。这个游戏吸引了不少玩家,玩家后期的开销远远不只10RMB这么一点。运营商其实也不在乎client的这点收入,网络游戏也不惧怕客户端盗版,巴不得多点人进来玩呢。
不过,一开始没人去做免费的客户端。我想有几个原因。其一是固定思维所限,其二是当时网络带宽不够,拨号上网依旧是主流。还是得依靠光盘发行。既然需要走传统的销售渠道,那么也总得设个价格。
Dingdang具体哪天加入的游戏开发组我已经记不清了。因为他做的是服务器那块,我不太关心。大约是在《大话西游》项目中后期吧,他说,服务器这边进度太慢,就过来了。他以前玩过mud挺有兴趣。但是其工作主要还是在底层。
大话的服务器最早是搭建在mudOS上的,一个开源的东东,用在各种文字mud上。做文字mud通常还会用一个中间层,叫做mudlib。早年传说中的方舟子一帮人等做《侠客行》,就是指做了一套mudlib,被后人用在各种中文文字mud上。听说大话的开发人员也自己做了套mudlib(听说而已,micro似乎跟我提过他们没用侠客行的代码,太久远的事情不想证实了),不过我对使用mudOS却不以为然。什么年代的东西啊,都21世纪了,还在用。也就那么点代码,就不能放弃掉自己写一个吗?而且原本为几十个人同时游戏设计的框架,用在这么多人同时在线的网游上合适么?
01年的夏天到来的时候,《大话西游》跨过了一个里程碑。古越发了一个内部的demo,没有网络功能,只是一个主角在两个场景间转悠。一个长安城,一个化生寺。回想起来,整个demo就是被逼出来的,没什么太大意义。老板说,要有一个demo,那么就有了。
我的场景管理模块完成了,角色精灵的显示完成了,其实要做的工作只是粘合一下,没什么实质的东西。这种demo更像是无数国内开发小组忽悠投资用的玩意,秀几个人物,来两个场景转悠一下。只要美术做的足够漂亮,就足够可以蒙过那些不玩游戏的投资人了。这样的demo多如牛毛,相互之间不同的是,图象上能表现出来的技术含量高低:2d的还是3d的,有多少特效,画面刷新率多少等等。其实离游戏还远着呢。图象表现上的技术,是游戏开发中最简单的技术了。倒不是技术含量低,而是一旦有人克服了技术点后,都是成熟的玩意。接口简单易用,也容易独立的更新换代。从工程角度上讲,可以正交分解的模块都是简单的东西。
不过话说回来,在上个世纪,国内就连这些简单的部分也做不好。随便发行个(单机)游戏,不在底层出点bug就可归为上成佳作了。多少好的游戏就毁在引擎的不稳定上。离开一个稳定的引擎支持,就不要奢谈游戏性的调整。妄图在一个不稳定的引擎基础上设计出一个好的游戏出来,那是空中楼阁。绝对不存在一个游戏,单单只是程序有太多bug,而游戏设计却非常棒的。程序这块做坏了,不仅仅影响玩家的感觉,同样影响策划的工作。等到《梦幻西游》出现在这个故事中,我会展开来谈谈这些。
和大部分原创游戏一样,游戏定名总是晚于项目启动的。01年4月我正式入职网易时,大家还并不知道这个游戏会和周星驰的著名影片《大话西游》同名。micro他们只是想做一个以西游记为背景的网络游戏。这个想法来至于当时有名的mud《西游记》。我对国内mud的历史没有什么了解。大约知道有《西游记》的巫师(yesi)被招聘进来工作,大家对《西游记》情有独衷并不奇怪。
月心是micro的合伙人,也是最早天下的策划。理所当然的承担了新项目的设计任务。因为我对网络游戏本身没有兴趣,所以我对这个人也不太熟悉。倒是和另一个策划私交不错,大猫猫。严格意义上来说,他不是大话西游的策划,进入网易前,我想他的身份多半是一个资深玩家。他以前做什么的也不记得了。不过我倒是很早听过这个人,似乎混迹过sina的游民部落和后来的mop。他的朋友圈子里的人见过不少,salala、commando还有后来加入网易的ali等等,大多是做游戏媒体的人。
今天已经开始上班了,最近很忙很忙。在调游戏的数值,很繁琐的事情,还要写程序去模拟。整个项目也需要人去照看。
这个系列,我想会坚持写下去。但是不想成为自己的负担,我想这样才能写的自然。因为都是写一些真实发生的事情,和身边的朋友,按记忆按自己的理解去写就好了。不像写小说,会担心有逻辑上的漏洞,会困扰于故事中每个人的结局该怎么安排。所以,挖了坑不知道该怎么填上这种事情多半不会发生的。
已经开始有朋友写email跟我聊这几天我写的这几篇东西了,有人抱怨为什么没写谁谁谁:)。这个问题其实上次解释过了,我是个不善于回忆和叙述的人,每次从记忆深处挖点东西出来,都会涌出一大堆的人和事。精力有限,只能挑选几个来写。
关于国内游戏圈早年的一些事情,有兴趣的朋友可以google一下“北外隐形人”写的“中国游戏年代记”。是我读过的最全面的一个记录。从叙事角度看,猜想这个“北外隐形人”是游戏媒体圈子里的人。对于制作圈子来说,有一点点距离。有些东西写的有点偏差,比如99年时庞鑫大学还没毕业,不可能结婚的:)。同样,我的回忆也可能失实,尽量少写道听途说来的故事吧,呵呵。
好了,以下是今天的正文,谢绝转载:
我考虑了几天,突然有了些灵感。我想我找到了方法解决这个问题。只是古老的脏矩形算法而已,好多人尝试过,可惜都没有用好。我想我可以换条思路解决的好一些。
再就是阅读了MFC中CString类的源代码。因为吴东黎说,好多人不用MFC,但是离不开这个string类。他把这个类从整个MFC中剥离了出来用。我也不用MFC,不过还是想,有这么好用吗?随即读了一遍。因为正好在重新学习C++,我就自己开始写一个string类。
这两块东西让我把“风魂”的代码用C++翻新了一遍。如今回头来看,代码很混乱,没有章法。但是我想它们见证了自己的历史,至今仍放在主页上供人下载。
没有哪个程序员的代码一开始就能写的成熟稳健,我们都经过幼稚的年代。
狂欢之后,各自散去。在本地工作的,也开始忙忙碌碌,留下我一人。有时候可以去一下老同学读研的校园,跟他们吃吃食堂,打打台球,听他们聊一下自己的老板,还有一些八卦。我觉得我还存在于这个社会。
10多年后,我在学校的机房上网,泡bbs,做个人主页,写一些关于游戏的自己的想法。交了许多的网友。大家都是业余的,年轻气盛,想自己做出好玩的游戏。王欣是第一个给我发email的职业游戏人。更早的97年,国内有两家大的游戏公司,前导和腾图,有如台湾的大宇和智冠。可惜生不逢时,前导做不了大陆的大宇,腾图也远不及智冠。
腾图命中注定的散掉,王欣的八爪鱼工作室从腾图分的出来。98年,王欣邀请我在假期去北京玩,他把我带进游戏这个圈子。我又有机会站在天安门广场,原来并没有那么大。我想,如果毛泽东纪念馆挪一下地方的话,广场会更宽广一些,和我儿时记忆中的一样。小时候怎么就没这种感觉呢:)。
那个年代,我成月成月的逃课,去北京帮王欣做些兼职工作,并听他说些早年北京游戏圈子有趣的八卦,有如今天我给新人说起往事。回忆起来,自己其实什么也没做,似乎又做过点什么,反正最后一次,我拿了一小笔兼职工资。不过没有花掉,因为回到学校的时候,一个同班同学缺钱交学费,我全部借给了他,毕业那天他才凑起来还我。
当然,身在北京,我就有机会四处拜访网友同好。随即发现,其实许多网友都已经专职在做游戏了。有些人后来再没怎么联系,比如曾经在金洪恩做《自由与荣耀》的3dengine的rickhuang,我还记得他在那个晚上,他抱怨他的后继者让代码从几万行膨胀到十几万;又比如做《独闯天涯》的郭巍,他念叨过来北京前没有钱吃饭,小组里每个人一个冷馒头就可以啃一天,脑子里只想着把游戏做出来……
明天就是五一假期了,同事都已放假。我不打算在假期加班,因为加班也无事可做,手头上的工作都需要与人合作。
我这人有个优点,选择性记忆,那些不快的回忆很容易随风而去。活在我记忆中的人们,对他们只留下感激。我也曾经爱写日记,很早我就写电子日记,记在自己的机器上,PDA上,当我有一些不愿意再回忆的事情时,我会个将整个文件加上密码,长长的一次性密码,保证自己只能记住一小段日子。当这段日子过去,密码就消失在记忆中。然后再也打不开这些文字,等到下次更换硬盘,无论我多么的想再看一眼当年的自己,也无能为力,只好把加密过的文件删去。
是的,我想讲一个真实的故事,一个拥有数千万玩家的游戏诞生的故事。我并不喜欢这个游戏系列本身,但是我为这个产品自豪。我的代码曾运行在几千万用户的机器上,作为一个程序员,还有什么比这更让人满足的呢?也许有,比如让这个用户数量再扩大10倍。
昨晚因为牙齿的原因做啥都集中不了精力,就那么懒散的挂在googletalk上。老丁突然发了个消息过来:
“你们的东西,能否给我一个里程碑啊。都2年了,什么都没有看到。”
我知道终有一天,我会遇到这个提问。两年多以后才被问起已经很不错了,但是我还是没有答案。只是简单的回了一句:
“只是没有给玩家看的东西”
想了一下,又继续解释,“我们在抓紧做。现在有个可以看的demo是没有意义的,那意味着以后肯定会废弃掉”
最近两年似乎气候变了。国庆在家的时候,父母笑称,如今一年只有两季。长假那几天,武汉的气温高达34度,丝毫没有入秋的迹象。这还没过几个周末,天气似乎在一夜之间转凉了,风吹过来,居然有些寒意。
前两天晚上睡下去觉得有点冷,从壁柜里抱出一床被子加上,似乎还觉得不太够,又垫了一床在底下,这才暖起来。
每天我大约两点从办公室离开,写字楼附近很安静,车也很少。路灯很亮,天上看不见星星。因为晚上正门关了,我每天从底下车库穿出来,然后会通过一楼靠外的走廊。这个走廊临街,白天是走行人的。周末也有人在这摆地摊。除了一面靠着楼,三面都是空的。不过走廊倒是很宽,大约有三米多,白日里人来人往。不知何时起,这里成了没有住所的人们深夜的栖息地。每根粗大的立柱的阴影中都睡着一个人。柱子不足以挡风,但可以遮蔽刺眼的灯光。他们都蜷缩在角落里,尽量不去影响像我这样的夜归人。
国庆七天的假期,明天就要结束了。
独身一人的游子,最自然的选择度假方式就是回家。跟往年的不同,我提前一周订好了往返的机票。去年这个时候回程机票的紧张让我记忆犹新。
在家待了五天了,无所事事的上网、打游戏、看电视、陪父母聊天、还有看书。大多数事情我平常都不会去做,也没什么机会做。
自从两年多前出来独立带团队,我对“事业”这个词就有了新的感受。虽然它依旧是个游戏,但是个不同的游戏。不知该如何形容这种感受。或许我想说的是“责任”,但又觉得不应该用这么个略感沉重的词;把这个词换成“梦想”,又显得虚无飘渺,有点儿戏;谈到“压力”,一定是自欺欺人了,像我这样骨子里玩世不恭的人,谈压力是可笑的。
9月15日,一个人的生日。
我还记得,从来没有忘记。
这几天有个读者来来去去给我写了几封email,问起我的观点:数学和编程是什么关系?学编程需要多深的数学基础?到底需要掌握哪些数学知识,对编程能力的提高有帮助。
这个还真不好说。
如果说起课堂上我们学到的知识。除了初等代数,在编程中我还真没碰到多少依赖数学技能来解决的问题。当年我学C语言的时候很小,甚至不知道数学中函数这个概念,还不一样把C语言学完了。虽然过了些年,我才把数学中的函数和程序中的函数联系起来。
做3d游戏编程,大学里的线性代数可能还用的到一点。至少得知道矩阵运算吧。但是大部分程序员并不需要接触这些东西。除此之外,如果说程序员必须精通微积分才能编程,那绝对是鬼扯。
那么,学习数学有用吗?当然有必要。因为数学是一种思考方式,编程需要这样的思考方式。
小时候的玩伴DSH明天举行婚礼,他从法国回来办这桌酒席。相比之下,我飞回武汉就算是近的了。
还在appleII时代时,我们在一起学习BASIC语言。前些年混在北京时学了个名词叫做“发小”,应该指的就是我们这种关系。初中的暑假,一个人在家写程序没意思。或者几个人约好了跑去学校机房,或者大家去DSH家里泡上一天。他家最为宽敞,家长可亲,一堆人闹个天翻地覆也没关系。
最近洗澡的时候,发现了右额处多了一大缕白发。平时被表层的头发盖着看不出来,掀起方能察觉。看到觉得有趣。我一直有少白头,小学时就有白发,应该是遗传。不过长出这么大一缕还是第一次。(我知道父亲大人也有看这里。不必担心,妈妈知道我的,一直很注意保养身体。)
我想这也不是累的,可能是前段想的事情太多的缘故吧。
独立带团队已有两年了,这里每个同事都是经过我招聘来的。甚至办公场所也是自己敲定的,装修方案都亲自改过。两年还前兼过财会,前台,网管。好在不久就找到了得力的行政mm,可以心无旁骛的做开发了。总之,我对周遭的一切人与物都深有感情。
一直以来,都有所谓猎头和我联系。我不是一个容易被人说服的人,只因为相信自己在芸芸众生有自己独立的思想。一个问题在两年前就有了答案,而这两年不断添加着注解。为什么选择一直留在网易,而没有自己创业?或是去谋求一个更好的发展空间。
五一长假,因为护照马上五年期满,出入境管理处假期不上班,我平时又没空回家办这事,所以提前一天回来了。请了一天年假,部门行政提醒我,到六月一日前,我还有六天年假没用掉。哈,这几年,似乎我还没有哪年把年假休满了。对我来说,无所谓工作,白天写写程序,就是件很快乐的事情了。每天能做让自己快乐的事情,又怎所谓假期呢。
到家三天了。归程原先订的是机票,中间因为提前回家的缘故还改签了一次。后来听说火车大提速了,正好碰上博文视点的朋友同行,在他们的怂恿下把机票退掉了。南航电子票这点就是方便,鼠标一点,什么都办好了。火车卧铺夕发朝至倒是方便,床上也好放行李,我便把琴带上。在家八天,不可荒废了功课:D
可惜这火车还是不对我的生物钟,上车便睡不着,直到把psp打的快没电了,怪物猎人中杀了两条龙,终于睡去,早早醒来便到了站。我在想啊,如果这车可以凌晨发车,中午到就完美啦。武昌站正在修缮,门口堵车。不知道什么时候武汉的交通也这么不通畅了。硬是走了快一个小时才打到车,紧接着去办了护照的事情。劳累一天,到家倒在床上睡了一下午。
最近迷上了七弦琴。
一开始是被一个同事忽悠的,她弹了好几年了。只因为一句话,她说:“我喜欢曹子建的《高风亮节》,弹奏的时候,两千年前的人的心情仿佛穿越了时空,你可以在自己身上感受到。”
古琴是君子乐器,排在琴棋书画之首是很有道理的。笑傲江湖中那本被很多武林人士当作天书般武功秘籍的琴谱,其实就是用减字方法记录的琴曲的弹奏指法。琴谱上甚至没有标记节拍和每个音的长短,全凭演奏人的发挥。音乐往往可以比语言更能传达人的感情。心中有什么事情,一抚琴就能安静下来,声音从琴弦中弹出。旁人从琴声中听出弦外之音来,当不是什么难事。
琴谱上也没有标记音高,所以很适合我这种不识五线谱的人来学。而且键盘敲了二十多年,手指头还是满灵活的。琴的声音也极小,半夜练习,隔了堵墙,那幽幽的时断时续的声音就传不出去了。在家练习永远不会被邻居投诉到物业去。
跟着我也就练了一个星期。
年少的时候,觉得朋友是世间最重要的东西。与人相交当情同手足、肝胆相照。小学毕业后几年,我还组织过小学同学聚会,看望老师等等。一直到后来上大学了,以往的中学同学还经常聚会,很多次都是我来组织的。大学以前,朋友圈子几乎就是同学圈子,我在方圆十里的圈子里生活了十多年。
后来离开了家,有了互联网,朋友交际圈子大了许多。每到假期,就把足迹遍际全国,四处拜访网友。那时候感觉,交朋友只需要志趣相投。每每碰到知己,便知无不言,言无不尽。促膝长谈那是常有的事。近年来颇为流行人脉这个词,想必我在行业里的人脉,就是那时候起一点点积累下来的吧。
直到后来长大了,渐渐明白了一点道理。
零七年来的这么快,让我措手不及。
十年了。九七年我刚刚接触互联网,做了自己的主页:以游戏制作为主题的第一个中文网站。
也是那一年,我用自己编写程序的技能赚到了平生第一笔钱。一个现在都不好意思拿出手的小共享软件,靠盗版光盘的传播,收到了来至祖国各地邮寄过来的注册费。
似乎还是在那一年,我决定做自己的游戏。结果岁月飞逝,今天仍旧是感觉一事无成。
十年前,网易这家小公司成立了。十年后的今天,我掰着手指数,居然已经为这家公司服务了六年。还真是难得啊。零零年的时候我可没想过自己会如此稳定。
本周总算破记录了,通宵了两次。主要是最近程序写的比较high,一下就得意忘形了。就这样,居然在一周里吃到了两次楼底下,热呼呼、香喷喷的肉包子。才五毛一个,好吃又实惠。
记得大话西游二发布后,这几年都不曾高频率的通宵了。需要的时候一周也就一次,总是在接下来的几天里要休息补回来的。
这么干上一次,仿佛回到了十八岁。那个时候有激情啊,把台破机器搬到学校后面九十块一个月的出租房里,动不动就通宵。第二天还干劲十足的。那时我的名言就是,睡着了还能写程序,哦,不是写代码,是为代码写注释。记得那个时候冬天连被子都没床厚的。拿个薄被裹起来在计算机前面冻的瑟瑟发抖。
后来条件好点,学校门口的网吧收留我。可以搬机器进去免费上网,我也就只是帮忙架了台linux的服务器而已。似乎冬天还比较暖和。朋友也多,一到半夜就被人教唆着打星际,4vs4。我就会玩zerg,直到今天还是没弄明白terran和protoss高级建筑的依赖关系。
这一下都快10年了。没想到当年网吧里的好友,现在到了我的项目组里做策划:D偶尔还打一把星际。
早就有周末往电影院钻的习惯。我对电影不太挑剔,想起来了就会买张票进影院。在广州前两年几乎每周都看,那个影院很偏僻,有时候偌大一个放映厅就我一个人,倒也享受。电影票也不贵,无论拍的再烂,我都企图从中找出亮点了。我想,作为导演总会想表达点什么吧,那么把这些找出来就是懂得享受了。当然,有些片子我是不看的;我觉得可看就看,看了就不会抱怨,只是如此。
那么这部片子能说的也多是赞许了。
周四的晚上,准确的说是周五凌晨。我被通知参加白天在广州的会议,乘早上第一班飞机。原本我还躺在床上计划周五的工作的,因为觉得这次会议更重要一些,就调好闹钟,把计划放在一边,睡了过去。五点起来赶去机场,下了飞机就直奔会场。会开到了周六的凌晨三点,吃完中饭就折返回来。精神和身体都很疲惫。
这个谣言在接连的几个月中,直到最近一个星期,还有认识我的朋友问起。一开始,我认为这个谣言过于可笑。因为没有任何的依据,我们公司里面也没有任何的迹象可以引发这样的一个谣言。在我看来,这种谣言都有人相信,只能说是相信它的人太没有对事情的判断能力了。我这种想法似乎和公司大多数人相同,大家都不屑于做点什么解释。仿佛如果去解释什么,好象还真有点问题了。
三人成虎的故事有它的道理,这道理说起来大家都懂,但没有切身体会还真感受不到那种真切。谣言止于智者,但由于信息不对等的关系,智者也会被蒙骗。慎重其事的澄清谣言不应该是一件不屑一故的事。
这里以我个人的身份,慎重的澄清以下事实:
梦幻西游从始至终都是网易自己在运营,从来没有卖给日本公司。从来没有产生过这种想法,也没有任何日本公司对此表示过兴趣。网易的运营团队没有接触过任何日本公司商谈这类事情。我可以得出这个结论,基于我对公司的了解,对公司游戏部门管理层的同事的了解,对丁磊的了解。而且梦幻西游到今天还是一款给公司带来很高收入的游戏,卖给任何公司(不限于日本公司)来运营都不会给公司带来更多的收益。
大约在游戏制作行业里,大家都把设计工作分成三大类:程序,美术,策划;其重要性相互之间都无分上下。这算是跟其他IT行业极大的不同点吧。
但这里面,程序的门槛是公认的最高。很少有听说有专职的美术或者策划人员,从对编程一无所知转变成一个程序高手的。按道理来说,编程需要的基础知识并不复杂,只需要加以时日磨练,任何人都有成为优秀程序员的潜质。谁都明白,当团队中的成员互相了解各个领域的工作可以提高整体的效率。可是,为何,许多人却经过努力,没有迈入程序设计的大门呢?结果,大多数美术人员不会编写max/maya脚本;策划没有能力编写复杂结构的脚本。
那么,编程的门槛究竟在哪里?是什么阻止了非编程人员在简单的程序脚本上更上一层楼?作为多年的程序员,我似乎忘记了当年入门时的心境。面对这样的问题时,便得在记忆深处挖掘答案。
以前中学时虽然玩过一阵子,但是或许是搭档的原因,一直没找到感觉。而且那个时候小,叔叔家有一柜子牌书,我都只知道死读书,没体会真正的乐趣。
以前比较好围棋,因为很靠计算力和大局感。这次在桥牌中发现了新的乐趣,一样是需要逻辑推理和计算的。但是,对搭档的信任和模糊的推理更为重要。过于自信的人是打不好桥牌的,埋怨搭档更加没有用。
这个周末打了很不错,比前几天一次有了很大的进步。前几天一败涂地,唯一一盘可以翻盘的机会,搭档居然退缩了没有叫进局(事实上可能进贯的)。昨天还是同样的配合,但是多了许多信任。在经过仔细思考后做出正确的决策,并且相信搭档能理解自己的想法;以及相信搭档在做正确的事情,这两点相当重要。
固然媒体在传播报道的时候总会有一定的失真,没有反映出"发言人"的真实态度。但若"教育部发言人"真是代表了"教育部"的官方的一种想法或是思路。那么真的是一个悲哀。
教育乃立国之本啊。大原则上,有多少困难都应该想办法克服。计较短期的经济利益,是一种短视。虽然应试教育有种种弊端,却也不失为是一种在高等教育有限的情况,对国家的下一代做出教优筛选的一种方案。这种方案比用学子家庭的经济收入来拦掉一部分人要合理的多。
今天程序里突然发现一个bug,就是由这个技巧引起的。有的地方对,有的地方不对。转出来成了0。
百思不得其解,只好老老实实研究这个技巧是如何工作的。然后才明白是浮点精度控制问题。我们的项目使用d3d的client在d3d设备初始化后,由于d3d修改了double运算的精度。
要想放心的用任何一个技巧,knowwhy永远是前提啊。
这两天周末,楼上的更加变本加利,恃无忌惮。似乎每天都要进行到晚上十点。我试图从敲打声中找到一些节奏,这样就可以阿Q似的当打击乐听。当然在隔壁休息室内玩一下PS2,把音箱开到最大也算是一种抗议。
小猪真是天才,居然临场想到了这么大的一条龙都是可以弃掉的。
这两天过年在家陪父母,其他也没什么事,老同学大多有自己的小家不是每年都回武汉了。U盘带回来的一些代码也不太想看,家里机器除了个mingw也没别的编译器,要说写程序还真没啥兴趣了。那么就只好上网到处逛逛了。
我是本科学历,还差点辍学没读完,当初学校的老师也流露过让我留下来读研的想法。不过看我学习太差,还在大四闹脾气,整出个退学那挡子事,也就没好明说。说了我也是打死不留在学校的。我现在的领导倒是硕士毕业,每每出去招聘前,都要叮嘱,不准歧视硕士,我们公司不能有学历歧视。结果呢,硕士博士,从结果看还是被我们“鄙视”了。
我这个背景应该没什么权利评价读研这件事吧?以为然也者不必点开看下面了。
今天看见一句话觉得很有道理:高手之所以为高手并不是比菜鸟们懂的多,而是不懂的比他们多。
写这篇blog可能还是会继续得罪人。不过还是想谈谈。我不是新闻从业者,但是我想“新闻从业者应该是不偏不倚中立的观察者”这个应该在今天被达成共识。我个人是在泡wiki百科中,受到这个类似观点的熏陶的。
这两天睡觉前翻翻论语,读到泰伯篇,“民可使由之,不可使知之”。传统的理解就是,可以让老百姓按照我们指引的道路走,不需要让他们知道为什么。这句话是孔老夫子说的,(前面写了“子曰”)
从现在的思想看,估计很多人都会抨击这个观点。然后有卫道者改句读,例如“民可,使由之;不可,使知之”或者是“民可使,由之;不可使,知之。”;还有“民可使,由之不可,知之。”什么的。我自己感觉啊,根本用不着替老夫子开脱。我自己是越来越感到很多情况下真的是“民可使由之,不可使知之”了。
大约讲的是一个mm到网易应聘游戏客服,干了15天被告之不符合要求没有录用。按照开始的约定,也没有支付这15天的工资。这个mm估计巨受打击,她的男朋友很不服气,在csdn论坛上贴了这篇慷慨激昂的帖子声讨网易,应者纷纷。
编译原理的课程大学本科就应该开过吧,我不是科班出身,反正是没正经上过。不过依稀记得自己是学过的,记得是上中学的时候,跑到一个大学上课,老师教的就是编译原理。那个时候C语言还没玩转,最熟的是basic和6502汇编。理解那些东西很有困难。囫囵吞枣的记了一点,算是有点印象,逢人也可以吹吹牛。
今天才看到北京奥运的吉祥物。本人严重不喜欢。感觉最成功的就是超具娱乐性,网上已经有各种涂鸦版本出现了。满足了大量涂鸦爱好者和Photoshop扇子的表现欲。
在编程的世界中,只有你想不到的事情,懒的做的事情,没有做不到的事情。
曾经一度为使用哪种脚本嵌入游戏犯愁,lua的源码过了几遍,python的也看了点。lcc也试过,还有ch什么的。真正用在项目里的就是lua和python了。我个人更偏好lua一点。越读它的sourcecode越觉得它作为世界上最快的脚本语言,是名副其实。
很早以前,我觉得显示一个图片很难,好象发现很简单。曾经觉得汇编很难,结果发现很简单。曾经担心C++太复杂学不会,现在已经感觉游刃有余了。还有学习perlphp或者是stlmfc这样的库,不懂的时候都觉得难,懂了却是不过如此。
今天体检,起了个早床,六点就爬起来了,当然昨天还是按惯例两点睡的。不是很困,但是也没什么精神。检查结果,别的都一切正常,血压略微有点点偏高。
一直想有个地方随便写点什么,以前用javascript做个人网站也是想简化网站维护的流程。虽然早就知道BLOG会比较适合自己的需要,但是因为懒,也就一直没有做。