2 月份的时候,我们介绍过一款叫做《_pRISM》的独立解谜手游,上架不到一周就获得了苹果公司 2500 多次最佳新游戏推荐,2 天之后就进入了 38 国 iphone 付费榜前十名,在美国 iphone 付费榜曾达到第 8 名。
这个画面精美、音效独特的物理解谜手游是华裔独立开发者 Clint Siu 耗时 9 个月完成的,其中很多资源是纯手绘制成,此前 Siu 曾担任好莱坞电影特效师(VFX Artist)。
据 Gamelook 了解,该项目是芬兰非营利 Stugan 孵化器项目的首款手游,去年 6 月份的时候被宣布,游戏中的美术、代码、音乐等都是由美籍华裔开发者 Clint Siu 独自完成的,游戏中的很多资源都是手绘而成,目前该游戏在 App Store 的玩家评分为 4.5。
随着游戏研发行业的门槛日益降低,很多人开始探索游戏研发的可能性,Clint Siu 就是众多新入行者之一,这位特效师此前从事电影、电视和音乐视频特效的制作已经长达 10 多年。当他听说瑞典游戏孵化器 Stugan 的时候,Siu 尝试了很多新想法,对于开发者们来说,该项目最明显的特点是,你需要搬到瑞典的一个小山村里进行 2 个月的游戏研发工作。
Siu 在接受采访时表示,这听起来很不错,我非常想申请,但当时什么都没做,所以我用了几周的时间尝试了很多的创意原型。不过这些想法几乎所有都被我放弃了,除了一个拖拽 UI 盒子并且用手指旋转的想法,感觉就像《少数派报告》里汤姆克鲁兹在透明银幕上的小窗户旁边移动一样,我觉得这很有趣。
在最初概念的基础上,我增加了几何图形作为 UI 设计元素,并且在 3D 场景下增加了可以自由移动的摄像头,我把自己的申请视频发给了 Stugan,我觉得这个项目应该是可以被通过的。
据 Siu 透露,这个想法就是后来的超现实主义解谜游戏《prism》,玩家们在其中探索微观银河系并且不断打开神秘的几何体。简单来说,就是需要玩家们拖拽并旋转不同颜色的点和线,匹配几何形状,然后解开所有的谜题。
使用 Unity 引擎开发:弥补代码能力不足
这款游戏是用 Unity 引擎打造的,他常用的数字内容创作软件和该引擎的融合度很高,比如 Autodesk 的 Maya,两者之间的很多热键和小技巧都是通用的。研发过程中最大的挑战就是编程,而 Siu 只学过有限的 C# 知识。
几年前我参加过 10 周左右的 Maya 脚本语言,这让我学会了基本的编程知识,实际上这已经足以让我开始做自己的游戏了,但 C# 的语法有很大的不同,所以我投入了很多时间反复查看 Unity 文档并且搜索代码样本。当然,Unity 也有资源商店,我觉得非常好用。90% 的情况下只要我遇到困难的问题,都可以在商店买到资源。
Siu 从事好莱坞电影特效的经历也帮助该游戏形成了独特的视觉风格,他表示该游戏的创作受到了J.J. Abrams 电影的影响,自己还经常看 GMunk 的画作。我始终想做一个电影级的手游,但同时希望可以做一个独自研发可以搞定的项目,我给自己的限制是,只用简单的物理图形作为焦点,这款游戏视觉上的乐趣和玩家们与之互动的乐趣是一致的。
光照效果:手游里的电影 CG 级别
光照是这款游戏视觉效果的一个亮点,虽然很多手游都避免使用动态光照,但 Siu 的要求是至少使用一个这样的光源在各种物理性状的表面创造出闪光点。光源是从一个边缘开始的,在表面上滚动,在另一个边缘被剪断,这种方式可以创造出我想要捕捉的神奇效果,一个面上出现这么多的镜面反射是很多手游都不会做的,因为只有电影里才经常使用。在真实世界里,平面是由瑕疵的,沟槽、污点以及指纹都会打断光的传播。如果有些事物平滑耀眼的话,就可以创造更亮的光照,如果表面很粗糙,创造的光照就很弱,通过 Unity 的光泽贴图(gloss map)就可以实现类似的效果。
镜头光晕、色差和景深等都是在 CG 和动态图形中运用比较多的手法,《prism》也大量运用了这些方式,这些都是光学效果,意味着图形的创造是通过带透镜的摄像头生成的,这可以给 CG 带来更好的画面效果。但这些也可以被运用到手游里,让游戏视觉更出色。
还有就是游戏操控,触屏操作是吸引 Siu 进入游戏研发领域最大的原因之一,在《prism》这个项目中,他终于有机会进行尝试。能够通过手指操作的方式让屏幕上的物体移动是非常神奇的,我希望《prism》也可以做到这样,我希望游戏操控自然而直观,这样即便是小孩子也可以在没有任何指导的情况下玩游戏。
他说,这也是最大的挑战,我并不希望加入游戏教学或者通过文本方式指导玩家,因为这会破坏玩家游戏时的神秘感,所以,你如何在不作任何解释的情况下让小孩子都会玩?
最后,Siu 通过大量的反复测试和修改才最终搞定了游戏操作。我学到最大的教训就是,你要做一个可以很容易改变的系统或者框架,因为你的游戏注定是要改变很多东西的,下一个项目我会找到更好的方式避免一些错误,我个人也会学习更多的代码技巧。
济宁IT新闻