Send to the far-off 1999

去年之雪今何在?


The Unfinished: An ambiguous personality test

谢谢咕咕的美丽背景和美丽小人,谢谢了涵洛的精美洋文,谢谢兔美酱捏造的小女孩,谢谢阿行老师的封面,谢谢我哥和伊电脑里的ps,谢谢另一个哥还有王鸟给我洗的文本,也谢谢被我抓来看bug的路过女网友。写完已然不认识谢这个字呃。

是的,我们有一个游戏!

Name: The Unfinished

Gameplay: interactive visual novel

Mechanisms: book choosing+dialogue choosing

World design: cyberpunk

Plot: The game puts the player in the role of a bookshop staff, Yang. Yang loses his job, becomes homeless, and is saved by a bookstore owner, Horace. Through conversation with costumers, Yang needs to sell books according to their demand.

  • Daily life in a new and refreshing world
  • Political, philosophical and cultural reflections
  • Unique experience based on choosing
  • Atmosphere: tired, cosy, soft
  • Main gameplay :
    1. The player needs to listen to the customer’s needs and choose the right book;
    2. The player needs to communicate with the owner/customers. During this process, the player’s personality traits will be recorded. At the end of the game, the player will get a personality record interpretation.
  • About the immersive narrative in visual novel:
    1. Encouraging self-projection in the game;
    2. Going through the barrier between the game and the real world.

关于系统

关于选书系统

基本参考CoffeeTalk,意思是说:

  1. 剧情系统没有太多分支;
  2. 玩法系统的主要作用是调节叙事节奏,而非成功/失败判定(虽然确实有这个判定但它不影响任何事);
  3. 如果你喜欢CoffeeTalk的节奏,你可能会喜欢它;如果你不喜欢CoffeeTalk的节奏,你一定不会喜欢它。

主要玩法是为顾客挑选合适的书籍,具体交互是:顾客说出需求 ➡️ 玩家选择可能符合需求的tag ➡️ 玩家选择该tag下符合需求的书。

顾客的需求一般有两类,一类是明确的某一类书,譬如“一本关于历史地理的书,别太学术,实用点的”,那么任何一本符合条件的书都会判定合格;另一类则是模糊的、具有某种特征的书,需要结合剧情理解,譬如流亡诗人想要一本关于家乡的书,玩家需要猜测这个书到底属于哪一类,然后通过检索锁定带有诗人家乡名字的书;还有一些时候顾客的需求不固定,需要玩家来做决定,譬如傲慢的企业家打算送给朋友一本书作为礼物,到底是送他认为有用的,还是送朋友喜欢的?

选书的剧情反馈分为两类:一类是玩家成功找到了目标书籍,那么顾客会对于书籍进行简单的评价并表示感谢;一类是玩家选择了与需求毫无关系的书籍,顾客会淡淡失望,但也会收下;无论哪一类反馈都不影响后续剧情。

这样的设计让反馈变得相当模糊。也考虑过别的思路,要么引入一个va11那样的模拟经营系统,强调数值反馈;要么让不同的书籍对应强关联剧情,增强叙事反馈。但后者有点不符合调性,前者技术上则有点来不及……进行的补救措施是在游戏最后添加顾客满意度统计,给玩家展示下成功了多少次。感觉是一种,态度到了(。

关于对话系统

这个游戏的目标是营造日常感以让玩家自我投射,所以对话系统中有非常非常多的选择。选择分为两类,一类只关联短剧情,即角色会根据玩家选择给出不同台词,就像真正的闲聊那样;另一类关联最后的玩家性格统计,即根据这些选择计算出玩家是一个什么样的人。

关于图鉴系统

这里本来有一个图鉴收集系统因为打算做多周目,但很快意识到多周目用unity比较合理,而且当前的ui实在是……不太美观,所以暂时干掉,尽管程序都写了。只能说下次一定。

关于剧本

写这个剧本我最大的疑惑是为什么要写这么长的剧本? 刚才拉了一下excel,发现它大概有4w+的中文文本?所以为什么要写这么长的剧本? 因为我又在……用心怜爱。

整体思路

这个游戏本质是聊天模拟器。但和别的聊天模拟器不一样的是,希望玩家进行自我投射,带着自己的想法和角色有来有往地聊(……)这也是为什么红弦比我的另外两款爱抄好物更吸引死忠粉:它真的有在问你自己的看法呀?为此作出的叙事设计主要是:

  • 世界观设定:赛博朋克世界的日常生活,一个介于现实与虚构之间的异托邦。我经常会觉得既然high tech low life已经是当下生活的常态,那么赛博朋克其实也只是一种浓缩的当代生活。把背景放在具有赛博朋克特征下的粗放虚构空间,只提供要素(数据库、仿生人、寡头公司),而空白的逻辑由玩家自身的生活体验填满。
  • 主角设计:要让玩家自我投射,意味着avatar不能有清晰的特征;但这样的角色很难有精彩的台词。大多数游戏一般1将身份投射诉诸视觉设计(捏脸)而非剧情比如mmorpg;2允许玩家进行数值加点比如,呃,好吧极乐迪斯科不是这么用的,但总之。这里的设计是提供身份框架以推进剧情,同时鼓励玩家自行解读:主角的身份设定是失业前公务员,但玩家可以在对话中选择失业的原因,是无法忍受工作还是被炒了,是否讨厌自己的老板之类。
  • 角色及对话设计:角色设计比较日式,设计的时候标明:性格特征、探讨的话题、对话特征,帮助节约时间。玩家可以给角色提意见但角色不一定会照做,提什么意见和角色自己的观点也不一定会影响最后发生了什么,因为,that’s how real life works(好吧也因为我来不及写)。

萌萌角色

剧本结构是传统的写法,一个角色一个topic。因为其实没有什么剧情,而且都是需要掰扯的文戏,于是写的时候边思考边编,有一些发自内心的意外收获……我知道解释萌点和创作谈真的很无聊但真的忍不住。比如掰扯男同性恋掐架的时候真的思考了一下应该怎么尊重亲友,掰扯政治活动家的时候也地想了一秒前社会主义国家确实唯爱反腐。细想每一个角色都很萌,放一些萌萌瞬间:

  • 写一个崩溃社畜姐,快速思考了一周工作多少小时崩溃比较合理?看了一眼自己本周到周五已经工了50h,于是填了70h。结局社畜姐换了上司,兴高采烈地告诉主角自己现在只需要工60h了!
  • 社畜姐大崩溃,说为什么我的生活就像没有终点的赛跑一样?我得到的幸福那么少,但受到的痛苦却那么多……老板听了说:所以我们其实就是为了那么一点点的幸福在受苦。活着非但不是一种享受,简直是一种痛苦的功勋。我知道一个正常的好的状态是什么样的like老板应该和社畜说你不能在工了这么久的情况下责怪自己,或者这根本就是现代性的问题。但嗯我不会这么写的,你说的与事实不符(。
  • 写一个看星星的妹妹,在天文台工作,但是天文台要缩编,妹妹要滚蛋。你听了说那咋办,你这辈子毕业就没上过别的班,你连税都没自己退过!妹妹高高兴兴地说:没有关系!我喜欢天上的星星,并不意味着我害怕大地上的生活呀!而且妹妹会告诉你她生来就是要看星星的,因为她叫Chiyo千代,Chiyo means a thousand generations, or forever. It symbolises longevity and eternity.
  • 母语非英语的流亡诗人润了之后去书店被崇拜者遇到,崇拜者说你来买什么了不起的书!诗人说,词典。
  • 写政治活动家,姐之前做了一期关于内容审查的节目,主角看了说你做得好啊!姐说哦我现在不做这个转做高层腐败问题了,主角说?姐说因为无论做什么别的关于体制的问题都只有一点点人看,但做关于人的问题所有人都会看;而关于腐败的问题,更是无论什么立场的观众都会赞成。这个思路来自普京的反对派纳瓦里内,知道的时候觉得简单又天才(。
  • 一些没成功塞进去但想到就忍不住微笑的桥段:现充和诗人吵架因为现充逼他做审计拿身份,诗人深思熟虑之后说,我要回国!如果我们都抛弃了祖国,那祖国还会剩下什么呢!现充凝视他三秒问,你是不是就是不想学数学?我跟你说实话吧,每次你跟我说什么命运啊人啊,我都觉得你是不是在给自己找借口不学数学。

关于失败的项目管理

呃。写这个作业的过程原来就是认识我自己的过程!一开始我以为我的问题只是不会画画,很快我意识到我英语不行而且厌倦了写剧本,接着原来我拥有巨差无比的代码习惯,然后是我已经把学过一毛的数据处理全数忘掉,最后是,我的审美。

时间管理

前后做了三版timeline,理想版脚踏实地版补丁版,最后用到的是绝地求生版(……)虽然前面有各种问题但都连滚带爬地搞定了,最糟糕的是我对写程序有错误的自信,原本预计3小时能解决的bug最后我花了3天。

做得比较好的是一个月之前就敲定了框架并且开始找resources,留了缓冲时间量。

流程控制

整体流程是:提需求 ➡️ 制作 ➡️ 验收 ➡️ 修改 ➡️ 定稿。然后得到的教训是:

  • 写需求注意标注完整的输出格式,避免返工
  • 把素材放到游戏里验收,不要急着定稿
  • 资源管理注意区分版本,多终端作业的情况下要把资源存储在云端方便版本同步
  • 越早开始越好(呃

【如果还能修改我会】

  • 优化选书的交互。目前交互烂得我自己也不太想看也不愿细想。
  • 优化ui。呃呵呵。
  • 给最后的personality test还有客户满意度做单独的展示界面。
  • 优化选书的剧情逻辑。目前选书的剧情逻辑和分支是StrangeHorticultures + CoffeeTalk的折中,前者的选择是精确的逻辑判定(通过图鉴描述+道具外观对应完成),后者需要一些随机性。如果重做的话会考虑重画图书封面、更改图书描述,在这里做一点轻量的解密(肯定会非常轻量,不影响主线剧情体验)。
  • 扩充剧本,做多周目的分支设定,把图鉴系统加回来。
  • 加入更多程序上的meta元素。目前剧本里有一点点伪meta,比如结尾老板跟你说我观察你很久了你经常很久都不说一句话,或者你有的时候会无视顾客的需求乱来,但你讲话又很优雅有礼貌,我怀疑你对顾客有点虚情假意。这里显然应该插一个接口判定谁开着游戏挂机了谁狂点鼠标skip角色对话了。

Timeline+精神状态大赏

01/26 :下个月作业要做新的游戏,淡淡地烦,我很可能需要自己想办法解决所有的程序美术……然而事实上我完全不知道这大概是什么工作量(一个带点模拟经营元素的文字冒险游戏),我有可能从零开始速成或者从哪里找一个外包来解决吗?

02/12:思考一些关于机制的问题:为什么需要运用物理引擎的交互设计而不是简单鼠标点点; 为什么需要没有数值反馈的自由设计(参考宇宙之轮的卡牌制造); 交互层级是怎么设计的。

02/16:写完美术需求。

02/16:开始抓画手画道具+角色立绘。

02/18:思考了两天决定把物理引擎拖拽去掉因为我可能不会写……好在去掉物理引擎和自由组合只是把embodiment的部分去掉了,还是可以继续起到调整叙事节奏的作用;但是在此基础上还是希望保持对于自由选择的强调,大概只能体现在剧情和剧本上了,进行一些ambiguous narrative。

02/20:写完了storyline。

02/24:写完ui和ue需求,开始做ui。

02/27:开始研究怎么写新界面。

02/28:我每天开始写作业之前都觉得自己特别像一个卖保健品的,跟自己说:加油!我们中国人有一句古话说事在人为为者终成,只要你别再大喊你写不完了你就一定能写完。

02/29:写程序挺好玩的啊我是说,如果它错了,那我就会知道它错了;如果我不知道,那它就是没错。

02/29:老天爷在我决定不做拖拽系统之后我发现它原来这么好做,但算了,下次一定。

03/01:切ui,改ui,再这么下去我将真的会学会画画。

03/03:我在这里写这个大剧本没有一个人给我打钱而且本质是我花钱让别人检阅我的大剧本,想到这里我淡淡地浓浓地急了。真的开始拉磨才意识到这个剧本是多大的工作量。其实文本量未必大,但要考虑的限制实在太多,我两行一卡顿三行一沉吟……

03/05:I cannot imagine the possibility of finishing it on time nor can I imagine the outcome of not finishing it on time,,,,,,,,,

03/06:看了一天projection感觉思路有点窄,可以抛开projective identity这个概念直接写simulation,modern video games can illuminate the nature of human thinking and problem solving as situated and embodied(但是直接抄一点认知心理学,让符号学滚)。我确实是这么想的但这好像已经,跨学科注水大作?

03/08:这个剧本最大的问题在于我其实不确定到底是要怎样?写一些值得玩家爱上的角色吗?还是只要把我的这许多对话信息塞完就好?

03/10:写的时候反复参考va11还有coffee talk,一边参考一边忧愁要是写出来和这俩一模一样咋办?事实证明不会的,因为我总是忍不住见这么一下。

03/11:從女朋友家裡滾蛋之後的三週,沒有一週上工時間短於45h的;但鍋還是沒做完且迫在眉睫。感覺這已經不是拖延不拖延的問題,是我個人的能力真的就到這裡了。like如果我能永遠按今天的效率工作或許我兩週就能解決一切,但how can i?但難道就能說之前三週我都在磨洋工嗎,我真的在不斷壓迫自己的腦子呀?

03/12:我切了一整天的ui?可是为什么,这里是不是有什么流程上的问题可以优化?我想学怎么设计ui,也不是,就是看起来ui是一个审美大于技术的东西,我想有点审美。

03/13:我已经写了2w但为什么看起来我还有2w(茫然)我为什么要给一个课程作业写4w字(茫然)我找工作的时候都没写过4w(茫然)集美当年要是有这个拉4w字磨的精神何愁不能踩上行业风口的尾巴呀。

03/14:感觉我是一个萌萌的弱智,发现引擎对gif的支持很差之后我开始研究怎么用转场工具做加载动画,研究出来之后我发现它其实有自带的动画接口,一帧一帧导入就可以了(呃

03/15:早上起来第一件事吭哧吭哧修了一小时ui,下课聊的时候老师问你有什么感受?我心情1不用的资源及时删,2不要在两个终端保存内容因为内容会自己增殖成ver.1/ver.12/ver.125,3,所有输出格式需求加粗标红大写。

03/15:陈一楼你不要再用心写剧本了,用手和脑子写可以吗。

03/16:唉他妈的又起来编造剧本了,因为已经在收尾,我想写/写起来稍微轻松一点的部分都结束了,剩下的就是如何用尽量少的字数把这个他妈的框架填完。我当然知道我可以随便填填因为大概率不会有人认真看但,好吧我又在用真心写作业了!

03/17:crying in the sofa is an important part of the process cuz we cry a lot when trying to make it…… I mean we just stay here, stay for suffer😇😇😇😇😇😇😇😇😇😇😇😇😇

03/18:下辈子我要用unity,unity不会告诉我我们不支持这个。我的能力真的就到这里了,人生中第一次写五十行以上的代码居然是写两百行以上的代码这件事你有什么头绪吗陈一楼。

03/18:因为这里没有现成接口设置文本最大宽度,我又怕自己写一个写错了导致全场灵车漂移,只好隐忍地手动输入一个个换行符号。嘲笑古法炼钢,理解古法炼钢,成为古法炼钢。

03/19:在知道写不完的情况下边写边大哭了一个小时(本周常态),然后简单思考一秒,想到x年后我看今天也就约等于中学期中考试数学大题一道不会,算了,倒也没什么,问题不大。

03/21:锁定了一下,界面问题应该出在call label和return上,之前用jump写是错的。

03/22:找认识的老哥帮忙看发生什么事了,老哥面色凝重地说他真的不能理解我每一行到底在写什么而且也不熟这个工具所以无从改起建议重写,重写是快的。呃。但我觉得我还挺了不起的我只是,嗯有点,不太行。

03/23:搭好了全部框架准备好了全部格式正确的剧本准备填充,还剩下两个巨大bug解决不了,但算了,明天再努力一天扒别人的源码看看,努力不出来就算了,反正我已顿悟事情能不能解决和我花多少时间实在是没有一毛关系。破罐子破摔看了三集王后伞下。边看边:等一下我能不能用真正的土法炼钢解决这个问题,我是说我不引用任何函数,而是在每次需要函数的地方复制黏贴39个elif?

03/24:世界上最快乐的事就是怀疑自己写出来了然后轻轻写了一下发现真的写出来了?ChatGPT给我写了五十行我吭哧吭哧看了三天没懂,答案竟然藏在一年前的python data structure笔记中?特别难的部分都解决了,除了一组变量仍然在装死,剩下来的就是讲究一个胆大心细(which is 更难for me