回到匹兹堡的第三天了,感觉还在倒时差。刚回去的第一天在红眼航班上没睡,结果到了地方没有去住的地方休息,而是大家就去学校玩了,我自然是没那个兴奋劲的,大部分时间就留在车上休息。刚才和我妈打电话还在问我脸是吃胖了还是没休息好比较浮肿,我猜可能第一天的憔悴劲还是没消散下去。
因为回学校的原因,又开始和“人”的事情打交道了,或者说至少在看我的朋友们处理人和人的关系了。一群人的时候我总有自己是一根插在退潮的沙滩上的木头棍的感觉,周围的流沙随着天色变黑一遍遍冲刷,直至我这根木棍根茎暴露,再无沙尘包裹,也抓不住任何身边漂流而过的东西。我想表达的是,跟着人群一起,若是自己没有什么脾气,很容易怀疑自己的某些观点或者看法,因为他人似乎都不在乎我在乎的事情。更加应景的是,匹兹堡的天气又开始夏天一般燥热了。学生时代的夏天傍晚空气里,又总是包含着某种放纵的因素在里面的,而这不能不说是某种危险的成分。观察夏夜傍晚的一群人如何各色心思,如何在退潮的波浪中被推至远方,又被浪托回来,如此漂浮往复,让我也有些累了。
听了 LEEPLAY 的精选集。
赶完了 FastCode 这门课的 Final Report,目前就只剩下 Final Exam 和另外一门课的 Final Lab 了。
最近关于自己似乎没什么好写的,更多的时间是在陪伴朋友,听朋友说他们的感受,比如人和人的亲密关系,信任与辜负,自我看法和外界评价;抑或是人之于社会的关系,自我认同的起源,对大公司这一设置的反抗,对反抗会导致的和社会脱节的恐惧,对出入世是否真的有界限的怀疑。偶尔也和父母打电话,听他们讲他们的想法,我也说我的。
和父母聊天的时候说到,以前我看电视报道或者文章,说“父母无私的爱”,只觉得可笑,似乎只要写家长的爱必然提及“无私”,不然就不值一提一般。当时的自己对家庭关系充满着犬儒的态度,极力撇清人的因素在里面,以一种轻描淡写的方式去处理。然而并不是和父母的关系不好,只是我对模板化的事物有种天然的厌恶,对于“无私”这种被滥用的话语体系以及所捆绑的价值观只觉得不信任,彼时也没有看透滥俗的事情后面可能是人之常情。
直到最近才思索明白过来,或许其他人写无私的爱是为了标榜父母这个角色的的崇高,但至于我,无私的爱却是父母本就应该提供的事物,因为只有在幼年时期接受过无私的爱,知道有这么一种无条件,可以充分享受而不担忧后果的爱,明白有这么一种情感是不计较得失的,或者是情感本就应该是这样的,日后成长为大人的时候才能无忧忧虑,大方且毫不惧怕损失地去爱别人,也能看透假借着爱的名义索取或是压迫他人的人,即使尚且没有相爱的人,生活也会过的更加坦然些,因为在生命的最开头就见过了更好的事物。
晚上十二点突然就困了,想着熬夜也没什么好处,某门课 Term Project 要在 Unity 上写基于 Quadtree 的地形,彻底解决问题没一整天搞不定,不如明天起来再写,写好了周五 present,写不好周五也 present。于是就躺了,短短地睡了四个小时,半睡半醒之间潜意识里面以为应该有六七点了吧,然后点亮屏幕发现只有四点,一片漆黑之间只觉得渴。
开了房门想去客厅拿了瓶水喝,没想到门转轴的声音太大,把我自己也吓了一跳。隔门的室友被吵醒了,发出了那种刚醒时迷惑的声音。我僵在门口想着是不是要解释啥,但室友似乎也并不是彻底醒了,听他自顾自地嗯了一声就又安静了下来,更像是在回应他自己的迷惑而不是我的解释。
我就这样拿了一瓶水在黑暗中一口气喝完,然后考虑是不是要继续睡,四点也未免过早了些,透过拉下来的百叶窗还可以看到外面只有停车场的日光灯。刷了会推,之前因为 Pegboard 也就是苹果奖学金项目的事情似乎多了一些人关注我,里面还有苹果现任的工程师,可惜我是个在推上不停 like 的人,希望他们不会看到我在点赞什么奇怪的内容。这么一算,似乎再过两个月我也要成为苹果工程师了。作为某种变化,自然是有风险和不安在里面的,我思索着到时候怎么见老板,入职可能要做的第一件事情,能不能做好第一件事情,会不会第一件事情我就全然不会。紧接着又开始思索入职了之后没办法做个人开发的事情,想着是不是应该入职前把自己的几个需要维护的项目都推一把。思索着会不会入职当天,我也会这么早醒来,然后坐在床边不知所措,担忧着一样的问题呢。
想到这里睡意基本上就没了,一旦意识到这一点,似乎之前担忧的事情开始变得浅淡了,我自我说服的机制开始介入进来,开始和自己说自己的心态很容易受到情景影响,一旦我开始听歌,我就会觉得自己无所不能,这些事情也就都不是问题。
于是我下定决心开了灯,开了耳机,开了电脑,在这里敲字,过会准备开始写 Unity。我应该庆幸自己醒来的时候还能相信自己无所不能,就如同我应该庆幸自己醒来的时候还能晨勃一样,因为就像很多生活里被我用于确认自己仍然过的很有生命力的事情一样,某一天可能不知不觉就没有了。
快毕业了,仍然作业不断,感觉不到毕业典礼都闲不下来。
昨天晚上躺在床上刷推,看到 SHIRIMOTO 画的一副 图,看到食物洒在地上就突然觉得挺难过的。得得得,我想,现在怎么软弱成这个样子了,只是漫画而已,这要是再去看他之前画的打地鼠那个岂不是要哭出来。
上周熬了一整周,一直在写 Pegboard,我的 WWDC 奖学金项目,原本准备就叫 Scripting Node Editor 来着,但后来有个前辈点拨了下,所以想了一个更生活化的名字。最后终于提交了,也开源到了 GitHub 上,没空虚多久,就又开始写另外一门课的 Term Project,之前答应了课友要做的,结果自己反而到 due 的最后一天才开始写。最终也写完了,四五点的时候把东西一交就躺了。似乎上周又困又累的时候有很多话想说,但现在一点也想不起来了,等想起来的时候再写,现在就是继续做其他作业,然后五月中旬毕业,去毕业典礼,然后出去玩。
去看了 Everything Everywhere All at Once,十分推荐,我的话也只能说到这个份上了,因为脱离了电影院这个设定去描述这部电影的剧情,要么会让人觉得特别无厘头要么会让人觉得特别 cringey,所以最好的办法就是亲自去看。但除此以外我还是可以具体地说两个我觉得十分喜欢的点的,第一个就是剪辑非常有力,不只是镜头切换上的那种剪辑,还有叙事节奏上的安排也张弛有度,至少整场里我的情绪是一直被这个剪辑给控制住的,第二个就是十分有想象力。想象力这个词广受污染,可能现在已经背负了太多含义,在我的印象里可能更多地和“广告创意”或者“幼儿早教”挂钩了,不再那么能表达我的感受。我其实更想说这部电影是那种我只会在梦里才会见到的故事,天马行空但自成逻辑,而且这逻辑十分简单,并且因此会让人错以为是自己情感的某种本能,然后让人怀疑在现实世界里,是不是自己给自己设下了许多不必要的限制,压制了自己的情感。总之,我很喜欢这个剪辑张力和想象能力的组合,像是编剧某天早上起来发现做了一场 fever dream,然后非常严肃地用歌剧的形式去把这个梦给写了出来。
事情多的要命,该做的事情一直没做完,想做的事情因此也被迫推到不知道什么时候去。九点有个会,前一天晚上又睡不着,于是索性坐床上把 Severance 给看完了,然后浅浅睡了一两个小时,闹钟闹起来开会,也不开视频,就只在必要的时候发言下。开完会冲了个澡,精神好了些,想了下似乎最近一个月还没这么早醒来过,于是跑去剪了个头,似乎早起还是有些用的,至少会让人想要出门。湾区又开始下毛毛雨了。听了 Champagne Shots 和 On Me。
FKJ 出了一张新 Single 叫 Greener,怎么说呢似乎并不是我熟悉的那个 FKJ,或者是说 FKJ 这两年的音乐,包括之前和 Meditation 软件合作的纯钢琴,都少了些以前那种实验性和 Groovy 的感觉,而我以前正是因为他那个时候的曲风而入坑的,因此我会有这种感觉。但不管怎么说有新音乐就很好了,风格一成不变也是不可能的事情。
Fast Code 2 这门课之前提过,想把 Term Project 改造成 Procedural Terrain Generation 这个课题来,借作业之名写自己的游戏之实,而我也的确这样交了 Proposal。这个周末要交一个期中进度汇报视频,因此总算是因此拿 Unity 糊了一个 Demo,意外发现 Job System 用来做 Procedural Mesh 已经很快了,有些情况下比 Compute Shader 还要快,而且写起来肯定比 Compute Shader 要好写。接下来准备继续借着课题去写 QuadTree 和 Cube Sphere,如果可以的话也许等毕业的时候能攒一个小的 code base 拿来重写我的太空游戏。
室友 C 给我放了一个跟拍高中生的纪录片,叫《真实生长》,看了前两集,还是挺受震动的,尤其是第一个女生,上了一堂语文课,说对这门课的感想时能说“人对于情绪的拿捏,是学校很少在教的”,然后高中就想成为一个创造而非消费事物的人,因此去写了小说。回想我的高中,只有想要表达的欲望,和没有办法清楚表达而导致的愤怒,因此大部分时候只在想事情,又充满了无能为力的愤世嫉俗,一点也不像这里面的人物,对学校运行的框架了如指掌,能清楚地把自己的想法表达出来,能坦诚地,熟练地讲出来,甚至还带有着因为自信而有的傲气。某种意义上,我现在在做的很多事情和很多挣扎,仍然在原地踏步,是本科时候那种为了表达欲望而走极端的延续,所谓为了造反而造反罢了。也就是说过了几年,我并无不同,和这些高中就看清路线并且从容不迫的人相比,是差的太远了。
听了 FKJ 的 Moment。
今年的 WWDC 公布了,貌似幸运的人有机会去现场。在考虑奖学金做个什么好。
- 想过做一个 Superliminal 一样的 Non-euclidean 游戏,不过在 AR 里面。但 lidar 的场景扫描还是不够精细,而 Superliminal 的近小远大效果需要有持续的 collider 作为边界约束物体的缩放,因此大概率做不了。顺便一提 Superliminal 我玩得头晕,默认的 fov 也太广了,也不知道头晕和视觉错觉有没有关系。
- 想过移植 WaveFunctionCollapse 算法到 Swift 上,然后做一个 2D / 3D 的 generative art demo,2D 的话可以做 dungeon map generator,3D 的话可以做一个 city generator,类似于 Townscaper 那种感觉。但能不能在短时间内得到一个正确的算法还不知道,以及 3D 的话还要准备很多切割的素材,也不是很方便。
- 继续 20 年的 Node Editor 项目,摆脱 UIKit 和 UIKit Dynamics,把 editor 界面用 SwiftUI 重写。至于 editor 本身给什么用,一个想法是延续 20 年的 shader editor,但不再是 full-screen shader,而是 surface shader,一个 master node 提供 diffuse 和 vertex offset 那种,然后配合一个球的 mesh 就可以做 procedural planet generator。另外一个想法则是 low code game maker,提供一个类似于 Unreal Engine Blueprint 的环境,有个 frame render 的 callback node,然后就可以接其他的逻辑 node,很久之前用 Unity 还做过一个 web demo。但这两个想法总体来说都是炒冷饭,毕竟是重写两年前做过的东西。
- SwiftUI 到 Codable JSON 的互相转化,进而实现一个 SwiftUI 的图形化编辑器,差不多是个 storyboard。虽然听起来有点炫,但实际演示效果估计比较拉胯,评委估计会一脸懵。
- 基于 AR 的 Echo 效果,就是背景全黑,然后 lidar 的 mesh 套一个自定义 shader 模拟回声的效果,我记得之前有人用这个想法做过恐怖游戏,一个是 Stifled,一个是 Dark Echo,但我不知道奖学金做这个效果能干嘛,要说模拟视障也可以,但总之有点牵强。
- 还有些其他奇奇怪怪的想法,比如用 SwiftUI 写一个桌面 OS GUI Shell,或者学下用 Metal 写个 Ray Tracing,或者把 Diffuse 用到的 Mesh Gradient 算法移植到 Metal 上,但都不是很好,越想越有一种回到高中语文考试,做完了阅读理解还剩下四十分钟写作文,结果审题就想了十分钟的感觉。
和现在在读博士的高中同学吃午饭,听她说刚开完组会,紧张了很长时间的精神突然放松下来,因此会很困。回到家,坐下来打开 GitHub 看室友提交的大作业改动,但一直没有跟上整体的思路,看了一会也困了,于是瘫了一会,想了想还是应该起来继续看 GitHub,不然又快到了晚饭的时间。于是又爬了起来,但没有直接开始看电脑,而是先去厨房拿了瓶水。经过客厅看到室友估计是吃完了午饭,直接在沙发上睡着了。四月的第一天,感觉大家都很困。