撰写了文章 更新于 2021-03-25 20:10:28
002:游戏与程序
最近英雄联盟出了一个新英雄:破败之王佛耶戈。这家伙帅是挺帅的,但感觉有点脆,比较容易死。但这并不重要。我最感兴趣的是他的被动技能:
在参与击杀一名敌方英雄后,可以附身这名英雄并继承对方的属性、装备和技能。
有一说一,我觉得拳头的程序员在听到这个技能以后,脸都是绿的。当年那个bug之王塞拉斯应该已经坑掉了程序员一半的头发,现在另外一半估计也保不住了。
从程序员的角度来看,这两个家伙的工作量是普通英雄的无数倍。但售价却和其他的英雄没什么两样。当年马克思在《资本论》里说一个商品的价值来源于其社会必要劳动时间。那这么看来这二位的价值应该是全联盟最高的。
不知道程序员是怎么看设计出这两个家伙的设计师。
程序员在游戏开发中的地位很有趣。我在看和游戏开发有关的书籍的时候,发现它们分为两种:一种只讲程序,另一种完全不讲程序。我们常常说游戏的开发人员大概分为三类,程序、策划和美术。如果这三类人彼此之间完全无法相互理解和沟通,那游戏开发的效率和成果也就可想而知。
一般来说,程序员的工资在所有开发人员中属于较高的那一部分。但从整个开发流程来看,负责具体实现的程序员却是流程中最后的一环。
这是个矛盾。
我自己懂一点程序,也懂一点游戏设计。虽然只懂一点,但我也明白很多问题从程序的角度何从策划的角度来看完全不同。我也听说过许多开发实践中策划和程序的拉锯战。
这是个悲剧。
我希望程序不仅仅把自己当成实现策划乱七八糟设想的工具人,也不想策划把程序当成哆啦A梦或者是《是首相》中的汉弗莱。
说到底,二者本质上都是游戏设计师,只不过负责的层面不同。他们本应该同步推进,并肩作战。就像空海一体战的海军和空军一样。
游戏是程序吗?
当然是。如果一个游戏不是一个好程序,那它一定不是一个好游戏。什么叫好程序?没有bug,结构清晰,运行高效,标注清楚,没有不明意义的冗余代码。这些难道不同样是游戏所追求的吗?
为我们知道,程序由数据结构和算法组成。
在另一个层面上,游戏也是由资源和机制组成。
一个优雅的游戏,我相信一定是在两个层面上存在某种对应关系的。换句话说,它们是用两套不同语言,描述同一样事物。
这不仅仅指游戏本体,同样也指在游戏开发的过程中。
一种很经典的游戏开发场景是这样的。
程序员们坐在一楼喝着咖啡敲代码,策划们坐在二楼的小黑屋里喝着可乐编策划案。
这些像百科全书一样又厚又繁琐的策划案被从小黑屋里送到一楼的程序员面前。然后程序员们抓耳挠腮地对着它们发呆,试图实现上面所写的功能。
这就很容易造成一种重心的失调。我认为这样是不好的。
也许在策划们看来,自己的策划案天衣无缝,充满了各种激动人心的点子。但他们不会考虑实现这些功能需要多少硬件资源,需要对现在的架构进行多少调整,需要内容以目前的技术根本无法实现。
而在另一方面,也许有些东西是程序目前能够实现的,但策划却没有意识到。
我们总是听到策划们说,我们想到了一个什么点子,之后要去找程序讨论实现的可能性。但我们很少听到程序员们说,我觉得我们的系统在某方面存在很大的潜力,也许能做到什么什么事情,然后要去找策划去讨论游戏性上的可行性。
这其实蛮遗憾的。
再重复一遍,对于游戏来说,程序的角度是十分重要的。
关于程序,其实我还有另外一个的话题想聊。
刚才我们一直在聊该怎么用程序的观点来看游戏(以后我们还会继续聊到这点。),接下来我想讨论一下。我们该怎么用游戏的观点来看程序。
在很久很久以前,几乎的所有程序都是游戏,那时的电脑就是贵重的玩具。但今天肯定不会有人这样认为。越来越多的程序成为了生产工具和维持正常生活的必需品。但如果我们生拉硬扯一下的话,还是有很多程序具有游戏的元素。
我想不论是谁也不得不承认,在游戏中操控一架飞机与远程操控一架无人机具有很大的相似性,利用信息系统指挥作战看上去也很像是在玩战略游戏。这种相似性很大程度上就来源于它们具有相似的交互方式。
无论是什么程序,开发出来总会在某个环节与人发生交互。
网页、app、vr、应用程序、操作系统。它们都是这种交互的表现形式。
游戏恰恰是交互的艺术。更好地理解游戏,就能更好地帮助我们理解这种交互关系,帮助我们更好地理解人类和我们自己创造的数字世界之间的关系。
我相信这种关系之间蕴含着力量。
