前言

结束上一次的经验后,正打算开始新的 Unity 项目时,重新看了一部十年前看过的宁静电影,对经验所具有的影响力进行了思考。思路整理到一定程度后,我想,好的电影带来好的体验,我也想做那样的作品。平时也有想要制作和表达各种东西的心情。

concept-art和朋友闲聊时画的简易概念艺术兼策划

以体验为中心,构思了一个即使玩家不做任何操作,场景内的对象也能自行相互互动的环境。这是一个没有分数或游戏结束条件,单纯观赏和漫步的游戏。
基于上述想法快速画了草图,感觉比预想的好,周围反应也不错,于是开始以此为基础构思策划。

策划

上一次最令人遗憾的就是没有策划。没有可参考的指标和长期计划,宏观上难以把握游戏的方向性,微观上难以考虑留存率或盈利能力等。所以这次打算先在一定程度上做好策划再开始。

寻找对游戏策划有帮助的概念时,了解到了 GDD(Game Design Document)。这是一种游戏规格说明书,没有固定的格式,所以我打算参考Unity 制作的 GDD 格式,预先记录必要部分。

简易 GDD

  • 基本说明
    • 名称:行尽地(英文:waybound)
    • 类型:横版卷轴冒险
    • 形式:2.5D 移动端
  • 游戏玩法
    • 玩家在城市外围环境中成为构成环境的人、狗、猫、蚂蚁等生物,执行该生物所具有的互动。例如,人从自动售货机取出饮料饮用,狗闻街边长椅的气味。
    • 即使玩家不特意操控生物,生物之间也会相互互动,构成城市外围的氛围,每种生物在指定范围内拥有外观上的个性。
  • 主要特点
    • 对象间多种互动
    • 手绘图像与逐帧动画
    • 雨、雪等随天气变化的体验

示例对象

mindmap
    root((对象))
        生物对象



            鸽子
            蚂蚁
            萤火虫
        非生物对象
            自动售货机
            椅子
            垃圾桶
            帐篷摊位
        背景对象
            别墅
            便利店
            咖啡馆
            酒吧
            地铁

示例交互

graph TD;
    人 -- 购买饮料 --> 自动售货机;
    人 -- 遛狗 --> 狗;
    人 -- 抚摸 --> 猫;
    人 -- 注视 --> 萤火虫;
    人 -- 坐下 --> 椅子;
    人 -- 购买食物 --> 帐篷摊位;

目标

技术目标

在此之前,变量名和函数名的编写存在很多混乱。没有把握好一致性和直观性,导致阅读和修改代码变得越来越困难。

正在这时,我在 Unity 博客上看到了一篇整理命名约定的文章,受到了不小的冲击。如果一开始就知道就好了,会方便得多。最终,我清晰地了解了在 C# 中何时该使用什么变量名和函数名,以及哪些写法是不该用的。

在继续寻找是否还有其他需要了解的惯例时,同样发现了 Unity 发布的 “Level up your code with game programming patterns” 电子书。我慢慢地仔细阅读,了解到有 SOLID 原则、工厂模式、状态模式等许多可用的技术,并以此为基础进一步查找衍生模式,产生了一些想要挑战的内容,以实现更加体系化的代码设计。整理后如下:

  • PlasticSCM
  • 事件驱动编程
  • 程序化动画
  • 严格的命名约定

其中,PlasticSCM 是用于替代 GitHub 的版本管理系统(VCS),计划在开发过程中偶尔保存工作成果。事件驱动编程、命名约定等则是通过本项目想要获得的核心开发能力。此外,还有一些小目标,比如更好地运用单例模式、协程、委托、get set 属性等尚不熟悉的内容。

艺术目标

基本目标是,通过线条和画面动态的体验,描绘我们周边的日常氛围。希望既能充分吸引注意,又不会过于刺激。如有可能,以影像表现作品般的呈现为目标,具体打算运用以下内容:

  • 逐帧动画
  • 动态景深
  • 色调曲线

整体上,希望即使玩家只是静静地看着游戏画面,也能觉得有趣。不过,我也在担忧自己是否具备那样的能力,特别是用逐帧动画描绘狗、猫、鸽子等动物的动作,据说这是专业动画师的领域。虽然我不需要画到那么精细的程度,但由于缺乏背景知识和经验,恐怕会经历一些试错。

路线图

gantt
    title 第 1 阶段路线图

    Section 策划
    策划 :a1, 2024-02-28, 1d

    Section 开发
    原型开发 :a2, 2024-02-28, 85d
    视觉构成: a3, 2024-05-23, 10d

    Section 发布
    发布及后续支持 :a4, 2024-06-01, 213d

    %% a2["原型完成"] : 开发初始版本的原型,确认功能并进行测试。