第十九章 克苏鲁神话

夜半鬼入梦 莫道梦魂遥

就这么几个指令能干啥?你别说,我还真有办法能让你亲自见证一下,就这么几个指令,可以让CPU干些什么事。首先,下载这个小游戏。然后开始玩吧。我已经让群友们验证过了,不管有没有学过编程都可以玩几下。而游戏的主体内容,其实就是以一种有趣的方式在写汇编代码。在过关这个游戏之后,你会发现你自己用这几个最简单的指令,让计算机实现了一些简单的功能,诸如:比较两个数字的大小、判断一个数字的正负、让计算机数数、用加法实现了乘法运算、从一组数中找到最小的数……如果你在游戏里过五关斩六将实现了这些功能,那么你就相当于解决了上个世纪计算机科学早期那些先驱们所面对的问题。给自己一个奖励吧,点击文章末尾的“赏”就会看到编程学习大礼包!额,你说你没有通关?没关系,最后几关是比较难,而且这个游戏只是为了让你体验一下汇编编程的感觉。

现在你会发现,汇编语言其实没有多复杂,而且比起那些0011的代码,真是太好识别了。但是那还不够,比如我要计算一个:

X=Y*Z++P2

这个自然的表达式人人都能看懂吧?但是用汇编语言写出来就不那么好看了:

MovX,Y

MulY,Z

DivQ,10.5

AddY,Q

SubP,2

AddY,P

一眼看上去不知道是在干嘛。而且汇编语言也不够“自然”,比如我要做一个赋值操作:

X=Y;

上面这种写法很自然,我们在学数学的时候就是这么写的,但是在汇编语言中它是这么写的:

MovX,Y

直译就是:把Y移动到X的存储位置。再比如:

ifx

这几行命令,我们用自然语言就能读懂它在干嘛:比较两个数的大小,然后把大的数赋值给小的数。用汇编语言写就是这样:

CX,Y

JLELessCase

JSkipCase

LessCase:

MovX,Y

SkipCase:

MovY,X

用自然语言写很简单的三行命令,用汇编写就需要这么多行才能实现。

还记得当初我们为什么需要汇编吗?因为机器只能识别0和1构成的指令,但是那种数字指令对我们人类来说很难识别和记忆,所以我们用英文单词来一一对应那些数字指令,那些英文单词构成的指令集合就成为了汇编语言。新的知识点:当我们写出汇编代码后,在真正交给CPU运行之前,我们得把汇编代码翻译成机器码,因为CPU只认识0和1构成的机器语言。。

先驱们尝试把汇编语言简化的过程中,想到:既然要翻译,那么我们能不能创造一种更简洁的语言,然后把它翻译成相对复杂的汇编呢?就像把文言文翻译成语素成分更复杂的现代文。

“私见张良,具告以事“———翻译为———>“私下会见张良,把事情详细地告诉了他“

从这个想法出发,C语言诞生了。

C语言

你们看,汇编语言多复杂,因为它和机器硬件实现的指令一一对应,所以光改造它而不改造机器指令的话毫无意义。所以我们不如创造一种新的语言,然后把它翻译成汇编吧!语言有许多强大的优点。但是在此,我想让新手知道的是:函数。

函数是什么?当我们在写代码的时候,可以想象为我们写的每一行都是一个指令。我们写十几行指令来实现一个乘法运算,用二十几行写一个排序操作。程序猿是世界上最懒的物种,他们不想每次要做乘法时都写十几行代码。能不能用一行指令代表十几行指令?就像:

指令集A和指令集B所描述的就是完同样的事情。但是A用了7个指令,B用了5个指令。如果你要在这件事件上偷懒,你是愿意以A的形式还是B的形式来写这个指令集呢。我不知道你的选择是什么,但是作为世界上最懒的物种来说,程序猿在编程的时候,能少写一行就不会多写,能少敲一个字母就绝对不会敲两个。所以在碰到上面这个问题时,采用B的写法无疑。那么如何实现呢?假设指令集A中的每条指令都是计算机能够识别的指令,指令集B中的第3条“把大象装进冰箱”是计算机不能识别的,是我们自己虚构的。但是我们要使用这条指令,因为它对于我们来说很省事。现在很简单,只要规定:我们每次写“把大象装进冰箱”这条虚构指令,就自动把它翻译成“打开冰箱、把大象塞进去、关上冰箱”这三条原生指令。翻译过程不用担心,前人们已经写好了各种翻译器能够现实这种效果。

那么,上面我们虚构出来的那条指令:把大象装进冰箱。其实就是我们所谓的函数!下面展示的是在C语言中创建一个函数的形式。

把大象装进冰箱

下次想干这件事件的时候,就只要写一句:把大象装进冰箱。括号里写哪头大象,就装哪头。那么把大象装进冰箱就是一个函数。

有了函数这个东西,世界上任何复杂的任务都可以被拆分成最简单的单个任务。当我们学C语言的时候,一定要把函数的用法学好。我认为这也是新手学习C语言的主要任务。

更高级的编程语言

按照学院派的编程学习路线,计算机专业基本都是先学C语言,然后学C++,,然后学C/Java/Python/JS....,然后回去再学汇编呀、电路呀什么的。想必大家都熟悉这套方案。

其实学习一个东西,从根源开始了解接触,从底层学到顶层是一个自然的遵循逻辑的学习方式。在计算机世界中,如果说从真正的根源开始学的话,估计真得从逻辑电路开始了,然后学到汇编语言,再学到C语言,再学C++。但是为什么学院们都选择从C语言开始呢?一是因为相比起汇编语言,C语言更能够学以致用,使用起来更方便;二是因为,现在许多流行的编程语言,比如C++、JAVA、C、Python都是类C语言的,首先是语法上都是仿照C语言的风格来设计的,其次它们的一些技术原理是建立在C语言的基础之上的。它们之间的关系就好比“汉语”与“北京话”、“四川话”、“重庆话”、“广东话”之间的关系,其中C语言就是汉语。所以C语言作为广大语言的根基,把它当做入门编程语言来学习是没有问题的。再以它为中心,向高层语言和底层原理来扩展学习,往往计算机专业的同学到大三就能把整个计算机体系打通。

编程语言发展史

刚刚我们才讲到了C语言。并且说了游戏领域中比较重要的几种语言与C语言的关系。从这张图中我们应该能够更清晰看到这几种语言的发展脉络。每一种新的语言诞生,都摒弃了一些前者的弊病,加入了自己优秀的特性。但无论怎样,每一次编程语言的发展和进步都是在前人的基础之上进行改良和创造,很少有几个语言是凌空出世的。正因为这样,所以编程语言之间的差别,并不是天差地别。并不是我选择了学习JAVA,就意味着放弃了C;也并不是我如果不先学C语言,我就学不懂C++。编程语言之间都是触类旁通的,只要先掌握了其中一种,那么其他的语言就能很快掌握。

再看一眼上面的图,接下来我来讲讲C、C++和C、Java、JS、Python的关系。

C++

首先经过我们上面一顿瞎BB,已经知道了C语言是怎么来的,而且知道了C语言的语法比较接近我们的自然语言,语言写的代码,在被CPU运行之前,需要翻译成汇编代码,再翻译成机器码。我们对这个设计很满意,使用了好多年。后来在使用中,特别是开发一些大型项目,比如用C语言开发一个计算机操作系统时,发现有问题处理起来很麻烦,先辈就对C语言进行了改进。有一次改进后新增了一个叫“类”的功能,这个功能很牛逼,导致那个版本的C语言直接脱胎换骨。这种与众不同的牛逼需要在名字上体现出来,所以他们学习iPhone的起名策略,在名字后面加了个“Plus”。“CPlus”=“C+”。一个不够,那就两个“CPlusPlus”=“C++”。所以!C++是C的升级版,多了一个核心功能:类。语法没有变,本质的东西没有变,还需要被翻译成汇编,然后翻译成机器码,再交给CPU执行。所以学校里安排先学C语言,再学C++,其实这种说法是有点狗屎的,就好像是说:我们先学习“浮水”,再学习“游泳”。本来我们学习游泳的过程中就会学习浮水,但是就要把学习“浮水”先说一遍,让人误解为这是两个差别很大的东西。所以懂了吗?我再说明白一点:学习C++就是学习一个高级版本的C语言,学C++的过程中,就会先把C语言的那些东西学到。所以不存在:如果不学C语言打基础,就学不好C++。如果再有人问这个问题,就把这一章节贴到他脸上去。

另外补充:C++从C发展出来后,C语言也没有闲着,自己还是在不断发展,比如后来发展出了ObjectiveC。严格意义上来说,“学习C语言”和“学习C++”确实是不一样的,因为要去研究它们不同的语言特性。但是!对于没有学过任何编程的初学者来说,最开始就是学习个语法认识几个关键字而已,根本到不了研究语言特性的程度,所以两者说法对他们来说几乎没啥差别。

C

我们知道现在CPU厂商Inter和AMD两方对峙,操作系统是indos、MacOS和Android三足鼎立。可是你们知道上世纪八九时年代,计算机市场是繁花绽放,各种各样的硬件、操作系统充斥在硅谷整条小吃街。那个年代的码农,随手写一个程序,并不是写完就能到处用的啊。就算现在也不是啊。原因很多,可能CPU不一样,操作系统不一样....那怎么办?先辈们想到了一个胆大包天的方法:我写一个软件,这个软件去模拟CPU硬件,然后再写其他的程序,把这些程序编译成这个虚拟CPU能够执行的机器码,然后让虚拟CPU去执行程序。

这样,只要所有的电脑都提前装好我这个虚拟CPU软件,那么其他那些杂七杂八的软件统统都在我上面可以运行了!完美解决跨平台问题。

有了这个想法之后,先辈们就开始动手去写这个牛逼哄哄的虚拟CPU软件了。他们用C语言或C++来写这种后来被称作“虚拟机”的软件。这种事情都能干得出来,他们就顺便又为自己的“虚拟机”发明了专门的编写程序的语言。Java语言对应JVM,C语言对应Frark,Python对应PythonVirtualMae......

看到这里,聪明的你已经看破了真相,原来C、Java、Python编写的程序都不是直接交给真正的CPU运行的,而是交给了一个模拟CPU的软件运行的!把我们的程序交给了另一个程序来运行!把我们的程序交给了另一个程序运行!明白吗,为什么那些程序猿都说C没有C++快。因为C写的程序交给了C++写的一个程序来运行!Java写的程序也交给了C++写的程序来运行!Python写的程序也交给了C++写的程序来运行!再重复一遍就疯了……

到现在为止,我们解开了一个新手十大困惑之一:为什么C++比其他语言更快。现在我们还在章节“计算机与编程的世界”中,接下来,我们要聊一聊那几种高级语言的不同点,以帮助我们搞清楚新手十大困惑之首:我应该选哪个语言开始学编程!

不同高级语言使用感受

这么说吧,当年我才大二的时候,只学过C++。从没有专门学过一天其他语言。在那个背景下,我能够用ity写小游戏,我还用Java在AndroidStudio里写过一个贪吃蛇。我可是一天的C和Java都没学过。为什么我能做到呢?因为主流编程语言的语法基本都一毛一样,根本就不用怎么学啊。那种差别就像东北话和天津话的差别一样,大家都是从汉语出来的,谁听不懂啊。为了证明几种语言语法上真的很像,我写了一段伪代码,并翻译成不同语言版本,请找不同:

看,这三份代码是在干同样一件事情,是用三种语言所写的。除了第6行比较特殊,其他部分你们能看出什么区别吗?是不是真的很像?如果掌握了其中一中语法,另外两种有什么难的呢?无非就是注意一些细节不同点。总有些人问第一个编程语言学什么,我通常回答“都行都行”,看看上面这张图,我不是瞎说的啊,对于学习些基本语法,了解基本概念,先学哪个真的都行。如果把我们学做游戏比喻成学做饭,语言呐、环境呐这些东西,就可以看做是厨具厨房。学做饭的时候,重要的是学习菜肴怎么做,烹饪方法心得,厨具工具的用法是基本的也是次要的。我们随便选个厨房开始学做饭,一旦学会了,那么在另一个陌生的厨房里难道就做不出饭菜了吗?不会的。就算是另一个厨房,就算那个厨房里的锅、碗、灶、铲奇形怪状从未见过,习惯习惯也不影响我们做饭呀,因为工具毕竟还是那些,变其形式而不变其本质。

那么在这种情况下,我们应该选那个语言开始学习呢?总要有一个选择。这个选择就是C。为什么是C呢?说一个很简单的理由,因为Unity是用C写代码。而Unity是我最推荐新手学习的游戏引擎。所以学了C就直接去用Unity咯。如果有人问:“我想用Unreal4或GINE,我能不能从C++开始学呢?”当然可以呀。你掌握了C++之后,如果又转变想法想用Unity来开发,也能很快上手。但是我不推荐这样,因为C++细节非常多,更繁琐一点。学起来没有C轻松。而Unreal4和GINE呢,用起来也更麻烦一点,也不建议新手拿这两个引擎来考验自己的自信心。

下次继续……

作者并非职业程序猿,也不是计算机科班出生,若文中有任何错误,望先辈们在留言中指出,以帮助我修正文章、传播正确有用的知识。

扩展阅读:

1.

那么,下一节再见。

这里是知乎专栏第三篇文章:。我是窦月汐。如果你是第一次看到本专栏,建议你跳转到自学游戏开发关于本专栏进行了解。如果这篇文章和本专栏对你所帮助,希望你在看到其他游戏人需要帮助时也能把本专栏推荐给他,向每一个游戏人致敬。

我公开了我的一个兴趣交流群,群号为:474891082。

明确两点:

1.游戏开发只是借助了电脑和图形学,没有这两个,一样可以开发游戏。

2.图形学是为了在电脑里模拟物体而形成的一门研究领域。

目前,游戏公司偏重于成熟稳定的框架,这样更有利于快速开发游戏,毕竟根本是为了赚钱。只有很少一部分大公司需要自己去搞游戏引擎,只有当开发或者定制游戏引擎的时候,才会用到一点图形学的知识,不过总的来说,游戏只用到了很少一部分图形学知识。更多的图形学知识,会用于建模/电影之类的。如果你感兴趣于游戏,那么图形学会让你走的更远,不过短期来看并没有什么卵用,不如踏踏实实把一款游戏引擎用好,这样游戏公司大部分的工作才适合你。

上面是废话,下面才是我想说的:

首先,无论外部环境如何艰难,作为一个有志于游戏开发的程序员,你都不该自暴自弃,学习更高深的东西,有百利而无一害。同时,作为社会人,你需要提供高质量的服务,这是你应该承担的责任。下面主要是针对对游戏开发和图形学有兴趣,却不知如何下手的同学的一些小小的建议。

游戏工程

在中国,游戏在很大程度上是服务业,不是制造业。一款游戏更多的是内容驱动,程序员反而成了辅助,为游戏的实现而提供技术方案。

其次,1.游戏顾名思义是为了娱乐而制定的一套规则,它的可玩性高于一切。可玩性是游戏施加给玩家的挑战组合,一个游戏如果能让玩家觉得有无限的可能性,那么就说明这个游戏可玩性比较高。一个规则可能很简单,但是当多个规则组合起来,就会产生不可预测的结果,这就是游戏的魅力。MoreisDifferent。可以试试用编程来玩玩生命游戏。还有一个梗,如果计算机在一个游戏中无法战胜玩家,那么就说明这个游戏有很高的可玩性。2.游戏是一场赌博,比如游戏中的生物,如果它们的属性都千篇一律,是不是很无聊,而如果仅仅是加入了一点随机,会让玩家感觉这个游戏更真实,更有想玩的冲动。计算机的出现,让游戏开发变得更加学科化,因为计算机可以代替人脑来执行规则。这意味着,作为程序员,你就是秩序的象征,你就是上帝。建议:

0.如果只想写游戏逻辑,只用熟悉框架,熟悉语言。客户端框架推荐unity3d,unreal4,cocos2d,这些框架都有完整的工具链,可以让你快速上手,同时社区也比较火热,不用担心遇到问题没地方问。服务端不太了解,每个公司都有自己的服务端引擎吧,我比较看好一款叫kbengine的开源引擎和云风大哥的sk,希望朋友们可以推荐一下还有哪些开源的游戏网络引擎对初学者比较友好。

1.如果觉得引擎不符合你的要求,你想自己定制,做一个引擎geek。那么ogre是个很好的选择。另外,龚大大的klayGE很优秀,我喜欢龚大大这样的人0.0。

2.如果想本科毕业后从事更为核心的设计。学好线代/信号系统/数学分析/概率统计很重要,然后去找一些图形学初期的论文看看,主要是理解别人的意思。线代不用说了,游戏中的各种变换都依赖于线代提供的数学工具。信号系统提供的思路,如何从不同的基来表达信号,很大程度会改变你的世界观,对,世界观,然后游戏中的pre/postprocess很多用到信号系统。数学分析,会培养你的数学演绎能力,这点在数学建模,特别是游戏这样一个理想国里,是非常有用的。概率统计,AI不能多说。

3.大学期间,如果想开发游戏证明自己,绝对不要要求太高。如果你能找到一个美工同学,那么跟他/她一起成长再好不过。千万别因为想自己做一款游戏而走偏了方向。我就因为想做游戏而自学了建模,在youtube上下载了将近200G的blender教程,到最后,可以做一些基本的物体,调一些动作,做一些纹理,而且是用一个鼠标完成,至今不会用数字板。这些工作你可以投入一些时间,但是这些时间你可以用来做更有意义的事情,比如成为一个编程高手。

4.可以考虑实现一个软渲染器,很多人推荐,虽然我没去做过,不过应该收益蛮大。它可以让你对渲染的本质有所理解,同时增加你的代码掌控力。推荐,理解核心即可。

5.电子游戏开发,需要各方面学科的能力,c++/directx。这句话我想说三遍。

edev/stackover,希望你常去看看。

7.记得把你作品保留下来,然后不断对它迭代,如何把它保留下来是门学问,我就因为太关注于本身能力的修炼而忽略了这个。大四之前写过的代码和硬盘因为一杯咖啡送进了回收站Forever。如果你是一个有心的人,那么找一份游戏相关的工作完不是问题。

8.紧接着上面的一点。学会使用github,自己写个博客。很重要,不要嫌麻烦。血泪教训。

9.说到图形学与游戏的关系。不得不谈到一个人,也是我最崇拜的一个人。3D游戏引擎之父johncarck。关于他的逸闻趣事有许多。最出名的是那个开根号的giuer,0x5f3759df,让游戏中最常用的函数快了4倍!也是那本让我对图形学和游戏开发更加神往。

10.上面说了点工程方面的,更多是围绕游戏领域。然而在图形学这个领域中,有许多细小的分支更值得关注。具体的一些见硕鼠酱的答案。我的答案会更偏向于保守经典的领域。

图形学

图形学还是交给大牛们介绍比较好,不过作为入门,我挑了几个经典有趣核心的方面说说。

sic中的DeforbleBody。这是我比较喜欢的一个子领域。它主要是研究物体的物理性质,如何模拟物体的受压形变及其恢复过程。比如一个植物,你将它折弯,松开,它会摆动,如何在计算机中表示这些摆动呢?有两个可选方案,sSpringSyste是将物体受压运动看成由很多小弹簧共同震动产生的。我记得我刚读大学的时候就拜读了MiloYip大神在麻辣马中关于头发的建模,那篇文章算是DBody的一个入门吧。2.有限元方法。

刚加入知乎,如果稍微有点帮助,希望读者给个赞。

接下来不断的迭代这个答案,希望把一个问题回答得完美一点。

不断的迭代是个很有意思的事情,我都不想去干正事了,特别是有许多朋友给的赞,让我很开心~

本文作者:@Loki——不吐槽会死星人,喜欢一个人玩游戏,半个AVG死忠。

我认为,人的思维缺乏将已知事物联系起来的能力,这是世上最仁慈的事了。

人类居住在幽暗的海洋中一个名为无知的小岛上。

这海洋浩淼无垠、蕴藏无穷秘密。但我们并不应该航行过远,探究太深。

——洛夫克拉夫特

这是制作组RedFishGa官网上关于这款游戏的介绍。

也许光凭这段引自克苏鲁神话之父的言论,以及RedFishGa这个新兴的小团队,很难看出有何出彩的地方。

但是要是加上制作团队CottonGa以及,熟悉国内独立游戏圈的人应该就会明白。

这款风格神似的新作,是CottonGa正在打造的第二款作品。

从极度类似的风格来看,也许我们可以把它当作的续作,虽然两款游戏并没有内容上的交集。

目前正在做最后的收尾测试,计划在6月份正式发布,上周他们还将它带到了摩点网、Kickstarter、Indiegogo等众筹平台。

有趣君参与了众筹,秘密打入了众筹粉丝群,并跟这款游戏的制作人聊了聊。

在摩点网上,的众筹发起者是小棉花,在国内独立游戏圈还算知名,他是CottonGa的创始者,也是的制作人。

获得的诸多荣誉让人们记住了他,然而棉花自己创作独立游戏的故事其实更像是一场大冒险。

棉花出生于1975年,国内独立游戏人提起他都说是一位友善有爱的大叔。

但他本人比较反感别人叫他大叔,我称呼他棉花大叔的时候,他反应比较大,说不要叫大叔。

我说我在听他IndieAce的分享演讲,他问是不是又老又丑。我又说我听的是音频版本,他连呼还好还好。

我还找到了十年前他参加插画设计大赛拿奖时候的照片,简直年轻帅小伙一枚,不过当时他却称自己“算是个老人家了”。

在QQ资料上他填的是19岁,从心态和表现上看确实比我年轻好几岁。

1997年棉花毕业于吉林东北电力大学,专业是电力相关,毕业后获得了能源国企的“金饭碗”。

但醉心于绘画的他最终还是选择了艺术这条不归路,工作之余他依旧坚持绘画创作,自己画画卖画甚至办过画展。

搞艺术的都知道,说这是条不归路并不是调侃,一段时间之后四处碰壁的棉花开始寻找新出路。

新世纪开始,电脑及互联网开始在国内兴起,棉花凭借着绘画功底开始自学Flash动画和三维动画制作。

他跟朋友一起成立了“二极管工作室”,主打制作Flash游戏,这可以说是国内最早制作游戏的一批人了。

这里有个很好玩的插曲,在我加入众筹粉丝群的时候,群里有玩家分享了棉花十多年前制作的Flash游戏。

没想到这些封装成可执行文件的Flash小游戏这么多年后还可以玩,我试玩了和两款游戏。

更准确的说其实是“炸鱼”,一个小孩在岸边丢炸弹炸鱼,丢出去的距离根据你点击鼠标左键的长短控制,需要很好的手感才能在一分钟内炸死所有鱼。

则是类似前几年很流行的“大家来找茬”,左右两幅画在限定时间内点出所有不同之处。

这些Flash游戏虽然已经初步具备游戏元素,而且十多年后来看也不算差。

但Flash游戏总归是小打小闹,只懂美术的他明显将游戏做成了插画集,他们也很难弄出其它更深入的类型。

随后他们给一家娱乐网站开发了数十款Flash游戏,谁知道几个月后该网站弹尽粮绝后关闭了,他和哥哥决定自己掏钱开发休闲网游。

游戏做了三年,但没有经验的他们难以最终成型,卖掉这款半成品之后他们转而承接美术外包为继。

直至2009年,这家小公司终于淹没在高涨的商业浪潮中,棉花又过起了之前卖画的生活。

卖插画、卖油画、卖国画,出版绘本、工具书籍,还做了许多明信片、公仔,甚至去丽江画旅游地图。

按他的说法就是“骗骗文艺青年,挣点零花钱”。

很多人可能无法想象这样的生活,但棉花还是坚持了好几年,而且对于游戏他并没有死心。

2011年他接触到了游戏制作工具GaMaker,两个月后鼓捣出了,一款类似的游戏。

在IndieAce的分享演讲中,他多次调侃说制作游戏只是因为很想赚钱,想赚很多钱。

但真正有人想把买下来卖到国外去的时候,他又犹豫了,他不想卖。

他说这算不上好游戏,也得到了很多朋友善意的批评,他没想到这款游戏能够挣到钱。

然后他又开始制作一款名叫的游戏,因为当时的国际时政就是卡扎菲被反对派打死,算是蹭个热点。

他拉上了网上认识的一位程序员,借鉴了一些其它游戏的玩法,制作了这款游戏。

本来这只是一款恶搞鬼畜作品,但后来棉花发现国内有不少厂商盗版了他的游戏,本来没发布的游戏却原封不动被别人发布了,甚至游戏一些关卡还打着他的英文名Cotton。

后来他才搞清楚,原来这游戏被那个一起合作的程序员卖掉了,卖了一万块而且没有告知他。

这件事闹大之后,棉花并没有追究这位程序伙伴的罪过,他说不想毁了这位年轻小伙的前程。

甚至之后,他还开启了的制作,不过最终这款游戏也不了了之,只在某些小游戏平台简单试了试。

经过这些磨练之后,棉花觉得总是这样不了了之不行,还是要认认真真打造一款作品。

然后他开始了一款叫的筹备,画了很多场景概念图,并将它推上了国内最早的众筹平台。

这时候的众筹在国外都是新兴模式,Kickstarter游戏众筹最早的神话也才开始,棉花不说国内第一人吧,但确实够早。

不过最后由于国内众筹的局限性,以及受众宣传等诸多因素,这次目标一万人民币的众筹只收到了54名玩家的4400元,并没有成功。

再后来他又将目标盯上了独立游戏大赛,IGF独立游戏节。

2012年IGFa他制作了一款名为的中国古典风的作品,只做了一个关卡,但他觉得游戏不够好,最后没好意思投给IGF评选组。

这一年评选组比较青睐中国风,另一款水墨风的作品获得了学生组最佳作品,只可惜棉花没有参赛。

不过这款中国古典风的游戏素材他并没有闲着,而是将其改造成了一款手机主题。

最后就是他的第四款作品了。

我问他前后共做了几年独立游戏,他回答说从2012年开始,很明显他觉得才算是他的真正起点。

他说起源于一个很逗比的事情,来自于一个新闻,福布斯漫画家排行榜。

画漫画原来也能这么赚钱,那他就画了一个南瓜先生,做起了走上人生巅峰的梦。

后来他又在独立游戏群里认识了蛋蛋,脸圆圆的也就是番茄先生。

蛋蛋最初来到团队的身份是编剧,给南瓜先生漫画编剧情,棉花当时画大饼说成功了一年分给蛋蛋500万,后来这成了他和小伙伴之间互相调侃的一个梗。

两个人一直折腾了小半年,然后又觉得不行,还是回头做游戏。

于是蛋蛋的身份就从编剧变成了程序,从头开始学Unity。

过了两个月,他再次将也推到了众筹平台,这次将目标定为5000元。

然而结果却比第一次还惨,只收到了15名玩家的1360元。

但他们并没有灰心,还是继续着游戏的制作。

棉花甚至发出了一则招聘启事:“招收美术、程序、策划。条件:必须一流。待遇:暂时无钱,只有鼓励。”

随后他们收到了一家天使投资机构20万的投资,棉花注册了“胖布丁”公司,名字取自英文“pukin”。

2013年IGFa,他们带着荣耀归来,一举夺得最佳美术奖。

其实这也并不是什么很好的起点,他们又埋头一年多,直到受到索尼的亲睐,成为了国行首发游戏之一。

但国行主机的境况大家也都看在眼里,此时距离棉花赚钱的调侃还很远。

半年后,他们将推到了移动端,由乐逗游戏代理,他们才算是松了一口气。

又过了半年,也就是现在,他们马不停蹄又将推出新作。

的开发其实早就在进行之中了,事实上CottonGa手头一共有四款游戏在制作当中。

经过两年多的发展,原本只有棉花和蛋蛋的团队,现在成长到了6个人,但6个人同时搞4款游戏依旧让人震惊。

ReadFishGa这个新团队则负责的发行,他们也只有少少的5个人,加上CottonGa一共11人。

早在去年7月份就已经有不少玩家体验到了的测试版本,这近一年几乎都是在给游戏添加细节,以及付费模式的探索。

很可惜由于时间以及设备的原因,有趣君这次并没有试玩到这款游戏,但是在跟棉花的聊天过程中还是了解到了不少信息。

不管是美术风格还是点触式解谜的玩法上,都完美继承了的亮点,我觉得这就是棉花一直坚持的自己的特色。

从视觉看,各方面极似,画风简单晦涩但又很顺眼,指点解谜玩法也是AVG的一个复古形式。

在棉花的交流里,他表示这种画风叫“表现主义”,就像是爱德华·蒙克那幅名画,跟死亡有关有点灰暗的基调。

之前那些Flash游戏中的角色形象,以及那本名为的3D制作教程的封面,都是这样一种特立独行的形象。

乍一看目光呆滞,就跟梵高那幅断耳自画像一样,满满都是奇异荒谬的气氛。

延续到这款游戏,我更喜欢将其称之为“荒诞卡通风格”,而这种美术风格也得到了独立游戏大赛以及玩家的肯定。

也许CottonGa也有了自己的一套方法论,于是也严格将这种风格延续了下来。

而在故事上,的剧情则显得更加荒诞和神秘。

高耸的灯塔、奇怪的荒岛、杂糅的建筑风格、神秘的七眼章鱼、埃及风的守护狗神,以及从天而降的外星人。

就跟美剧那个永远不能离开、充满超自然因素的小岛一样,而玩家则要解开这座小岛的所有谜题。

听起来又鬼畜又很有挑战不是吗?

可惜的是,开头那段洛夫克拉夫特的话仅仅只是引用,棉花表示游戏中并没有太多克苏鲁相关的元素。

在谜题的设计上,比进化了一个层次,找东西解锁的传统套路少了点,更多的是小游戏谜题,比如有些类似的迷宫解谜。

中非线性的解谜进程,也在中得到了加强,多条解谜元素之间的交织,更加考验大脑。

最后在音乐的选择上,棉花也有很多自己的看法。

在IndieAce的演讲上,他多次提到这部电影,他说他看这电影前5分钟就哭了。

朋友问,这还没到情感高潮呢怎么就哭了?他说被音乐感动哭,配上画面就更泪崩了。

的众筹演示只给出了一首曲子,是同一位配乐者HurryP制作的。

棉花说这是他的老伙伴了,几乎已经是专职为CottonGa服务了。

之前他的想法是会慢慢地自己也将音乐这一块抓起来,毕竟某些时候要找到自己想要的感觉,不同的人表达和理解可能会有差异。

但是HurryP的表现很好,的音乐很棒,甚至还推出了原声集。

而这次也将会有更优美的音乐体验。

总的来说,是一款非常值得期待的游戏,制作人棉花这十几年的“独立游戏大冒险”也堪称奇迹。

他的才气、坚持和勇气,在乌烟瘴气的国产游戏圈简直是鹤立鸡群。

他笔下的那些眼神诡异的神秘小人,或者主角南瓜先生,又或者每一款作品都出现过的戴着宇航头盔的奇男子,都是他存在的痕迹。

他不仅活在跟别人不一样的世界里,还活在自己的作品中。

最后引用一位粉丝对他的评价:

这个游戏的开发者,是个外星人,变态~~可怕~~

和我们不是一个世界的。

他的世界充满幻想,想画啥就画啥,好羡慕~~

你应该能想象这些波浪线代表的是怎么样激动和崇拜的心情吧,后来我才知道他也是CottonGa的成员,也许之前那则不给钱的招聘启事真的有奇效。

看最新最全的书,搜