Rusty Moyher是一个独立游戏开发者和独立电影制片人,他喜欢开发像素风的趣味游戏,他之前的游戏《Train Bandit》、《Astro Duel》、《Bloop》都曾得到了不少的好评,在圈子里也小有名气。
但2013年,Rusty Moyher被诊断患有重复性劳损,这彻底改变了他的职业生涯。
重复性劳损(Repetitive strain injury,RSI),是一种由于长期重复用力或重复性动作,而造成的累积性肌肉和神经创伤疾病。如不及时治疗,可能会对双手造成无可挽救的损害,双手将不再灵活,同时腰、颈、手臂和双手都会有酸胀、疼痛感。
重复性劳损往往由长时间重复性工作和坐姿不端正引起,对于长时间坐在电脑前打字的人算是一种职业病(写到这里我默默把双手拿开了键盘,坐直了身子)。
当时Rusty的病症已经很重,医生警告他不能再长时间使用键盘和鼠标编写程序。
Rusty 的游戏多数是他自己完成的,不能使用键盘、鼠标,几乎意味着他不能再从事游戏开发工作。
Rusty不想放弃自己的梦想,选择忍痛工作,但身上的疼痛逐渐加剧,直到让Rusty无法忍受。但另一边,他的工作却正来到一个关键的节点。
当时,他和另外两个朋友众筹了一个6个月开发6款复古游戏的项目,名叫《Retro Game Crunch》。该项目得到了不少玩家的支持,并成功达成了众筹目标。但问题是,Rusty的病让他们没法达成自己定下的目标。
在做到第四个游戏时,Rusty在Kickstar发布了公开信,表示自己因病不得不暂停项目,用一个月的时间缓解疼痛。
Rusty尝试调整自己的办公环境,用更符合人体工程学的鼠标、键盘、桌椅,但身上的疼痛并没得到明显的缓解,只要他把手放在键盘上一段时间,疼痛就会随之而来。
这期间,Rusty身上的炎症已扩展至他的手部、腰部和前臂。他经常需要固醇类药物和消炎药来缓解疼痛,每周还要接受两次物理治疗。
由于《Retro Game Crunch》是一个限时项目,Rusty不想拖累游戏的进度,只能暂时退出项目。对于这个决定,支持者都非常的理解,他们纷纷送上祝福,表示健康比什么都重要。
但Rusty这时在思考今后的道路,他不想结束作为游戏开发者的生涯,最终决定和病魔斗争到底。他翻找了很多与RSI病症和编程相关的网站,希望能够找出一些有帮助的东西。最终Rusty找到了一种不用动手的编程方法——语音编程。
Rusty先是找到了一段视频,一个同样患有RSI的开发者Travis Rudd讲述他是如何利用语音编码的。Rudd利用了一款叫做 Dragon Naturally Speaking的语音识别软件,经过改造后,他实现了用语音控制电脑在Python语言环境下编程。
虽然Rudd证实了语音编程是可行的,但完全用语音编程去做一款游戏还从没人尝试过。当时有很多人认为Dragon Naturally Speaking有很多局限性,完全用它来编程是不现实的做法。
网上的多数人都劝他不要尝试,说那是不可能的。
Rusty多次向Rudd发邮件询问语言编程的问题,得知Rudd是通过Natlink 和Dragonfly语言库对程序进行改造,实现的语音编程。但Rudd的系统是针对Python语言,而Rusty希望使用C++语言,如果Rusty想用语音来开发游戏,他得自己重新构建一套系统。
Rusty认同了Rudd的方案,开始着手打造用于开发游戏的语音编程系统。虽然多数软件和语言库都是从网上下载的,但整个编程体系其实属于Rusty自己的。
为了让电脑能够准确的识别语音,变成指令最好是简短易分辨的词或短语,因此Rusty需要编出一套自己习惯的词汇表,然后把词汇表对应到各种编程操作上,如“Slap”是回车,“lack”是“”,等等。
从某种意义上,Rusty创造了一种新的编程语言。
就像一门语言一样,学会单词和真正用语言交流还有很大距离,在思考游戏代码的同时,Rusty还要说出能让电脑输入相应代码的口令,这大大增加了编程的难度。如果想通过语音完成快速、连贯、准确的编程,Rusty需要花大量的时间训练自己熟悉这一整套系统。记住每个短语代表的意思,直到不假思索就可以说出需要的口令,同时调整让自己的发音能够准确的被电脑识别。这个适应的过程持续了很长时间。
但游戏开发不仅仅是编写代码,还有很多细致的操作需要用到鼠标,这已经超出了却大多数人的需求,因此在网上几乎找不到可参照的例子。Rusty购买了一个特殊人群设计的头部动作感应器,通过戴上特制的帽子,感应器可以检测头部微小的动作,并转化为鼠标的移动,实现用头部控制鼠标的功能。
利用这个类似于头盔瞄准具一样的鼠标控制系统,Rusty不仅可以操作各种软件,甚至可以绘制游戏中用的像素图。当然这样比用鼠标要复杂得多,因此Rusty会尽量在设计游戏时避免由于复杂的内容。
就这样,在几乎全程不用手操作的情况下,Rusty做出了一款游戏叫做《Dig Dog》,游戏的设计、编程、美术都是由他一个人完成的。
《Dig Dog》是一款简单,却趣味十足的游戏,和他以往的游戏很像。玩家操作一只狗会挖地的狗,击败敌人,寻找骨头,突破一个个关卡。
Rusty对《Dig Dog》的期望很简单,只要能顺利的完成这款游戏的开发就算成功了。因为对于Rusty来说,《Dig Dog》更多是一个实验型作品,他想尝试一下全程不用鼠标键盘开发一款游戏十分真的可行。另外,他也能通过这款游戏让自己慢慢熟悉语音编程。
《Dig Dog》最近刚刚发售,玩过它的人都表示这是一款有趣、好玩的轻量级游戏,而经过这款游戏的锻炼,现在Rusty用语音编程的速度已经接近他之前的正常编程速度了。接下来他将用语音编程开发更多的游戏,并继续改进这套系统,加入更灵敏的眼部追踪技术和更高级的软件,尝试让无手编程的速度超过手动编程速度。
但这还不够,Rusty想到之前自己患上RSI又苦苦找不到解决方法的无助,认为有不少人可能会有同样的遭遇,他在努力把自己的经验和编程系统分享给更多的人,帮助那些身体不便,但不想放弃游戏梦想的人。
在生活中,Rusty从来都是面带笑容的,你完全看不出他经历着病痛的折磨。对于他来说,虽然病症依然会不时带来疼苦,虽然为学习语音编程付出了很多的艰辛,但只要能够继续制作自己喜爱的游戏,继续给人们带去快乐,自己就仍是幸福的。
部分资料来源于arstechnica
领取专属 10元无门槛券
私享最新 技术干货