分类目录归档:日常

生活如同一张华丽的袍,里面长满了虱子.

[新坑预告] Yet another shadersmod implementation

最近闭(zhuang)关(si)了几个月,我并没有被Hello Games干掉(顺便在这里祝贺他们没有跑路而坚持在Steam黑五打折期间出了个主要更新,以及敢于向玩家们弹小窗的勇气 - 他们是我见过的第二个向玩家弹窗发送更新通知的游戏厂商,第一个是制作MachineCraft的G2CREW) 这4个月我基本都在过着6点睡2点起(嗯,早晨6点,下午2点)每天见不到几个小时的太阳的生活,在肝腻了文明V(没有I)、舰R、崩3、WT后我终于决定该写点什么,正好手头这个秘密开发了5个月的坑终于有些眉目了,因此决定放个预(wei)告(xing),有人说把坑公开出来就能督促自己不弃坑,然而对我这样的脸皮略厚的人来说好像并没有什么用...2014年我公布了AsmEventBus(基于ASM的Java事件总线系统,比Guava那个基于反射的系统要快很多)和一个没公开名字的Java模块系统(如果称它是"类OSGI"显然有些装逼,但它做的事确实和OSGI差不多) 然后理所当然地坑了,其实对于前者我挺耿耿于怀的,明明只要再完善一点就是个很好的库...今年年初在日狗的软工作业要求下不得不放了个某文字H游戏引擎的Java开源复刻卫星,然后,嗯,然后没下文了.写到这时我自己都忍不住掩面笑了一下,看来羞耻柱这种东西对我这样倒错的人来说并没有什么监督作用.其实我挺怀念11~12年的那段时光,那段不知失败为何物敢于写任何自己想写的代码的日子,在11年的最后一个月我在这个房间的同一个角落半生不熟地用C#写一个文字猎奇游戏,用慢的吔翔的GDI+在WinForm上画文字(现在一想其实挺像ERA啊,当时我要知道ERA的存在的话是不是就给ERA写脚本去了?) 最吃精(?)的是当时我居然在试图写一个自己设计的脚本语言的解析器,幸好当时没做出来,不然这足以让现在的我感到自愧不如,有人说好的程序员应当在看到自己6个月以前写的代码时能发觉自己现在的进步,这么说我应该尽快删IDE退圈了. (笑) 不过我倒真的挺怀念那个项目,毕竟能亲手(即使是只有文字)肢解幻想乡的女孩子怎么想也是一件刺激又有趣的事情,有机会的话我一定要把它复刻出来. (啊呸)

怀古伤今的时间到此为止了,现在说说手头上这个坑,当时提出做MC光影Mod的复刻这个概念是在什么时候已经无从考证了,印象中是14年7月我和ici2cc给CustomSteve做光影Mod兼容时第一次提出了自己做光影的想法,不过当时由于很"容易"地完成了CS与光影的兼容工作,因此这个念头就被打消了.一年半后的16年2月我写完了光影包教程后和ici侃大山时聊到了光影Mod的种种不足,当时我开玩笑地提出自己也打算写一个光影Mod,ici沉默半响后问道你是认真的吗,这时我才开始真正考虑这件事,具体的讨论过程记不清了,结论大概是坑太大填不起,而且当时我刚完稿光影Mod教程很累,也并不想就这么立刻废掉自己的工作成果,更重要的是我想去填一个自己之前挖出来的大坑(这个坑不想提了...也不用猜,"基本上"从未公布过) 因此这件事就被放下了,时间到了6月,那时不知在哪我看到了一个消息,Continuum光影包的作者在用C++给MC写一个渲染器,不用说也知道它会支持第三方光影包,当时就把正在补伊里野的天空的我吓得把播放器关了,为什么呢,因为当初我被Continuum的作者肛过一次(大雾) 2月初我在撰写光影包教程的最后两章时ici弹小窗告诉我"被抢先了",当时吓得我差点提前去见幽幽子,ici赶在我失神之前发来条链接,我赶紧缓过来点开一看是个油土鳖视频列表,上面三四片Continuum的作者录制的光影包教程视频,简单地看了一下后我半自我安慰地得出了个结论:(局座脸)这教程,飞不起来! 本着公平竞争的原则,这里贴出视频列表地址,为什么那么说呢,我感觉他过度死扣光照、ToneMapping和PBR,而忽略了对光影Mod特性的介绍,最简单的例子,除了我的那篇附录以外还能从哪找到对光影Mod的技术规范文档呢,恐怕官方Wiki都没有这么详细,然而话是这么说,但毕竟人家已经抢先发出来了,"第一个光影Mod教程"这个头衔是抢不到了,只好奋笔疾书去抢"第一个成文的光影Mod教程" (笑) 这也是为什么我的教程中最后两章明显的很潦草的原因 (当然,我写烦了也是一个原因...) 后来我的教程发出来了,而他的教程弃坑了,我还顺手打了两发对他的黑枪 (诶嘿,我这人咋就这么爱打黑枪呢) 一个是他那个"号称世界最强却实际只是又一个C13衍生品的光影包",一个是他开的"MC的Vulkan渲染器"坑.故事就看似告一段落了,然而我万万没想到的是他那个Vulkan渲染器在知难而退后又蜕变成了"C++写的OpenGL4.5渲染器",然后又把我肛了一次!被一个人肛两次这事能忍吗!

然而当时是考试周,我只能忍下去了 (笑) 考试结束后我开始探究技术可行性(后来证明这几乎是无用的,所有遇到的问题这时都没发现) 并于7月的实习第一天在那间位于商住一体楼里的破房子中建了项目的Git仓库,版本记录显示前三天我写的代码除了Mod主类和Coremod的LoadingPlugin以外没有一行保留到了现在 (手动滑稽) 一方面说明了那个"百分之多少(记不清了)的代码是要在一年内被重构掉"的理论是正确的,另一方面说明了当时我是有多么低估了问题,虽然那次糟糕的实习让我失去了去CJ和Jeb见面(对此ici可以吹一辈子(笑))以及勾搭上养猪场的机会并且错过了魔都THO,但如果说那一个月实习有什么用的话,那就是让我塌下心能用当初徒手肝解析器的劲头从零制作"Yet another shadersmod implementation",不,它不叫"Yasi"或什么的(虽然现在看起来还挺酷!) 也不叫ShaderCraft云云,我将其命名为OpenShader,因为Open这个词对于开源程序员来说就如同猫薄荷对猫一样充满魅力,显然这是开源的,不过我将它暂时托管到了私有仓库中,因为当初我也实在不敢确定它可以完成,毕竟我之前失败过的太多了,事实上,直到11月初时它甚至还没法正常运行,而我最初的计划是10月初给出一个Demo...当初我写光影包教程时也曾"计划"在10月初完稿,不过现在看来这次我似乎不必拖到次年2月了,然而Mod维护是一件长期的工作,不是吗?主要的技术突破都是在11月中完成的,现在它已经实现了:

  • 高度自定义的渲染管线,可自定义每一帧(Frame)渲染时采用的Pass,以及每一Pass包含哪些绘制阶段(Stage)
  • 着色器加载系统,包含一个简单的Includer实现(无需那个ARB扩展).
  • 可自定义的帧缓冲和帧缓冲的挂件(颜色、深度、模板),包括挂件的尺寸和格式.
  • 顶点着色器的顶点属性(Attribute)注入.
  • 一致变量(Uniform)注入.
  • 优化的GlStateManager,尽可能地减少OpenGL调用.
  • 特性(Feature)系统,用于开启、关闭或改变一些MC的功能与属性,比如设置太阳偏斜(光影Mod的sunAngle)
  • 使用VAO渲染区块 (WOW!) 理论上讲90%+的显卡都支持ARB_vertex_array_object和APPLE_vertex_array_object中的一个,如果有哪个辣鸡卡两个都不支持,那它也不见得跑得动着色器.
  • 支持Mod式和外部文件式的光影包(其实只实现了前者)

当然,它还有一个不短的TODO List,由于没有写TODO List的习惯(??)这里先随手写上一些能想到的:

  • 纹理系统,比如光影Mod的载入法线和高光纹理,以及载入外部纹理文件,可以搞基于LUT的颜色校正啦.
  • 用户界面.
  • 外部文件式的光影包的解析.
  • 资源管理...
  • 条件允许时使用UBO更新一致变量.
  • 世界上有两群人需要人间会社程序员的人间关怀:乌干达的可怜儿童,和苹果机用户.
  • 还有一些疯狂的念头,不过都是要在前面这些完成的前提下才有...
  • 大量的,关于紫sama蓝sama幽幽sama觉sama恋sama秦心酱和玛艾露贝莉x莲子的福利

想说的暂时是这么多,如果成了的话喜大普奔,再一次弃坑了的话那就又是一次喜闻乐见的自挂城墙,我先睡觉(jue)去了...这里贴一个Mod式光影包的光影包初始化代码和渲染管线构建代码的一部分 (群众:有毛用啊!) 可以大概了解一下它的API风格,毕竟将来有了外部配置文件式的光影包后,基本上也会跟它差不多:

53057998_p0

不好意思,贴错了...



20161203071732 20161203065401

这个才对 √

阅读全文 [...]

实习结束,与对无人深空的黑枪

前几天实习结束了,开始的工作居然是做盗版书...(OCR把扫描版的字扣出来,然后手动纠错并录成Latex格式) 最后一周老板找我去谈♂话,说他去年培训的基本不会编程的本科生(??大叔你招的真的是本科生吗)出来可以月薪上万,劝我留下来继续跟他做学(jiao)♂习(yi),淦,你还想再让我做6个月盗版书?大叔见我一脸冷漠,还真让我先做一周PY交易再来考虑 - 他翻出了个以前的"实习生"做的产品,一个拿Python写的Wifi嗅探器,唔不过不是演示给我看,而是要我去调通了...它现在居然还运行不了,老板你的实习生这么忽悠你真的没问题吗...我看了下附带的文档,居然是写给评委求好评的,看来不是毕设就是什么竞赛的参赛作品,带着敬畏的心情我按照文档上的指示装好了依赖库,顺便纠正了源程序里几个硬编码的问题,看来他们是真没打算让这程序在除开发机以外的任何地方运行,然后启动了程序,等了半分钟没有任何响应后,正当我想问候Konqueror开发者们的家人时终于弹出了个VB风格的窗口,看上去还有模有样,然而我点了几个按钮却发现没有任何反应,就连主界面上的热点参数也是驴唇不对马嘴.我查了一下源码中的其他部分,结果感觉自己的智商收到了致命的打击...整个程序唯一有实际功能的部分只有启动系统时的热点嗅探,其他的部分只有个界面,包括主界面的那些参数都是事先填上去的...而且他们连子窗口的打开都没有做,只用PyQT画了个界面,看来是打算糊弄过文档中的截图部分就了事了,我把这个令人尴尬症发作的消息汇报给老板后老板仍不甘心,在联系了一通当事人后又找我说他们抗议说明明还制作了一个显示热点信息的功能 - 哦我知道,就是那个内容是事先填好的那东西?我又重新分析了一遍源码,发现有一段从未被调用的代码倒还真是跟将Wifi信息显示到主界面有关的代码,哎哎看来刚才冤枉人家了,不过为什么会从来没调用呢?在源码里搜了一夏发现调用被注释掉了,取消掉注释后程序再一运行,duang,挂掉了,原来那段代码是没写完的,就两个功能还有一个没写完,你们当时deadline可踩得够紧啊.当我把第二个噩耗汇报过去时他们已经把(前)老板拉黑了,可喜可贺的结局啊.老板也没再找我什么事,最后几天在班上干干私活肝肝舰(?)也就过去了,要说实习收获了什么,一个是学了Py交易--哦不,是学了Python和Latex,第二个是染上了舰瘾(!),第三个是干了些私活,就这三点微小的工作,谢谢.另外那大叔还想再留我干200天白工...谢谢您嘞,您还是专心去折磨下一波实习生去吧...

另外这几天无人深空终于发售了,这一个月无人深空的负面消息几乎接连不断,在我印象中似乎是在偷跑视频曝出之后才有的一波波的黑枪,排除故意抹黑和墙倒众人推的跟风黑以外,在发售后无人深空的表现确实是有些对不起当年的宣传,于是发售当天我就写了篇差评,顺便一提我看官方的Supoort提到游戏需要支持OpenGL4.5的显卡并且明确声明不支持I卡(什么东西需要OpenGL4.5并且永远与I卡无缘?对了,DSA) 于是我想看看一个用到了OpenGL包括DSA在内的全部先进特性的3A级游戏渲染是怎么写的,便挂上了调试器,然后...然后...我看到了这些,我就发个图,懂的秒转(开玩笑) 别忘了这不是OpenGL2.1时代的游戏,这是一个写明了要求OpenGL4.5(不是客服吹逼,着色器脚本中的#version可是写着要求450的(笑)) 把I卡全家直接打死在门外,写着AMD与狗不得入内的3A级游戏.

nmsr
Hello Games你他娘的找不出个会算线性代数的程序员就算了,用第三方的数学库也行啊,你TM glGetFloatv+glUniformMatrix4fv是个毛意思?是不是U3D出来后市场上连个会写引擎的程序员的招不到了? (U3D:妈的日常招黑)

另外附上我在Steam评测上的黑枪 🙂



开始我一直不明白为什么按E才能进入游戏.
后来当一架太空艇映入我的眼帘时,我才明白:
按E,方可赛艇!
-------------禁忌的分割线-------------
当初第一次看到无人深空的宣传片感觉内心受到了深深的震撼,这不正是我一直期盼的一款游戏吗?集沙盒游戏、过程生成、太空探险等大成者于一体的神作,于是我一直在关注这个游戏,只可惜官方放出的消息实在太少,很长一段时间官网唯一的内容只有封面上那个黑色八面体,但是每一部宣传片或宣传图都吊足了观众的胃口,从无人深空出现的那一天起,无限星辰一直在跳票,星际公民一直在揽钱,精英危险一直在放星球登陆的卫星,好像所有跟太空和星球沾边的游戏,都被无人深空的影子给盖上了.因此当它刚刚登陆Steam时我就将它加到了愿望单中,今年3月刚刚开放预订时我就砍了手.原定6月发售的游戏跳票到了8月,没有关系,我们都等了两年了,还在乎这两个月?
时间到了12号的晚上,小伙伴们盼星星盼月亮地等着0点游戏解锁,群里有人吐槽"这一刻我们都成了麦克雷",随着桌面上的时钟跳到00:00,我低吟一声"午时已到",重启了Steam,然而依然没有下载选项,跳到商店页一看,"将在大约less than one hour后解锁"?难道这游戏的13号解锁指的是UTC+7的13号?算了反正已经等了几年了,不在乎这一个小时.我看了一会Metacritic上主机玩家们对无人深空的评价,又刷了会知乎上对游戏的黑枪,1点很快就到了,我随手挂上4发大建,4个1:25:00,靠看来今天的运气现在就用光了,我重开了Steam,这一次终于有下载了.
我忘了游戏下载也需要时间这个问题,以现在3A级游戏的容量,几十个G的东西起码要下个一两天,这意味着这段时间我除了对群里那些百兆光纤的土豪羡慕嫉妒恨之外什么都做不了,在郁闷中我点开了下载,Steam告诉我需要下载2600MB的东西.
等等,2.6G?
我仔细数了一遍数字和单位,确定不是26G或2600G什么的东西.这游戏确实只有2.6G,你看隔壁塞欧弟和太太掉下来几十G的东西都只局限于地球或某个鸟不拉屎的外行星球上那么巴掌大的一小片空间,就连以沙盒著称的鸡踢诶5也不过是模拟了一个小岛就花了67G,之前听说塞欧弟:WIFI战争终于可以上太空了觉得因吹丝挺,现在看来无人深空用2.6G就能囊括整个宇宙,简直把它们完爆到妈都不认识了!我感动得泪流满面,我不知道什么不到1G的SpaceEngine,更不知道不到300MB的Pioneer,也绝不知道PS4版有6G,在这个靠塞无压缩的高清纹理、1080P CG影片和多国语音来恶意强撑游戏容量的时代,无人深空这个最后的良心为游戏圈带来一股清风,向世人宣告游戏大小不代表深度!8年前的这一天,在游民深空上有个孢子的无脑吹说"从此以后世界上不再需要别的游戏了,因为孢子就能模拟它们全部",正如那句老话"铁打的游民流水的喷子",那人就像千千万万游民喷子一样很快就消失在历史长河但中,但8年后的现在,我将继承他的衣钵,举起无脑吹的大旗,宣布"从此以后世界上不再需要别的游戏了,因为无人深空就吊打他们全部"!
家里水管虽小,但下2.6G的东西已足以,我上B站二周目了一遍秘封活动记录,然后用小号在下面评论区钓了个鱼"这破动画吃枣药丸",游戏已经下好了,上一次我感受到游戏在召唤我还是去年辐射4出的时候,这一次 - 我相信是最后一次,因为今后将不会有游戏再感动我了 - 我又感受到了无人深空的召唤!我来了!
进入游戏,启动果然很快,隔壁Minecraft点开游戏后先得点上支烟才能等到弹出启动界面,而无人深空几乎在我鼠标松开的那一刻就进入游戏了!制作商的Logo过后,是一片耀眼的群星,想必那一个个标签就是星系的名字吧,宇宙虽大,但与人类的野心相比仍太小,如果我不早点探几个星系,想必整个本星系群都要被中国人和挂机软件占满了吧,到时候看着满银河的"dajiba666"、"baoweinanhai"、"lajiyouxi"这样的国人风格星系名或"pan"、"1c0xr8Hy"、"h0yx"、"SSTM"这样Bot自动生成的星球名字,岂不恶心?群星很快就消失了,取而代之的是一个纯白的界面,上面只有一行字"初始化",嗯我明白,游戏总得预处理一些数据,我切出了游戏,群里管理说他卡在了初始化界面二十分钟了,我笑他那是什么破机器,然后我被口球了,我想切回游戏--
但却发现切不回去了.
我能理解这种情况,很多游戏在载入数据时都是没有响应的,因为就是有那么多半路出家的游戏程序员不知道要把资源加载放在另一个线程,或者在主线程中加一个单次资源加载的阈值超过这个阈值就要先去poll一下Windows事件再继续"少女祈祷中".然而此时我已经能听见游戏中BGM的声音了,载入时有BGM的游戏我还没见过几个,所以凭着多年游戏经验,我知道游戏不是卡在加载中,只是纯粹地切出去就不能切回来了,我打开了任务管理器,10分钟,这大概是我玩的Steam游戏中,最快的一个需要叫任务管理器来救场的游戏吧.(Update:我开始以为因为这是主机游戏所以开放商没考虑切出游戏的情况,后来小伙伴告诉我主机也能切出游戏的,啊露怯了← ← 姨夫:"这锅我不背!")
这一次我进入游戏后学乖了,我在"初始化"界面老老实实地等着,生怕它再一言不合死给我看,我打开手机收了刚才的建造,高雄、爱宕、中二病的摩耶和一脸想做的小婊子鸟海,靠真是一家人整整齐齐,我把她们全打包喂提尔比茨了.又收了一波远征后再看屏幕,依然是白的刺眼的屏幕和一行黑字"初始化",以及下面一个写着E的小圆圈,这游戏怎么载入这么久?我不敢切出游戏,只好在手机上Q去群里看看,我的口球还没下来,所以没法发问,只好慢慢翻他们聊天记录,我看到一个人提到进游戏要按E,我就笑了,劳资打了这么多年游戏日系美系欧系俄系甚至东南亚系游戏都玩过,见过按ESC按Z按回车按空格进游戏的,还真没听说过按E进游戏的,带着一脸的不屑,我随手按了一下E键,心里想着这要有用的话我直播口乞--
写着E的小圆圈多了一道黑边.
我哭了,这个"初始化"不是初始化游戏的,而是"初始化"我的智商的,我怎么就没想到那个E是要我按E键?姨夫的形象浮现在我眼前,手柄上的按键都是圆圈,你在屏幕上画个圆圈里面写个△那主机玩家的第一反应就是按下△,这是显而易见的.然而电脑上可不存在按键是圆的的键盘啊!幸亏这游戏不是按O进游戏,不然电脑玩家看着大圆中套一个小圆恐怕就是脑补出咪咪头也想不出是要按O进入游戏,我泪流满面地按住了E,进入了游戏,耳边传来电子音的女声,居然是中文,而且是标准的普通话,看来商店页那个"中文语音"不是制作商手滑写错了,这一点我要给一千个赞!我满怀激动的心情憧憬着我在异星球上的生活,脑中浮现出一幕幕宣传片中的世外桃源,然而映入我眼帘的是一个冰雪的世界,无垠的雪地与淡绿色的天空在远处混为一体,屈指可数的几株植物散落在脚下这片绿地上,HUD上-41°C、1.6Rad、15.4Tox提醒着我,这不是生机盎然的山中秘境,而是一个接近生命边缘的死亡世界,是的,探索、看画那是次要的,生存才是我们这些出生在恶劣地形的非洲玩家需要在意的事情.然而我就要在这个破星球上待一辈子吗?这时我看到了一架破损的太空船,于是便有了本文开头的那一幕.
遇险信标上一个红色的球球告诉我它叫阿特拉斯,它要指引我做完新手任务,我笑了,我见过的阿特拉斯是大西洋下的极乐城中勇敢地反抗莱恩暴政的自由战士,是穿越于寰宇之间充当着霸主帝国的经济主动脉的星际货轮,是站在内天体与氏族之间的第一道与最后一道防线的巨型机甲,而不是哪个面数低到可怜的几何球体,我点"对指引嗤之以鼻",然而什么也没发生,看来游戏的制作者没料到会有像我这样作死的,没制作这个对话分支,我决定虚心接受它的指导,点了"接受阿特拉斯的指引",然而却依然什么也没发生,WTF!?抱着试一试的态度,我长按鼠标,结果光标周围出现一个圆圈型的进度条,卧槽我第一次见到有哪个游戏是要长按鼠标来选择选项的!我TM这不是触屏啊!阿特拉斯在"接受了我的效忠"后就消失了,沃日!说好的新手任务呢!?
好在右下边有游戏提示,提醒着我要先修好飞船离开这个鬼地方,说起来我还没有给这个星球取名字呢,我调出了主菜单,选择为星系改名并上传,我做了一件我期盼了几个月的事,打开输入法,输入"huanxiangxiang"
然而什么都没有发生,这个游戏虽然支持中文,但并不支持输入法,于是我只好退而求其次,敲入了"Gensokyo",这也好,让老外也能看得懂,这个冰雪交加的死亡世界与大多数人眼中的幻想乡不太一样,不过倒也挺符合东方无限螺旋中3013年的那个永远处于核冬天的幻想乡.而至于星球的名字,我不知道幻想乡中那些地名的罗马音是什么,也不敢切出游戏去查;又觉得"Yuyuko my lover"有些太俗,于是我给它起了个很科幻的名字,"Gensokyo Prime",嗯,幻想乡主星,很好,肥肠科幻.
想修船没有资源怎么能行,我掏出了手中的多用途工具枪,抚摸着这个又硬、又粗、头还圆乎乎的东西,我找到了一块石头,HUD告诉我这个石头蕴含着丰富的铁,我假装自己是从2001年穿越来的,不懂它那自带打码的低清材质,将工具枪对准了那个石头,扣下了扳机,一束绿莹莹的光线喷涌而出,虽然这一幕我早已在偷跑视频中看了一遍遍了,但我还是为了配合这不可思议的景象,故意装出了吃惊的表情.从隔壁铁拳史蒂夫用手拍木头拍石头拍黑曜石,到屎大棒用物质操纵枪拆得多少土著家破人亡,修理地球变得原来越简单!老毛说过与天斗与地斗不如与人斗,那是因为他没见过这工具枪,如果他知道修理地球也是一件如此简单有趣的事情的话,估计他当年也就--
突然我的角色虎躯一震,拿着工具枪的那只手像触了电似的伸了回来,难道我被水表爆破了!?并不是,上一次我见到类似的一幕,还是我最后一次玩Halo:CE时在追杀对方的夺旗手,将他打到大概还剩最后一点血时突然像癫痫发作一样捧着冒着蓝焰的电浆步枪双手发颤;是我玩WH40K桌面战棋时一回合有6个勇敢的帝国卫队战士因为机械神教粗制滥造的电浆枪过热炸膛而殉国;是我玩机甲战士雇佣兵时打竞技场在最后一个对手只剩下最后一丝血时PPC一轮齐射没秒掉对方然后自己过热停机,硬生生被对面翻盘打死...没错,这就是科幻游戏中臭名昭著的过热!人类31世纪的智慧结晶,居然在零下41度的环境射一发就过热!?你TM属机甲战士的啊!?(这是BattleTech被黑的最惨的一次)
矿物采完了,该制作修复起落架的装甲了,然而游戏中却没有任何地方提示该如何合成物品,我在群里的口球已经被摘下来了,于是我赶快问了一下这个问题,一个小伙伴告诉我是把鼠标移到空格子上按E,卧槽原来E键如此重要!难怪游戏开头要玩家长按E键才能进入游戏啊.修好了起落架,然后需要去挖一个制作者脸滚键盘滚出来的名字的元素,扫描仪告诉我距离我最近的这种矿物走过去需要4分钟的路程,如果是在风和日丽的世界这一趟短途旅行并没有什么问题,然而我现在是在一个极地世界,防护服一边报告说维生系统只剩下一半的能量,一边报告说即将进入零下70度的极夜,群里管理员哭诉说他出生在了一个零上60多度的星球,我吐槽他可以当这是风之旅人来玩,然后又被口球了,靠,我这已经是冰雪奇缘了好不好.一路蹒跚到了矿区,路上还遇见了一个苹果垃圾桶,心想苹果真TM是土豪公司,到了未来已经可以满宇宙乱扔MacPro了,走过去一看居然是一个远古遗迹,遗迹教给我外星语中的一个词"給",不知道今后见到外星人后叫他们"给"会不会当我是基佬把我打死,等我挖完矿时我的防护服已经开始报警了,25%的能量肯定不够支撑我走回坠落点的,难道我的一周目就要这样结束了吗?我这才发现维生系统可以充能,而能量源可以是任何同位素,我瞅了眼旁边富含钚元素的植物,不禁感叹造物的神奇,也暗自吐槽难怪这个星球有那么高的本底辐射.
凌晨三点,我终于能离开这个终日被积雪覆盖的冰封星球了,飞船腾空而起,终于飞上天了!然而太空船在低空似乎没法随意调整高度,也没法将武器对准地面,看来我所属的文明的轨道轰炸政策是禁止,很好,这很圣母,我依依不舍地绕着坠落点绕了一个圈,望着地上已经几乎看不见的遇险信标,我相信总有一天我还是能再次遇见阿特拉斯,抬起机头,打开加力,脑补出的G力将我紧紧压在椅背上,我的耳边响起了无限螺旋中八云橙在离别时的赠言"愿你所在的世界的幻想乡,能够幸福常在",再见了!冰雪的幻想乡!在激动之余我随手按了一下E键.
飞船急停,极速下坠,在即将亲吻大地时又突然止住下降,缓缓地降落在茫茫的雪地上,舱门打开,将一脸懵逼的我再一次弹出到31世纪幻想乡永恒的极寒当中.
愿各位玩家的出生地,春色常在.
-------------禁忌的边境线-------------
总体来说,这游戏质量属于中等偏上,主要是当初画饼画得太大,卫星放得太高了,14年的采访当中制作人在聊到多人游戏时一脸灿烂的笑容,当时我们以为这是自信,现在我们明白这是骗煞笔时发自内心的欢乐.
那些舔无人深空的人,你们看看商店页上的宣传图,觉得脸被打的疼不?
啊当然,中文语音一定要支持!一定要点赞!

如果你也滋词这篇评测的话欢迎来点(jiao)♂赞(yi) http://steamcommunity.com/id/szszss/recommended/275850 当然如果拍砖点个差我也没法怎样的 ? 阅读全文 [...]

基本更新到1.9.4?

20160707023557
尼玛呀!本来心存侥幸觉得不会蹈覆那个推主的旧辙,结果扔柜子里没管过了三周一看卧槽居(guo)然弯了!而且弯的姿势跟推主的那只一模一样,支架根本就是摆设啊!下次再买波天宫的东西我直播食屌,popstick你妈飞了


咳,话归正题,现在教程的最主要的部分,基础篇的前三篇已经更新到了1.9.4了,如果你在我更新的时候正巧在读第三篇的话,恐怕难免会感觉像一夜间穿越了一样...这次更新也修正了一些之前的疏漏,我曾起过一个念头就是故意写一篇完全是按照错的讲的"教程"用来整蛊,现在发现在1.9时代(准确说已经到1.10时代了)留着一篇1.7时代的教程就已经够误导人了,再想到MCBBS上那篇ModLoader时代的教程...哎,为什么产生了一种自己站在时代发展的对立面的感觉  face5 阅读全文 [...]

挺尸预告?

真正的厨,即使知道是坑也要义无返顾地踩上去!
20160615225420
IMG_20160615_123941
以前早有耳闻这是东方圈中的邪神Saber(虽然我觉得最魔性的还是国内某东方杂志创刊号附赠的永远拼不上的黑白),实际到手后感觉造型不是那么糟糕,然而不得不说这款做工真糙啊,要不是知道这是冷门货不太可能有山寨,还真的会怀疑是祖国版...

上一篇文章是在4月份发的,熟悉我工作风格的都知道我喜欢闷声搞大♂新♂闻,事实上我也确实是在憋文章,然而这一次大新闻还没搞出来,电脑就(又一次)挂掉了(正所谓截稿前硬盘必亡之理,嗯哼?) 等到修好的时候已经到了期末各种deadline压上头的时候,因此一直拖到现在才有时间来填坑.

前几天在E3微软搞了个大新闻,宣布Minecraft会支持Mod...哦草,明明前不久我还在和别人讨论天国的官方API坟头草长得有多高,结果今天我就可以下岗了 ? 不过从目前已知的消息来看,应该是局限于移动版、主机版和用C++写的Win10商店版这几个版本,用Java的PC版不知道会不会有这个功能;Mod的形式大概是类似于脚本插件那样,从PC版越来越向数据驱动方向发展的趋势来看确实有可能(比如1.8到1.9最大的变化之一就是外置的掉落表).其实如果真的想要一个Moddable的高(C)性(P)能(P)的Minecraft的话...我个人认为MineTest远比Win10MC要靠谱.

然后就到了对PC版的黑枪,这一次Mojang出人意料地提早推出了1.10,按照流行的版本始终要比最新版要落后一版的定律(?),应该可以放心大胆地跟进到1.9.4了,前文已经提到1.9多了个外置的掉落表,除此之外还有双持武器、盾、滑翔翼等...这些除了双持武器以外没有什么功能性的更新,据说渲染系统有些新内容,不过对大多数开发者来说还用不上.虽然看着MCBBS Mod版上一堆1.7Mod真心疼,但我还是趁着这几天有时间更新一下教程吧("上学期"说要更新结果妥了一个学期也没弄 233),不然等过一段时间课设和实习堆上来更没时间弄了. 阅读全文 [...]

嗯?软件工程?

由于奇怪的课程要求,在接下来的小半年中每周我都会开一趟车-唔...是发一篇关于软件工程的小短文.靠,我写MCMod教程都没这么勤快过,这就是软院对计院的复仇吗?

大多数高等院校的信息类学科都被分为计算机科学和软件工程两个部分,关于科学与工程的区别,一个常见的解读是"科学是在解决一个旧问题的同时提出两个新问题,而工程是在不引发新问题的前提下解决掉旧问题".显然客户总是希望产品能够准时准点地交付,而非一次又一次地次元突破Deadline.软件工程就是为软件的编写提出一个章法,给世界上最桀骜不驯的一群人套上缰绳,让他们制造出一个可靠的工程,而不是一个充满了各种奇思妙想和奇技淫巧的垃圾堆.

The_Tower_of_Babel
老彼得·勃鲁盖尔的《通天塔》,在《黑客与画家》一书中被用作封面.传说中通天塔的建造由于人类的语言不通而最终以失败收场,软件开发中由于人员矛盾导致的残局也是数不胜数. 阅读全文 [...]

MCMod教程开始恢复更新

MC1.9马上就要发布了,按照"总是差一个版本"的惯例(这是哪的惯例啊),教程准备从1.7更新到1.8了 ? 刚才看了眼第一篇教程,文中介绍的Eclipse居然还是4.3...现在第一篇教程已经更新了,最近那么多人抱怨没法配置开发环境,现在看来一点也不奇怪(捂脸,那篇实在太陈旧了).

想看看当初给MC1.2写ModLoader教程时的原始手稿,结果发现找不到了...这种东西还真能丢啊. 阅读全文 [...]

写在《如何编写Shadersmod光影包》截稿之后

20160217032142

时间是早上6点30分.第一缕阳光透过天际线,将天空重新染回了深蓝色,宣告着一天生活的开始,而在此之前,这个城市第一批工作的人早已忙碌起来,楼下传来电动车轻微的嗡嗡声,如果那位送奶工稍有留意的话,一定会注意到在这个尚未醒来的社区中,总有一栋楼的一扇窗是通宵长明的,当一个人在沉睡的世界中醒来时,难免会对周围为数不多的同样清醒的人产生好奇,那间房间的住户在他眼中会是什么样的人?一个沉迷于电子游戏通宵达旦的少年?一个在半睡半醒中着衣准备扎入地下,沿着一条隧道前往城市的另一头上班的青年?还是一个见证了共和国的诞生与成长,在结束了自己几十年如一日的工作后,正在安享另一个十年如一日的生活的老(zhang)者(?)?又或是仅仅不经意地瞥一眼后便调整车头一甩而过,毕竟这个城市太大,而值得留意的人又太少.
对于房间的主人来说也是一样的道理,在被车声分心了眨眼的工夫后,便又重新将注意力集中在眼前的屏幕上,灰色背景的网页中,密密麻麻的象形文字平铺在纯白的框体中,对一个英语国家的人来说,这种文字几乎是不可思议的,难以想象这些远古的黑暗时代的涂鸦能伴随着文明一路成长延续至今,并深深地渗透入它的文化当中,而对信息学家而言,这种表述方式并无任何值得惊讶的地方,在卐字旗已经从国会大厦前降下而铁幕与高墙尚未筑起的时代,香农已经指出了信息的本质,世间万物,但凡实际存在可被度量者,皆可被表示为比特,原本无意义的涂抹被有机地组合后构成了文字,而数以万计意义不明的文字在被精心地排列后,构成了眼前的这一篇文章,在另一处看不见的地方,数以千万计的比特正以电或磁的形式存储在介质中,当它们以合适的形式显示出来时,在屏幕上就是一张张美轮美奂的截图或简洁而巧妙的图示.这些内容加起来不及一亿比特,倘若只是单纯地产生它们,在计算机中只需微秒计的时间,但要将他们排列成有意义的形态,却需要数以月记的时间.在安慰性地扫视了几眼后,鼠标指针停在发布按钮上,已经没有什么可等待的了. 阅读全文 [...]

悲报,硬盘损坏...

2015-05-26 190905

硬盘损坏一直是各种Deadline前工作不能完成或一个如火如荼的项目突然下马的最好理由(同时也是搞毁一家蒸蒸日上的O2O公司的极好方式,咳咳),结果前几天让我遇上了...上周五回家时就发现有时系统会因为硬盘无法读写而死机,因为无法判断是加速用的固态缓存盘的问题还是存放系统分区的机械硬盘的问题,因此就只是简单关掉了加速,当时又是在赶着爆肝做机原作业,于是便抱着侥幸心理希望它还能再多撑几天,结果到这周二我就中头奖了... 阅读全文 [...]

"有些话说出来就舒服多了"

(标题不用太在意,又一发黑枪而已...)
因为昨天把脚崴了,所以今天在家休息一天,感觉这段时间造的孽太多,前几天把一个在图书馆看霓虹动♂作♀片的仁兄曝光了(请叫我正义的朋友),在blog上又搞了十几天的放置play.因此决定趁现在瘸着腿什么都不想干的时候写点啥.
首先是教程还更不更的问题,这个我想说的是,基础篇估计不会更新了...真要更新的话可能是实体部分会再详细一点. 至于TileEntity,冶炼和地图生成这三部分可能不会再有了,等着别人来写吧 23333
Extra篇可能会有个3D部分,此外肯定还会有个关于这三年间我遇到的各种MC问题的Q&A.

顺便再感慨一下,终于有人做到这一步了:

它的作者Arun Gupta自称是畅销书作者,你可以在他的blogO'Reilly的官网找到目录信息,能把这点内容写出200页确实有两下子,反正我是把新旧两个教程连同Extra篇加在一起也凑不出200页.我觉得那本书叫Minecraft modding for dummies或许更合适,事实上作者本人也说他的目标读者是初学编程的未成年人,因此就不要指望书中会有网络编程或Coremod之类的了...

另外,有些东西不一定非要问别人才能知道...我不是很喜欢知乎的原因除了山寨和半实名制外,还因为它扼杀了一些人探究问题的能力,当擅长哗众取宠的人能垄断一个问题的话语权时,一切理性都是苍白无力的.比如关于配置时JAVA_HOME不正确之类的...这些问题大部分我都没法在自己的机器上重现,最后结果还不全是去Google搜索...想知道MC的xx怎么做/怎么用,最简单的办法是:看官方是怎么弄的.Eclipse中的References(查找引用)功能非常强大,点上你想查找引用的类/字段/方法,然后右键-References-Project(其实更多情况下我是直接Ctrl-Shift-G...)就能找它的所有调用,然后看看官方是怎么使用它的.想追踪调用栈的话可以Ctrl+Alt+H,查看类的继承家谱还可以F4,能自己很快完成的事情为何还要去找别人问呢. (顺便一提,如果不知道eclipse怎么解除智能感知的封印的话...去网上搜一下吧.虽然它的智能感知即使解除封印了也确实不如VS和IDEA,甚至在高版本中有越来越蠢的迹象,Luna版的智能感知一度想让我砸键盘...就看4个月后的Mars版怎么样了) 阅读全文 [...]

众矢之的

东方厨:囧主席,你觉得ZUN的月之都中国风设定好不好啊?

囧仙:好啊!

东方厨:妹老板也支持吗?

囧仙:当然啦!

东方厨:国内的一位东方厨呢最近发表了一个视频说呢,一些考据的设定有误、角色设定没好好做。你对这个看法有什么回应呢?

囧仙:扯吉拔蛋。

东方厨:是B站的一个UP主说的。

囧仙:你们厨千万要记着,不要“见得风,是得雨”。接到这个消息,你们厨本身也要判断,明白意思吗?假使这些完全无中生有的东西,你再帮他说一遍,你等于..你也有责任吧。

东方厨:现在那么早你们就说增加了你几万字设定的原创人物,会不会给人一种要脱离ZUN的设定的感觉呢?

囧仙:没任何意思,原创也还是按照ZUN的...按照一设,按照考据,去发挥...
刚才你问我啊,我可以回答你一句“爱看看不看滚”,你们也不高兴,那怎么办?我讲的意思不是我不满ZUN的设定。你问我支持不支持,我是支持的,我就明确地告诉你这一点。
你们啊,我感觉你们厨还要学习一个。你们非常熟悉外国厨的这一套理论,你们毕竟还too young.明白我的意思吧?我告诉你们,我是身经百战了,见得多啦!东方的哪一个女孩子我不熟悉?你们要知道,月都的月夜见,那比你们不知要高到哪里去了,我对她了如指掌。所以说厨呀还是要提高自己的知识水平,识得唔识得啊?唉,我也替你们着急啊,真的。你们有一个好,全世界关注什么东西,你们比其他的外国厨还要安静。但是呢一旦有了问题,闹起来呀,都too sha'bility, sometimes zhuang'bility. 懂了没有?

东方厨:囧主席,能不能说一下为什么支持中国风?

囧仙:我很抱歉,我今天是作为一个策划跟你们讲。我不是傻厨,但是我见得太多了。我有这个必要好告诉你们一点创作的经验。
刚才我很想啊,我每次碰到你们,我就讲我以前有一句话叫“考据是二次创作”。我什么话也不说,这是最好的。但是我想我见到你们这样热情啊,一句话不说也不好。所以刚才你一定要,在宣传上将来如果和你们理解上有偏差,你们得吃鳖。我没有说本作要一板一眼,死扣ZUN的设定,没有任何这个意思。但是你一定要问我对中国风支持不支持,我们能不支持?这是ZUN的一设,我们怎么能不支持一设?对不对?

东方厨:但是如果说本作是二设呢?

囧仙:二设也要遵照ZUN的一设啊,对不对?要按照考据的...当然我们的改编也是很重要的。秘封活动记录是东方Project的二次创作,到那时候我们会表态的。明白这意思吧?你们啊,不要想喜欢弄个大新闻,说现在已经做成幻想乡大战秦时明月了,就把我批判一番,你们啊, not even wrong!I am angry!你们这样子是不行的,我今天是婊了你们一下。

这算是我给@囧仙打了一发小小的黑枪,不了解最近国内东方Project形势(至少是不看贴吧或囧仙微博)的人看了后都会一头雾水.长话短说的话... 阅读全文 [...]