Skip to content

Instantly share code, notes, and snippets.

@yangshaoshun
Last active June 5, 2017 07:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yangshaoshun/4c2451ce7a9fca007c75319d0833e0b9 to your computer and use it in GitHub Desktop.
Save yangshaoshun/4c2451ce7a9fca007c75319d0833e0b9 to your computer and use it in GitHub Desktop.
简单 UI 下面的代码冰山

水下的冰山:创新设计的诅咒

我不吝于使用最高级的形容词来描述荒野之息的系统设计令我感到的震撼,这可能会令部分读者感到有些夸大其辞:不就是些火、冰、雷、风之类的基础元素排列组合吗?这种系统做几十个能有多难,至于你用这么夸张的词汇描述出来吗?我已经在不止一个地方看到过有人用轻蔑的语气说“元帅老是把一些很浅显直白的事情用夸张的语气说出来啊”或者“旗舰总是说一些玩过游戏的大家都知道的事情啊,对玩过游戏的人来说一点实际内容也没有”。

但这些最高级形容词绝对是不过分的。基于我本人游戏设计的过往经验,我深知要制作出一个原创设计,要整个团队付出多大的努力,以及抛弃掉多少不成熟或者被实践证明不可行的想法。对每个原创游戏设计来说,玩家们最终看到的成品,只是无数设计方案被斟酌、裁剪、重组,甚至制作然后抛弃后留下来的结晶,其中每个设计细节可能都数易其稿、反复修改到美术设计师们沉默,程序设计师们流泪。原创游戏设计就好像一座冰山,玩家们最后看到的部分,就如同飘浮在水面上的冰山尖顶;无数被抛弃、被否定的设计,就如同在水下那更为庞大的冰山身躯一般,支撑着那小小尖顶的存在。更多的时候,由于资金、工期、团队、技术等各个方面的压力,游戏设计师往往不是在冰山中寻找最美丽的那块切面,而是在所有选择中选择看起来最不坏、甚至只是比较不坏的那个作为答案。一些在国内做惯了那些“高速、高效”项目的程序员和美术们往往会抱怨策划老改设计,却不知道这才是原创设计的通常面目:或许只有完全克隆别人设计的游戏,才能做到一次成型、一点都不修改——反正照着那个“什么什么游戏”抄实现就对了嘛!(而且还经常有抄也抄不对,抄袭也要返工的情况发生……)只要你试图制作一些能带来前所未有体验的东西,那就必然会碰触到水面之下的那些冰山。我不知道有多少游戏项目,最终就像泰坦尼克号一样撞沉在这些冰山之上——我自己手里就撞沉过好几个,我见过的、听说过的在这些冰山上撞沉的项目则数以百计。

...

荒野之息水面下那块冰山到底有多大、有多么复杂,我简直无法去估计。当我听到荒野之息的监督青沼英二在访谈中说“这个项目用了300人团队和接近四年时间,其中有很多我的管理责任,它本来不应该用这么久的”的时候,我的内心其实是崩溃的:什么?你说荒野之息居然只用了不到四年开发?你们只用了不到四年就完成了水面之下的冰山,找到了这么一整套正确、美丽、克制、契合的设计方案,还把这么巨大的内容量开发完了——居然还要嫌进度慢了?

Think about a recommendations system for an e-commerce store. Hundreds of lines of code might analyze your buying patterns, the items you look at but don’t purchase, attributes across products and so on. But the only change in the UI is a simple list of products with a header that says “recommended for you.”

Take a typical CRUD-style web app for example, like a blogging tool. There is UI for creating posts, showing posts, editing posts. And behind each piece of UI is a small amount of code to write the post to the database, read and display the posts, update the records and so on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment