近期游戏开发反思:先养好身体,然后练基本功吧

最近玩了玩大航海时代4,又和朋友谈论了一些游戏开发的心得,感觉近期创作又有点干劲不足,于是顺便又自我反思了下,这篇文章就整理下自己近期的一些想法。

近期我在尝试的是使用Evennia做简单的文字冒险游戏原型,但实际做起来才发现,糖霜Lisp其实不是什么特别好的主意,因为这类Lisp终究还是太受限制了。

前言

最近玩了玩大航海时代4,又和朋友谈论了一些游戏开发的心得,感觉近期创作又有点干劲不足,于是顺便又自我反思了下,这篇文章就整理下自己近期的一些想法。

关于Evennia与面向对象特性

近期我在尝试的是使用Evennia做简单的文字冒险游戏原型,但实际做起来才发现,糖霜Lisp其实不是什么特别好的主意,因为这类Lisp终究还是太受限制了。

Hy本身会受限于Python的特性,很多我在Scheme常用的操作和函数都没法在Hy流畅地正常使用。

而且我觉得Evennia的架构其实并不优雅,准确来说是给用户提供的基本接口太少,想要声明式地定制一个对象的操作也相当繁琐,加上python疯狂赋值的特性,给人感觉是总体写起来就比较地狱。

我个人感觉一切皆对象的操作恰恰并不太适合这类文字游戏,毕竟我在实际做原型的时候创建新的物体需求很大,如果全都繁琐地创建成对象写进去,实在太麻烦了。

此外,evennia的命令式构建脚本逻辑我也用得不舒服,要构建游戏必须要按顺序和命令步骤构建,这种命令式构建最大的问题就是调试成本太高了,每次测试构建命令都要重新构建整个东西,无法获得有效的即时反馈,这样对我造成的心智负担太大了。

谁能想到呢?其实我只是希望写个简单的原型而已,没想到被Evennia弯弯绕绕的功能搞得痛苦不堪。

比起这些,我更喜欢函数式和声明式的风格,将对象的函数写在创建对象的方法里面,这样一来负担本身也低。

还有一点,就是用emacs编辑器写hy的体验也不好,因为我习惯了写Guile时随时C-c C-k编译并运行的工作流,然后写Hy并不能像这样非常流畅地进行快速测试,而且Hy目前唯一的补全插件也因为版本更新的缘故废了,所以导致我使用Hy非常不顺手。

而且evennia写项目的时候也没法即时反馈测试,必须要输入命令重新构建服务器才能看到测试的结果,大概,这种非常不流畅的开发体验本身会对创作游戏的信心造成很大的打击吧。

还有一点,我熟悉了Evennia的架构后,脑海中总是在想如何用Guile实现这玩意,看来我对Guile的执念是相当深呢……

或许以上综合原因,我最终决定放弃Evennia,要测试文字游戏原型或许最简单的办法果然还是做纸面原型吧,哈哈哈哈。

糖霜Lisp流派其实不是好主意

这是试用了Hy之后深切体会到的一点,糖霜Lisp流派说得不好听,实质上只是给原有的编程语言套了一层糖衣罢了,里面的数据结构、类型、语言特性等都会不可避免地受限于原有语言,因此代码风格也难以脱离原有语言的限制,会不可避免地使用特别命令式的写法,久了之后就会变成一种为了省事而完全不考虑代码的陋习,导致可维护性骤降,以及心智成本骤增。

当然,Clojure这种深度修改甚至变更了类型系统的Lisp语言算是这个流派的一个很优雅的例外,虽然也是因为这玩意的编译目标是JVM字节码,所以有很好的兼容性,说不定可以拿来写Minecraft的Mod呢

所以对我而言,果然还是用Guile写游戏更舒服呢,我感觉我已经离不开Guile了,因为这门编程语言实在用得太爽了,爽到我去年到今年一直都在想尽办法克服使用Guile开发游戏的难关,当然,虽然中途也有尝试去学习Common Lisp的小插曲就是了。

大概,Guile/Scheme给我的感觉就是,一头扎进了一个优雅的学术海洋后无法自拔。

用函数式编程语言的眼光看待其它编程语言,只觉得大部分编程语言都受到了某种重力场或既得框架的束缚,以至于无法想象代码可以写成这么简单和精妙的函数组合吧。

在这里我也要推翻之前下的糖霜Lisp最适合开发游戏定论了,因为我现在意识到,实际上游戏开发不管怎样都免不了自己造工具的,毕竟要适配自己的游戏项目,不管用什么引擎都必须从头开始打造一套用得顺手的工具。

这么来看,比起用那些难用的架构一团糟的游戏引擎,还不如用自己用得最顺手的编程语言配足够好用的库来自己搭一个游戏呢,毕竟只要立项足够简单,或许引擎的问题基本可以约等于不是问题。

身体问题 Or 心理问题

我也一直在思考一个问题,就是,我的动机不足的问题,究竟是身体呢?还心理问题呢?

分析了很多次是不是心理问题,感觉是好像是有心理问题。

最近也分析了很多次是不是身体问题,也是好像是有某种身体问题的感觉。

或许游戏开发遇到的问题两者都有吧,斋藤直葵老师在《拒绝无效绘画》一书中也提到过,身体是养料,只有身体养好了,心理才会健康。

印象中记得Wiwi也在自己的blog里提到过类似的话,虽然不记得是哪个Blog了,就是说,如果没有干劲,那就来锻炼吧!

基本功的重要性

我儿时一直都很轻视基本功,因为我总是觉得学校那些整天骂你基础不扎实,又不肯好好教你的老师非常烦,而且老师提供的要求你背诵课文的学习方法,本身也是最低效最死板的,包括学校画室的老师,从来不会教你怎么绘画,全靠你自己去画,或许正是这种环境导致我学习成绩长期不好,即便很喜欢学习,特别喜欢绘画,也锻炼不出什什么特别好的能力。

或许正是因为有这种心理阴影,我学习总是倾向于去走捷径,像是以前初中时期学习的记忆术和思维导图之类的,但是事实证明走这些捷径来学习东西几乎是一点用都起不到。

或许在上学期间,大部分的孩子都是处于一种被奴役,被不断施压的状态吧,这种状态我看见了许多我身边的孩子长大后逐渐变得麻木不仁,说实话越来越心疼的说。

就包括我以前的表妹,小时候还是炯炯有神对各种作品都很感兴趣,现在长大了是长成了没有任何耐心去了解各种作品,只会刷短视频,缺乏思考能力和主见的形象,或许这就是教育的缺失吧。

说了这么多,实际上也只是在说我为什么这么敌视基本功,但近期我也逐渐意识到了,所谓的基本功,指的是基础能力。

就像是Wiwi在看起來不專業这篇文章中所说的专业的行销套路那样,或者像是Eltrac在迷失于图形界面这篇文章中所说的信息技术的基本功那样,或许使用命令行、终端能力才是信息技术的基本功吧。当然,我觉得Wiwi写的这篇带的走的技术更符合我目前所说的主题就是了。

这么想,我似乎只有程序开发基本功似乎还算好的,可能是我接触信息技术很早,而且早年为了玩游戏和更安全的操作系统折腾了很多东西,所以才养成了对Linux系统很强的基本功和执着,到现在甚至是完全可以流畅且熟练地使用命令行、Emacs等编辑器操作了。

说了这么多,个人觉得,学习任何东西,本来就应该是一个逐渐产生兴趣,并逐步自由探索的过程,这途中当然也需要有好的老师教会你基本功,帮助你锻炼学习的信心和基本能力。

但事实是,目前很多当老师的,连自己的情绪都照顾不好,只会不断地给学生施压,更别说帮助学生锻炼信心和养成学习能力了。

我们这边整个国家天天都在卷,追名逐利地卷,学校和老师只看成绩,并且几乎只会教学生固定的答题模板,仿佛只要做对了选择题人生就会好起来,感觉国内的教育质量真的有待提高啊。

最让我感到痛苦的是,或许正是这样的环境,导致我童年时期即便几乎对所有科目都感兴趣:

  • 我能体会文学的精妙,喜欢阅读古诗词和感受意境。

  • 我很喜欢数学解谜般的奥秘,小时候也特别喜欢看3Blue1Brown的频道,从原理上学习数学。

  • 英语和日语包括语言学本身我也很喜欢,以前也曾经参加过英语的翻译组,还尝试过自己造语。

  • 我对天文学有很强的探索欲,小时候还买过天文望远镜尝试观星,可惜课本不教。

  • 绘画也是我小时候最喜欢的兴趣爱好之一,曾经考虑过艺考的方向但最终坚持不下去。

  • 生物学也很感兴趣,喜欢显微镜观察可爱的细胞还有一些微生物之类的。

  • 化学也很感兴趣,背熟过元素周期表,还试过给每个元素根据特性写同人设定。

  • 物理学我很喜欢玩windows上的某个物理模拟软件好像是叫Algedoo。

  • 信息技术更不用说了,这是我唯一能维持到现在依然最喜欢的兴趣爱好兼特长。

但依然大部分兴趣爱好都坚持不下去,最终还是因为无法选择高考专业加上面临的网络社群的社交压力双重作用而陷入双向,自然也放弃了高考,直到脱离了这个学业和曾经不断给自己带来压力的社交媒体的重力场域后才恢复过来,现在我算是已经能对感兴趣的事情乐在其中地持续去做了。

我一个朋友也对我感到可惜,都说是高考限制了我。

虽然我这里只是谈论基本功有多重要,然而不知不觉谈论到了学业问题去了。

实际上现在我是能很清楚认识到基本功的意义了,当然也是多亏了Wiwi在某篇不记得标题的文章中提到过的关于基本功的意义。

实际上练好基本功没那么难,如果你对一个东西很感兴趣的话,只需要不断维持这个兴趣就行了,如果你觉得目前的曲子很难弹奏,那么只需要换成适配你的水平的,更简单的曲子就可以了。

斋藤直葵老师也在《拒绝无效绘画》一书中有提到过,有目的地临摹别人的画可以学到很多东西。

所以我就想到,也许我可以通过复刻游戏的方式来练习基本功,毕竟复刻游戏也算是一种临摹别人游戏玩法的方式,就像是我以前学习写文也是从临摹角色,也就是参考别人的角色创作类似的角色,以及仿写故事开始入手的。

此外我还打算同时兼顾另一种练基本功的方式,也就是用跑团剧本和桌游原型来测试自己的原型,如果说复刻游戏是为了体验完整完成一款游戏的全流程。

那么写跑团剧本和设计桌游原型就是为了同时练习剧本功底和探索比较创新的玩法了,毕竟游戏开发这一块,开发新玩法和开发一个程序原型的隐性成本实在太高了,我投入游戏开发的这五年几乎没什么完成的作品或许也是为这个隐性成本所困,就像是Wiwi之前提到的那个关于曲子很难弹奏就换成适配水平的曲子,这样等级水平提高之后再去挑战高难度曲子会更轻松的比喻一样。

也许对我而言,这两种方式就是最简单,目前也能弹得上手的曲子,哈哈哈哈。