2019中国(北京)国际游乐设施设备博览会游记

中国国际展览中心顺义新馆,周围很空旷

音乐游戏

很久没有正经关注过街机行业的发展了。今年以来,大部分国内街机音游玩家关注的一些新的街机被逐步的引入国内。如去年下半年引入的 KONAMI 的 Dancerush Stardom (国内称为 舞律炫步),和 Sound Voltex 初代(国内称为 音律炫动)。这两个海外非常流行的音乐机台都是由 广东世宇科技股份有限公司 代理的。另一方面,华立科技也不甘落后,拿下了 taito 的 Groove Coaster 4 的代理。

这并不意味着太多的国内街机音乐游戏的改善。以 Sound Voltex (SDVX)来说,国内引进的版本是初代,而在这之前国内玩家或盗版商群体的自制版本已经到了第四代甚至最新代。另一方面,微博谣传华立也顺路代理了 maimai DX (下一代 maimai)的消息也让很多人误会至今。

谣传。

新机台的引进当然是值得开心的事情,但这些并不能彻底解决海外也在面临的压榨游戏厅生存空间的问题:机台涨价,但单次游戏价格非常有限。在这个问题上,国内的代理商和街机厂商也做了一些新的尝试。

以 DanceRush Stardom (DRS) 为例,中国版的机台是内置 4G 数据连接的,机台本身的网络并不需要游戏厅的网络支持,网络的服务费用也是完全从玩家侧收取。

具体的方案在这篇文章:
https://blog.samnya.cn/dance-rush-stardom-in-china/

中有所描述,简单来说就是在玩家投币游戏(付费给游戏厅支付机台租赁费用)之外,结合每次额外付费和包月额外付费(直接在游戏厅范围之外,比如微信平台)的模式,来为玩家提供额外的游戏体验。而在港澳台和国外的大部分地区,游戏机的投币收入是游戏厅和厂家共同分享的,所以海外玩家在正常支付机台租赁费用后,即可直接体验这些额外的体验内容。

国内的这种模式综合考虑了国内网络环境复杂但 4G 覆盖相对较好,以及游戏厅不接受分成模式这两个问题,我觉得是一种很棒的创新。但是也要注意到,高昂的价格也让不少玩家特别是出勤频率没有那么高的中、轻度玩家感到非常不适。

除了内忧,其实还有外患。比如在 DRS 稼动但没有进入国内的大半年里(2018.3 ~ 2018.11),国内一些善于模仿海外成熟产品的厂家也开发了一些游戏方法几乎一致的仿制品,价格也更低廉一些。比如这次在展会上看到的某厂家(毕竟不光彩就不点名了)的荧光舞动。

某英文名S开头的番禺厂家的 DRS 仿制品

这个机台我也有进行体验,判定和延迟都有较大问题,而且动画也不太连贯。但是在硬件上,都采用了近似外观和红外判定框体+Intel Realsense识别模块+LED地板这样的配置。硬件上的缺陷我们可以靠花钱买到,但真正做出一个好玩的“游戏”,只能说国内厂家真的要考虑自己的战略了。

说真的,在这种大型展会上可以同时看到仿品和本家,两家相距不过几个摊位,真是特别的让人觉得讽刺。

其实中国厂商仿制日本街机也不是没有先例,在这里也想请番禺这家厂商看一下, IGS 的 Dance Base 是怎样对 konami 已经停产的 Dance Evolution Arcade 进行思考和再创作的。

掌握了方法论,才是制胜的关键。

体感游戏

街机(Arcade)当然不止包括大型电玩。很多娱乐场景,比如公园或游乐场,里面的大型器械,其实也算作街机的一部分。在这次展会上我也看到了很多体感类型的游戏,比如在小时候公园里见到的可以模仿你说话或者动作的设备的升级版。

这是一款由哈工文旅开发的“部落酋长”机器人。通过腹部嵌入的微软 Kinect 2.0摄像头,可以识别出你做的动作,并给出具体的反应。

微软已经官方宣布停止对 Kinect 进行支持接近两年的时间了( The Kinect sensor and Kinect Adapter ceased manufacturing in November 2017. Microsoft no longer carries inventory of the Kinect Adapter. Customers can check other retail stores for adapter availability. An offer for people with a Kinect sensor upgrading from Xbox One ended in March 2017.
),但依然有大批的设备使用 Kinect 来进行开发。这使得后续的维护和升级都会产生很大的麻烦。但如果这些厂商只是抱着干一票就走的目的来做这些的话,倒也不是不能理解为什么他们这么大批量的使用这种停产设备了。

VR游戏也算是体感的一种。让我觉得有点意思的是这个 VR 赛车。

刨除掉硬蹭热点的港珠澳大桥,这个设计还是很有意思的:玩家坐在一块荧幕前操作方向盘,看上去和普通的赛车游戏无异,但却可以通过方向盘控制前面沙盘下面的车辆进行实际赛车游戏。这种沉浸感和旁人的观赏感觉自然是比软件绘制出来的比赛场景更好。稍微查阅了一下资料,这套设备的底层是成熟的图传方案,总体来说给人的感受还是很新奇,很好玩的。

Amimon Connex Prosight HD 淘宝有售

而另外的一些 VR 街机就显得没那么厚道了。比如我在很多家前都见到的 Beat Saber Arcade。

其实 Beat Saber 这个 Steam 上的 VR 游戏根本没有街机版。国内的不少厂家用几个音响包裹上一块屏幕,然后加个投币器和 Steam 的简易包装,外面再不加保护地嵌入 HTC Vive 套件,就组成了一个售价高达几万元的“VR 街机”。这种街机其实完全不符合 Arcade 的定义。其中最重要的一点就是 Vive 作为一个家用设备,它的线材强度完全不能达到商用的标准,意味着就需要一个服务员在旁边时刻看守。

失去了无人值守的街机,会让成本进一步扩大。想了一下不光是中国,去年在日本看到的 VR Zone 也是有人值守的,到了晚上这样的休息时间,整个区域就只能歇业。这对于依靠长时间营业扩大人群覆盖进而提高收入的街机行业来说,是很可怕的事情,因为它带来了大量的设备空置时间。

灯光展

除去器械,NEC 也带来了他们的灯光展设备。恰逢故宫灯光秀过去没多久,之前微博上就因为故宫的灯光秀过于浮夸,没有内涵引起了巨大的讨论。 NEC 作为老牌的投影设备厂家,也带来了他们的灯光秀解决方案。

但我觉得,技术上暂时不足可以找买办,精神上不足的问题,可能需要进一步思考一下了。

总结

其实还是有一些细节能体现出北京并不是适合街机的地方的:比如华立科技的展位就几乎没有带什么机器来,又比如大部分的没有提到的摊贩甚至只是来卖掉自己库存机器的。但总体来说,还是有不少有意思的产品出现在了展会上。说心里话,我肯定是希望街机这个行业能越来越好。纵使大势所趋行业式微,我也希望两点和行业融合,能让这个行业走的更远更好。

太鼓达人(旧框体)电源详图

前文详情:https://woodu.me/waiwangkandaodetaigu-system256-neibudianlubantu/

时隔接近两年,我也算是终于把很久之前看的“ System256 只需要一个 ATX 电源即可启动”这句话给研究了一下。

这篇文章主要是展开介绍了一下太鼓达人(旧框体,以 11 亚洲版为例)的电源供应模块,包含详情图和说明书。

首先是详情图,从上一篇文章可以看到,太鼓旧框体的 System 256 主机下面是 JVS IO 和电源供应板,电源供应板有两枚。这两枚电路板一枚负责 +5V 供电,另一路负责 +12V 供电。

有一点不吐不快的是,我之前因为思维惯性,在电路板的 PCB 上找了很久的型号,但是今晚翻到说明书发现它的铭牌是在电容上。真是令人感到很尴尬。

但这个电源转换版真的是日本非常常见的型号,由 TDK-Lambda 提供。具体来说的话,是之前的 DENSEI-LAMBDA 制作的。

这个系列的电源板,输入电压是100v,所以中国版的太鼓达人也是需要内置 220v~ 转 110v~ 的变压器的。而型号命名规则,是 VS{功率}B-{输出电压},具体的定义和系列是下面的图,点击这里可以下载源 PDF文档(日本网络可能需要科学上网)

话不多说,上图吧。首先第一块是 +12V 输出板,型号是 VS75B-12 。

然后第二块是 +5V 输出板,型号是 VS50B-5 。

有点糊了……太晚了就这样吧)

以及最后,我尝试废物利用改造了 蜗牛星际 拆下来的 120w 电源(毕竟50w+75w=125w),来当作比较简单的256启动电源。

放一个 14 的启动视频好啦。大家晚安。

二〇一九年三月

发现已经三个月没有更新博客了。过去的这三个月发生了好多事情,让我意识到能够一直保持愤怒和好奇心是非常困难的事情。不知道是年龄大了还是事情真的太多,“精力有限”的感觉真的是一直在围绕着我。这种状态让我感到很不舒服,我需要尽快的调整一下自己了。

从15年误打误撞开始做 maimai 的魔改以来已经过去了很久,久到我甚至都很久没有放精力在这上面了。但是还是稍微做了些事情在上面。最近可以拿的出来的是我开始出售主机的替代硬盘。这也算是唯一的相对比较合法的东西。

SSD for Ringseries.点击这里可以去购买

而对于我个人来说,一月年前很忙,二月过年回来就搬家,三月份一抬头也已经过去了一大半儿了。人是越来越忙,但是碌碌无为的感觉却又越来越明晰。因为合租的家伙买了辆车,我家也基本达到了人均一辆车的水平。而我最近已经开始选择摩托车通勤了。如果算上摩托车的话人均大于一辆车,也可以说是北京高端通勤人群了。

我的通勤车,铃木 GSX250r

三月是我司的晋升季,虽然天天在完成日常工作之外还要去准备各种材料,但也不是完全埋在工作里面的。比如这个:https://post.smzdm.com/p/akmrxplk/ ,是我国一些伟大骗子制造的电子垃圾。虽说是电子垃圾,但是只要足够便宜,那就可以买回来玩一下。是的,我也跟风买了一台。昨晚拆了一下,把不能用的部分拆下来装了个台式机,准备找个机会处理掉,机箱打算上一套 itx 来跑 nas 。垃圾还没收全,那就先放几张图作为预告吧。

我收的这台成色相当不错,主板甚至一点灰尘都没有。已经跟其他的淘汰垃圾装好了。

嗯,希望讲这篇的文章不会拖太久~

新年快乐

首先肯定是跟风,平成年还有三个小时多一点就要过去了。不过当然更重要的还是,2019,新年好。

大家都是怎么过新年的呢?我的朋友圈里面有人在 C95 现场,有的人在家宅着看红白歌会,也有人出门去机厅出勤开开心心打着自己喜欢的机。而我,摸回家带了一大堆东西,现在窝在小学就坐着的老板台上写着这篇文章。

哈,打算明天摸上家里的风霜回帝都啦。

小时候对新年,特别是对游戏里的新年的印象,大部分是来自于牧场物语矿石镇的。新年的时候在电视里跟女神猜拳,然后风尘仆仆地去跟镇上的姑娘们还有其他村民聊天。现在想想真是理想中的生活了。但是人大了不能只有游戏,还是得努力的向前奔。

至于中二时候的那些想法?嗯,还记着呢。

翻了一下博客的草稿,有一篇在年初的时候写就的草稿。 2017 年真的是很丧,有一些不太成功的尝试,也有些不太顺利的工作。而印象中的今年刚转过年来的时候,真的是让我感觉要了命了。

娱乐圈 rapper 刚被封杀,然后政治上也有些让人觉得很难接受的调整。说着用爱发电的哔哩哔哩也上市了。

一年过去,“很糟糕”的感觉几乎变成常态了。工作消耗了绝大部分精力之后,剩下不多的时间里的大部分也被碎片化阅读给占用了。碎片化的阅读(微博、微信)给我带来了绝大部分新的知识和资讯,同时也让业余时间规划变得非常的不好。

但是,时代变化了,人总也要跟着变化。大狗老师从纸媒转到新媒体写作后,在机核上也连续发表了多篇文章。这里面我也试着讲了我的故事,谢谢大狗老师,也谢谢提供这些渠道的人。

碎片时间占用了大块,读书结果就非常惨不忍睹了。朋友圈的大佬有人去年阅读了 52 本书,而我,纸书只看过五本,其中有三本是漫画。说到漫画了就稍微介绍一下吧。从大学时候开始入坑的日剧《深夜食堂》,原作漫画也继续买齐了。今年的十一长假把很久没读的 18、19、20 三卷买回来读完了。

剩下的两本书是王小波的《爱你就像爱生命》 和 《传统相声集》 。公司小组内搞了读书分享会,但是一次之后就没能继续了。因为每个人分享自己的内容时间都很久,那天有事先走了,听说最后其他人十一点多才散会。希望明年能多一点时间读读书。

说到读书,我报名了公司的在职研究生项目,估计书更多的会是课本吧,哈哈。

其他的,更多的还是积淀。毕竟刚刚跳槽一年,碰上不好的大环境,真的是让人非常难受。希望明年,嗯,能稍微好一点点吧。

最后,还是要再说一次新年快乐!新的一年,请屏幕前的你多多指教。

喜提机核首页黄金位置

大狗老师的文章全部发出来了,在这里分享给大家。运气不错,(下)上还喜提机核首页黄金广告位一枚。

《太鼓之达人(上)》https://www.gcores.com/articles/103648

《太鼓之达人(中)》https://www.gcores.com/articles/103649

《太鼓之达人(下)》https://www.gcores.com/articles/103650

我是没有想到在大狗老师采访完 NTRPG 之后的下一个选题竟然关注到了街机音游玩家,特别是太鼓达人玩家。所以在大狗老师给我发邮件询问我是否有时间接受采访的时候,我的第一反应是非常惊讶,然后才是狂喜。

街机的东西,我在这个自己的博客上聊过很多。最后得出的结论确实是街机这个行业要完蛋了。街机本质上是付费租赁,这个事情可不是你购买一份游戏副本就可以永久保存的(当然现在很多所谓的在线游戏,你购买了副本也必须要交网络费用才能使用)。当这个行业萎缩到一定程度,或者是绝大部分玩家的兴趣转换之后,特定游戏的命运就不会特别好。

官方不作为(日本自己都在下坡路),代理商不给力,那所谓的“自救”就肯定会被有能力的玩家或是商人拿出来摆到台面上或者台面下来聊。有人拿它当营生,有的人只是拿来填补投入的时间或者金钱成本。每个人都有自己的想法,我们左右不了其他人,请大家就以不会被抓起来为标准吧。

其实跟大狗老师聊的比文章中体现的多得多,刨去到最后时间怂了拜托大狗老师弱化掉的魔改 maimai 部分之外,我们还稍微聊到了一些关于 PTB 和双子的信息。最近 PHP 7.0 都要被官方结束支持了,两个只支持 php5 的论坛应该怎么办才好呢?唉……

但是,只要有人看,就会一直开下去。蜡笔的留言板至今还有当年感情很深的会员来留言,大家的感情是不能被一个或者几个人来决定封印起来的。

看到一直很喜欢的大狗老师用自己很喜欢的笔触写下了自己的故事,这两天真的很不争气地在公司哭了好几次。真的谢谢大狗老师,愿意花时间把普通玩家的故事记录下来。

近况和Natsu.APP

自打 WordPress 升级编辑器为 Gutenberg 之后,我就一直懒着没有写新的文章。也加上最近确实比较忙。

先从最近的开始说吧。海底光缆好像又出事儿了。博客和论坛所在的这台东京服务器闪断的问题一直没有特别好的缓解,感觉明年或多或少肯定还要再折腾一下。

稍远一点,沙特在美帝又一次准备收拾我国的时候干了一件刷新大家下限的事情。无论当事人多不是人,这种玩法是违反所有人的共识的。当然,前提是大家的共识是同一件事。如果有人对这个有异议,那就可以不用聊了。

再稍远一点,大狗老师因为我的《番禺游记》通过邮件联系上了我。聊了很多,感谢大狗老师为我们这些普通的不能再普通的玩家留下了记录。更多的不能再说了,等待更多的新情报吧。

更远一点,是中秋节。潍坊的舞萌maimai 机台坏掉了。具体来说的话是机器里面的两台 LG 液晶显示器坏掉了——背光挂了。潍坊的这台机器是最早的一批精文世嘉机器,屏幕的型号是 LC420EUN 。如果在阅读文章的您也需要维修的话,欢迎您给我发邮件。我会尽我的可能来帮助您。

我只买了灯条,剩下的还是皇家的机修操作的。

再远一点,在公司内部遇到了不少感兴趣的同好,大家约定了在上周末进行了一次聚餐。喜欢大家。

(这个是不可能有图的www)

闲白的最后,是已经咕咕咕掉的8月本来要写的东西。潍坊的太鼓达人14街机坏掉了。

潍坊的 太鼓达人14
潍坊的太鼓达人14机器

这台机器是我用一些资源交换的手段换来的,因为是复制版所以质量就不是很好。委托在潍坊的朋友发了个快递过来。顺便看了一下 SYSTEM256 的复制。

想起来三年前跟老外聊天,老外表示2010年的时候就已经完全解密了 System256 。

买了适宜的编程器和储存芯片,却被 Block 在了自己不会拆装储存芯片。只有这种时候才有点后悔自己没有学相关的专业。

硬盘的复制倒是比较轻松,直接在命令行下用 dd 即可。不过失败的尝试是使用 TF-IDE 和 SATA-IDE 都失败了,看上去很难给 System256 使用新一点的储存设备了。

闲白完了,现在可以聊聊 natsu.app 了。我是个小城孩子,潍坊城不大,但是好在市面比较平和。所以虽然不像从小在农村长大的孩子那样有非常丰富的上山下水的经历,但是赶上了小城开发的我也在各种保留了7、80年代风貌的改造场地获得了自己的乐趣。

山东毕竟还算是北方(虽然近几年我才知道山东是算华东的),所以冬天蛮冷的一般也不怎么出去玩,最多就是在大院里玩玩雪。所以更多有意思的回忆还是夏天。最多最多的印象是一台金凤牌的电扇。从小用到大,好像现在还是可以继续使用的。

找到了类似型号的同牌子电扇说明书,但是我家那个稍微高级一点,可以上下摇摆,框子周围还有一圈彩色的灯。

但是,更多的还是怀念那种无所事事的夏天。不过这张想象中的图跟小时候的真实场景倒是没什么关系就是了。

更多的原因还是因为前段时间 Google 开放 .app 后缀注册,我顺手买到了 natsu.app 。虽然作为一个喜欢水君的家伙应该爱屋及乌地喜欢冬天,但是冬天更多的是带着人情味儿的回忆。夏天则是真的是没心没肺的记忆。于是就拜托 @FeiyaZ 鸭子老师帮我画了一下这张图。

构图是我想的,不过动笔完全是鸭子老师的。稍微拆了一下图层用 svg.js 做了一下动画,也算是某种程度上的纪念了吧。

如果以后开家店,就以这个为基础起名吧。毕竟最早想到的 hanabi (烟花)的名字,总有一种转瞬即逝的短命感,哈哈。

替换 Discuz! 6 的默认验证码

PTB 今年已经是第 11 年了,代码也是 10 年前的代码了。
这次又遇到什么问题了呢?就是我们的验证码机制被攻破了。
而且其实挺遗憾的,因为 PTB 最初的安全设计是严进宽出,即你注册需要有相当繁琐的步骤和漫长的验证期,之后几乎没有什么限制。

然后很尴尬,我们被撞库了。

就是前一分钟我们还在微信群里面谈笑风生一分钟之后刷出来发现对面那个人的 ID 在论坛灌了 1000 多个台湾找小姐这样。

然后我就按照之前双子的思路打开了验证码。

但是很尴尬, Discuz 6 有一个很严重的逻辑漏洞。这其实也不是逻辑漏洞,是当年大家对 ajax 的理解都不到位而已。

按照惯例,我们来读代码。

DISCUZ_ROOT./ajax.php:64


...
} elseif($action == 'checkseccode') {

	if($seclevel) {
		$tmp = $seccode;
	} else {
		$key = $seccodedata['type'] != 3 ? '' : $_DCACHE['settings']['authkey'].date('Ymd');
		list($tmp, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secc'], 'DECODE', $key));
		if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
			showmessage('submit_seccode_invalid');
		}
	}
	seccodeconvert($tmp);
	strtoupper($seccodeverify) != $tmp && showmessage('submit_seccode_invalid');
...

以及

DISCUZ_ROOT./include/global.func.php:888


function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
	if(empty($GLOBALS[$var])) {
		return FALSE;
	} else {
		global $_SERVER, $seclevel, $seccode, $seccodedata, $seccodeverify, $secanswer, $_DCACHE, $_DCOOKIE, $timestamp, $discuz_uid;
		if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && $GLOBALS['formhash'] == formhash() && (empty($_SERVER['HTTP_REFERER']) ||
			preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) {
        		if($seccodecheck) {
        			if(!$seclevel) {
        				$key = $seccodedata['type'] != 3 ? '' : $_DCACHE['settings']['authkey'].date('Ymd');
        				list($seccode, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secc'], 'DECODE', $key));
        				if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
        					showmessage('submit_seccode_invalid');
        				}
        				dsetcookie('secc', '', -86400 * 365);
        			} else {
        				$tmp = substr($seccode, 0, 1);
        			}
        			seccodeconvert($seccode);
        			if(strtoupper($seccodeverify) != $seccode) {
        				showmessage('submit_seccode_invalid');
        			}
				$seclevel && $seccode = random(6, 1) + $tmp * 1000000;
        		}
			if($secqaacheck) {
        			if(!$seclevel) {
        				list($seccode, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secq'], 'DECODE'));
        				if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
        					showmessage('submit_secqaa_invalid');
        				}
        				dsetcookie('secq', '', -86400 * 365);
        			}
        			require_once DISCUZ_ROOT.'./forumdata/cache/cache_secqaa.php';
        			if(md5($secanswer) != $_DCACHE['secqaa'][substr($seccode, 0, 1)]['answer']) {
        			        showmessage('submit_secqaa_invalid');
        			}
				$seclevel && $seccode = random(1, 1) * 1000000 + substr($seccode, -6);
        		}
			return TRUE;
		} else {
			showmessage('submit_invalid');
		}
	}
}

不难看出,其实对于验证码的过期,后台的判断只是基于时间(600秒)和是否是属于这个用户。
这其实是有很大的问题的,因为没有重试次数限制,对于不复杂的非中文验证码,一秒钟发出几千个请求cover掉所有数字和大部分字母组合是很轻松的事情。
因此干脆就把它从代码里面摘掉。

主要修改的是下面几个文件。因为现在就是这么做的,因此具体的细节就不展开说了。

include/javascript/post_editor.js
摘掉里面对原有验证码的前端校验

template/seccheck.htm
摘掉原有验证码的展示代码,同位置增加极验的前端代码

ajax.php
屏蔽掉前端校验接口
global.func.php
common.inc.php
摘掉原有验证码后端校验的内容部分,保留 Cookies 校验部分
增加极验后端校验代码

总结一下,其实 discuz 6 在代码设计上真的是完美无缺的。这么老的代码改起来也没有什么不适感(最起码比在公司里吃的那些 s**t 要好得多太多了)。基本就是搜“submit_seccode_invalid”就可以解决这次的问题。
总之双站都是靠极验老版本去 cover 机器人了,毕竟防御价值没那么高,就不去针对 geetest v3 做适配升级了。
屏蔽掉机器人就已经解决绝大部分问题了。

一次古典互联网服务器迁移记录

严格上说,我们这一代前站长(因为现在事实上没有高活跃度会员),赶上的是 Web2.0 刚刚开始起步的那段时间。
谁能想到两三年前 PHP 已经被划作前端范畴了,而最近这一两年前端技术又这么发达了呢。
然而既然决定了保留这些互联网遗迹,那就得让他们在目前为止最好的工作状态下工作。

2007 年春,口袋根据地站长 nfopo 宣布暂时关站,同期,我们筹划成立口袋社区 Poke The BBS (当时英文名叫 Pokemon The BBS)。那时候开一个网站的成本是非常低的。互联网刚刚跨进 Web2.0 ,人人分享的平台还是每人在计算机上创建自己的网站。 CNNIC 联合国内的域名服务商推出了 1 元甚至 0 元购买 .cn 域名的活动。口袋社区最早是以 poketb.cn 作为主域名的,后来购入了同名的 .com 域名,并沿用至今。
poketb.cn whois
最早的口袋社区是 Discuz! 4.1F ,服务器是现在仍然在僵尸的梦游科技美国合租。彼时还没有智能 DNS 和 CDN 这样的高科技玩意儿,以至于现在 PTB 的代码里面还有这样的历史遗迹。
ptb 分站列表
其实后来 PTB 的命途也比较坎坷。无非就是我们比口袋根据地的站长年纪小了几分,最后大家都没有逃过高考这一关。从梦游科技迁出后, PTB 先后托管在 iFastNet 、 vultr vps 上。因为国内互联网环境日趋复杂,导致总有一些会员无法成功访问网站。这也就是导致论坛会员日趋减少的一个重要原因。
我是大概 2013 年的时候决定重新将网站开放出来的。当时的想法也比较简单,就是无论自己当年多么中二,这段记忆总还是要在的。毕竟还是一个可以向后人吹牛逼的资本:“看,你爹当年就是对这个玩意儿上瘾了” —— by liuyanghejerry
之后在潘达的帮助下我将服务器迁移到了日本的 sakura vps 。樱花当年的速度是真好,服务也比较稳定。
sakura vps
只不过美中不足的是,樱花也是个古典 vps 提供商。它们的账户甚至还需要人工去确认日本本地地址。而 vps 除了稳定之外,在性价比上更是一塌糊涂。前一年我使用单台机器承载了所有流量。这在一台双核 1G 内存的机器上来说真是个大型的挑战。要知道 MySQL + PHP-fastcgi 可是吃内存磁盘的大户。机器常常被拖得十分卡顿。于是在大概一年以前我拜托潘先生另外购买了一台同机房的 sakura 节点用于单独跑 MySQL ,并拿来做 SS 节点。
现在来看这个决策是很正确的,虽然多花了一点钱,但是可以有效承载更大的用户流量。这也为成功托管口袋双子星打下了一个良好的基础。
然后一年前接手了口袋双子星,并为其在口袋社区服务器的 php5.6 环境下运行做了大量的改动。
近几年,互联网,特别是移动互联网进一步普及,使得中国的互联网环境空前复杂。面试、考试中简单的从一台计算机 A 连接到服务器 B 这样理想的情况已经不复存在(虽然看上去还是那样的)。于是在去年晚些时候我又花了一些时间为双子、口袋社区部署了一个用于 CDN 的域名 suicune.cn 并进行了加速。
然而,还是很慢。发现原因是 sakura vps 到大陆的速度变的越来越差,于是就有了这次迁移。
这次迁移出于平衡的考虑(因为数据库节点不涉及到访问中国大陆,因此只要在日本就好),我选择了一台仍然在日本但是速度相对较好的 vps 。经过测试后有中文客服,并且速度还不错的海星云成为了我的首选。
接下来的事情就是测试一下稳定性,以决定是否继续使用了。

============2018.06.04更新。

先说结论吧:总体来说服务的稳定性没有 sakura 好。
毕竟是二道贩子嘛,比不过自建线路的地头蛇的。刚好在敏感时期,刚迁移完就发现有奇怪的问题。这次迁移之后我对 vps 本身的改动是有三个:其一,升级了 linux 内核到 4.3 ,默认开了 bbr ;其二,调整了 php5.6-fpm / php7-fpm 的编译参数,这个测试没有什么影响; 其三,测试几个小流量站点直接 Caddy - PHP ,去掉了中间的 nginx。第三条这个测试后来摘掉了,因为发现维护起来实在是太麻烦了。
总体来说还是维持 外部流量 - Caddy - Nginx - php5.6/7 - 代码 的这个逻辑。按理来说迁移应该是无感的, 因为环境配置和代码位置甚至临时文件位置都是一样的。但是依然出现了奇怪的丢包。
现在在怀疑是特殊时期导致的,等这两天过去之后再确认一下吧。

UGC 和街机音乐游戏

2011 年下半年我升入了大学。在高中被压抑了几年的打太鼓的兴趣被解放出来。
那会儿的互联网已经比较发达了。虽然还是 Web2.0 初期,但是人们已经热衷于把各种线下的情报搬到线上。
比如说,大型游戏机爱好者异地出勤(在外地去当地的游戏机厅)的时候,需要的位置信息。
当时,我们也做了一个用户主动发布记录的游戏厅位置记录网站,叫做“太鼓太鼓”。
基于ThinkPHP 3.0 做的。
啊,ThinkPHP 3.0 已经是 6 年前的事情了吗?

源代码:https://github.com/Woodu/taiko.tk

在同时期,除了贴吧、人人网等公开的信息渠道之外,还有诸如中国太鼓联盟论坛(cntaiko,已关站)等一大批基于已有程序的网站。
刚刚举的这些例子分别是几种不同的 UCG 平台,以“太鼓太鼓”为代表的程序,包括通过 mediawiki 等 wiki 建站程序建立的情报网站,是单纯的信息交换平台,这类网站没有任何社交属性,只是单纯的提供各地游戏机厅分布信息等的储存和展示。而人人网(当时)提供的公共主页之类的更类似于现在的微博金V 号,由管理者人工筛选一些跟主题相关的话题(比如游戏内容、游戏新情报或者单纯的地区交友贴),然后发动成员(会员)进行交流。

至于贴吧、 cntaiko 之类的论坛(公告板)性质的网站,其存在的社交性质是最浓厚的。这类平台是大部分玩家进行游戏外交流的主要途径。当然,除了贴吧之外的其他论坛更多的是以“大神分享——玩家讨论大神分享”为主要内容。直到今天的 BEMANICN 、 sows 等论坛,也是同样的模式,只不过现在的“大神”已经不是一个人,而是一个组织了。

上面所说的这些渠道所存在的核心价值,在于其本身能提供的信息价值能否保证会员持续留存。比如说 wiki ,里面的信息是否及时和准确,如果是作为参与者能否获得满足其需要的回报(论坛积分),再比如 BEMANICN 和 sows 提供的积分和积分所可以换取的服务(网络服务、游戏程序资源)。

并不是说论坛到现在为止就彻底失去了其意义,只是人们讨论非资源相关的吹水活动已经不可逆转地转移到了更方便发言和更难以追踪的即时通讯工具上了。

到了新时期 ( 2012 年之后 ) ,经历过论坛关站潮和贴吧清理之后,很多玩家,特别是以地区为划分的区域性玩家群体已经转为相对比较封闭的 QQ 群等方式进行日常的交流。这种方式让玩家们之间有了明确的界限,玩家之间的阶层划分变得更加明确。此时,玩家主要的交流也从简单的游戏信息交流转变成了以游戏为主题的综合社交。

由此可见,玩家之间,特别是同时期的玩家之间逐渐由公开转变为封闭社交。这带来的结果就是新、旧玩家之间的信息交流进一步割裂。除此之外,因为“熟人效应”,新玩家,特别是水平不够高或者跟老玩家认知不同的玩法的新玩家更容易遭到老玩家的排斥和抵触(舞萌游戏机“拆机”(游玩时比较用力导致机器损耗程度变快的玩法)事件、乐动魔方圈插队吵架,等等),甚至是群起而攻之。这也导致很多玩家“拒绝混圈”。

另一方面,在大型游戏机的老家日本,因为新款的游戏机台已经逐渐网游化,之前很多民间维护的信息已经由官方信息进行了取代。比如世嘉社的 maimai 和 chunithm 在 Aime.net 上都可以很方便地查找到每一台机器的所在地,这也使得最初很多民间维护的网站失去了意义。所以很多地区交流的玩家转为了直接从官方的网站分享自己的游玩记录,这也使得一些玩家间的交流变成了单纯的游戏记录分享。

梳理清楚这条脉络之后,我们也要认识到,每个人对于同一个事物的认知是有先后的。以《太鼓达人》为例,虽然目前大陆通行的太鼓达人街机依然以 10 年前的《太鼓达人 12 亚洲版》为主,依然有新的玩家进入并参与讨论。这本身是街机游戏的性质所致,即游戏本身玩法确定,以总参与人数胜过服务某一批特定玩家。其原因是街机机台本身是摆放在公共空间的,公共主页、群等作为在其之上派生出的交流渠道不可能覆盖每一个游戏机台的玩家。那么在这种情况下,每个在这些交流渠道上产生的内容它们的价值又在哪里呢?

我认为,价值主要体现在两个方面。

第一,游戏玩家确实需要一定程度的游戏外社交。大型游戏街机发展几十年,早于家用机一辈,从出现在公共场所(游戏机厅)的第一天开始,就承载了一定的社交角色。从最早的游戏机房内的社交,转变到至今的网络刷卡,在线对战,不变的核心仍然是其保留的竞技性。竞技性促使玩家投入更多的金钱(游戏币)来精进自己的技术,从而获得其他玩家的对自己的认可。这期间增加的花费也是大型游戏机设计的本意。

当然,这里面不包含给庄家送钱的垃圾赌博机。

第二,用户(游戏玩家)产生的内容可以作为游戏运营的参考。虽然整个日系游戏机已经完全退出中国市场,通过华立等代理商来进行运营,但是我们也可以看到,最初舞萌的官方运营微博——精文世嘉舞萌maimai 官方账号确实在微博上作为一个活跃度很高的存在来让各地玩家感受到游戏官方的运营诚意。即使精文世嘉已经结束运营这么多年,通过海外渠道传播进来的同款游戏的情报,也让 maimai 成为了国内为数不多的活跃且广泛的音乐游戏。

简单整理之后不难发现,一款游戏里,它们的受众是如何反馈自己从游戏处获得的信息,可以决定一款游戏的传播广度与深度。假如中国的大型游戏机市场还有第二春的话,我很期待新入局的人是怎么经营用户生产数据的。