老万故事会

老万> 程序员小说写作流程

刚刚完成一篇中篇科幻小说《二〇八四》。这是我写完的小说中篇幅最长,结构最复杂的一篇。按照我做工程师的习惯,每个项目结束后要复盘,不管是经验还是教训都总结一下,下次才能进步。

我是个程序员,写小说是野生爱好,没有拜过师,也不知道路子对不对。但我觉得写小说跟写软件是相通的,都是从无到有构建出一个逻辑(基本)自洽的系统,都要讲究可读性。所以我把写软件的一些做法搬到了写小说上,感觉好像还可以。今天我就总结一下自己的工作流程,有志成为刘慈欣第二的同学可以参考,有闲的文学家看了不忿也欢迎指点。

怎样用AI

俗话说:三天不学习,赶不上GPT。今天还不主动使用 AI 的人危险了,你们很快就会遭到 AI 用户的降维打击。

作为写字爱好者,我自然很关心如何用 AI 提升我的写字技艺。

用 AI 辅助写小说有很多不同的玩法,因为写小说不是一个简单的活动,而是由几个完全不同的活动组成。

比如情节构思算一个,它的结果是写作大纲;把提纲扩充成具体的文字又算一个;根据稿子提出修改意见也算一个;最后,根据修改意见完成修改再算一个。所以,写小说至少涉及到四种不同性质的工作:创意、呈现、点评、编辑。理论上说,我们可以让 AI 帮助我们做这四件事中的任意一种或几种。

在写《二〇八四》时,我只选择了让 AI 给我提修改意见。其它三个活动我则完全避开了 AI。这是我刻意的,理由如下:

首先,对我来说,情节构思是写小说中最费脑力也是最有乐趣的步骤,能带给我很大的成就感。开发软件时,不能上来就写代码,你得先有个设计:这个软件要解决哪些问题,为此需要实现哪些功能,用户体验应该怎样,如何做到逻辑自洽,这些问题要先想好。同样,写小说时,你得想好要用小说传递一个什么想法,为此需要引入哪些人物,哪些情节对这个目标有帮助,哪些情节应该砍掉,语言风格应该怎样,如何让故事有基本的可信度而不是依赖于过度的巧合和反逻辑的行为。

这是一个烧脑的过程。当我们排除万难创造出一个符合角色性格发展和行为逻辑又引人入胜的故事时,我们会觉得非常有成就感。这是一种从0到1的感觉。我没有创过业,但我想这感觉应该类似于迷你版的创业。

我写作的目的是提高自己的表达技巧,同时从中获得最大的乐趣,所以不能把这一步留给 AI。好比一个喜欢画画的人,你让他用 AI 文生图,那就夺走他做这件事情的乐趣了。

我也没有让 AI 做呈现工作。除了要锻炼语感和享受过程之外,还有一个重要原因是 AI 的文学创作能力离优秀的人类作家还是差很远,比如很难保证长篇幅小说的前后一致性,语言风格也很难精确控制。关于这一点,请看我的文章《哪个 AI 最懂文学?我推荐国货》。

我不反对用 AI 帮助写八股文和技术报告。但对于文学创作,我还是希望能够亲力亲为。当你通过反复推敲把字句组合成自己希望的模式时,这种成就感是无与伦比的。其实任何一件能让人上瘾的事情都是苦中有乐乐中有苦的,一样东西要是只有甜味就太让人腻味了。

最后,让 AI 修改小说也有类似的问题。它改出来的东西过不了我这一关,反而经常把我喜欢的文字改坏了。我还是觉得自己手工打磨出来的东西比较顺滑。

阅读

写好小说的第一步是大量的优质阅读。你总得先知道什么是好的才能写得出好的东西来。要是你从小读的都是震惊体或者是老干体的文字,那么不太可能会写得出传世之作----除非你是百年不遇的天才,可以从没有路的地方硬趟出一条路来。

对我们大多数文学爱好者来说,写作都有一个学习过程。通过大量阅读自己喜爱的文字,揣摩这些作品的遣词造句方式,搞清楚它们为什么让自己喜爱,才能形成对优秀文字的感觉,然后在自己的写作中努力复刻出这些表达方式。

所以,在动笔写《二〇八四》前,我又温习了《一九八四》这部小说。这次我看的是董乐山先生翻译的版本。董先生出生于民国年间,毕业于上海圣约翰大学,文字功力深厚。我在《二〇八四》中尽力延续董先生的风格,好和《一九八四》保持一定的连续性。然而受个人水平所限,很多时候力不从心不如人意。但是有一个标准在前面成为自己追求的目绝对好过完全没有何指引。

构思

促使我写《二〇八四》的动机是我做的一个梦----没错,类似于小说中主角西奥多·史密斯在开篇做的那个梦。我梦见回到了小时候住的公寓楼,我住在六楼,但是从五楼上去之后发现却是七楼。我以为自己进错了楼,下楼后换了一栋楼,然后我发现这个楼里面我的家里只剩残垣断壁,父母、家具都不见了。醒了之后,我觉得这个梦有点意思,就想把它扩充成一个故事。

一开始的想法是政府为了提升效率,要将大家记忆里的老建筑给拆掉,腾出更大的空间,用在更有价值的地方。那么为什么政府会让大家忘掉这栋建筑呢?一定是有什么阴谋。现在故事开始好玩了。

我把故事设定选在了奥威尔的小说《一九八四》里的大洋国,以免某些读者产生一些不健康的联想。

有了一个好点子,就有了成为一个好故事的基础。但光有一个点子是不够的,还得给它添枝加叶,让故事丰满起来。

刚开始写小说的文学爱好者(包括我)常犯一个错误:人物的行动缺乏足够的动机,看起来像是作者手中的提线木偶。如果一个书中人物做一件事不是因为他为了达到自己的目的非做不可,而是作者想要他做,那这本书就离开了文学的范畴,进入了文字垃圾的境界。

为了让人物的行为有合理、使读者信服的动机,我又引入了一些背景故事和辅助人物。比如:西奥多为什么要推翻老大哥?光有一个抽象的对自由的向往是不够的。如果我们让读者看到他这么做是想要保护一个他关心的人----他的妹妹,故事就更可信了。接下来我们就该引入主人翁的对立面伊文斯了——有具体的对手才会有具体的冲突,光是抽象的对抗不容易出精彩的戏。

有了几个主要人物后,接下来我就开始写每个人物的小传,设计他们之间的故事。这一步的难点在于情节要有基本的可信性,故事的发展要符合人物的性格。

当然,科幻小说不是完全现实的,没有必要做到逻辑上没有任何瑕疵。我觉得只要没有大的漏洞就可以了。很多经典作品,比如《三体》、《黑客帝国》,仔细看都是有 bug 的,但这不影响它们成为经典。设计出一个完全没有任何 bug 的故事实在太难了,而且可能要以牺牲精彩程度为代价----这就不值得了。当然,大 bug 还是要避免的。

为了防止情节上的大 bug,我写了一个 FAQ(常见问题解答),保证在下面这些关键问题上能自圆其说:

伊文斯如何发现西奥多有问题?西奥多被捕后伊文斯想从他那里获得什么?为什么伊文斯还没有从其它渠道掌握他想从西奥多那里获得的情报?西奥多用肌肉记忆记录什么信息?这信息对老大哥有何威胁?为什么这信息能让人民造反?为什么不用西奥治话代替肌肉记忆?伊文斯为何要杀死西奥多?杀死他不就无法获知逻辑后门在哪里了吗?

这是一个比较费时间的过程:情节太简单了故事就不好看,情节复杂了就容易出漏洞,而且太复杂了对读者也是一种折磨。我把故事的结构来来回回写了几个版本,最后决定使用的版本是一个折衷,它既不是我设计过的最复杂的版本,也不是最简单的。我的目的是对读者有一点挑战性,但也不要太多,让大家能够获得阅读的乐趣,而不是纯粹被虐的感觉。

人物视角

这篇小说我决定采用多重视角的写作方式,类似于《冰与火之歌》。这个选择出于以下几点考虑:

这个故事比较复杂,有几个点子涉及计算机科学,如果用单一视角的写作方式(比如《一九八四》基本上全篇都是基于温斯顿·史密斯的视角)会受到很大的局限,复杂的地方不容易解释清楚。上帝视角可以解决这个问题,但我个人很不喜欢上帝视角,因为我觉得那是一种很 low 的写法,相当于作弊。打开上帝视角后,浓郁的《知音》味扑面而来,张三李四轮番表白,很是让人出戏。

多重视角是比较好的折衷,它既可以给主要角色轮流上场的机会,让我们了解他/她们的内心想法,又避免了作者滥用这种权力。要注意:同一个场景里面只能有一个人物有内心戏,其他人都不能有,因为有了就会让人出戏,又回到了上帝视角的感觉。

这是我第一次用这种方式写作,也是对自己的一个锻炼。大家可能注意到了,《二〇八四》每节的标题就是这一节的视点人物。

有个有趣的插曲:写好第一稿之后,我试着把每个章节都改成了第一人称,也就是把视点人物替换成“我”这个人称代词。这个练习帮助我发现了几处不小心跳出了该人物视角的地方,比如有的地方出现了其他人的内心戏,或者是描写了视点人物看不到的事物。这些都是 bug,我写第一遍的时候没有觉察到,但是当我把视点人物换成“我”时这些问题就变得非常明显了。所以我觉得这个练习是帮助我们清除视角一致性 bug 的好法子。

但是,最后我还是决定把第一人称改回第三人称,因为多重视角结合第一人称太容易引起读者困惑了。要是读者阅读时候不仔细,或是在听书时走了一会儿神,就会觉得莫名其妙,不清楚这个“我”到底是谁,阅读体验就会很差。我发现这样不光是让人类读者无所适从,甚至把 AI 都搞糊涂了。

呈现

我没有等到故事情节完全敲定才开始写作。我发现,当构思到了一定程度,如果不写一些具体内容的话,就很难把自己带入到某个场景中去设想人物的行为。所以,一旦我对故事框架有了一个大体想法,我就开始写其中一些场景,在写作过程中同时去扩充打磨故事大纲。

我的写作不是线性的,不是按故事大纲从头写到尾,而是根据心情选择一个最想写的场景先写出来,把暂时不想写的部分留到后面。这样确保自己能够不断进展,而不是被卡在一个地方。

版本管理

写中长篇小说一定要有一个好的版本管理系统,因为经常写着写着发现想尝试一种写法不行再改回来。如果只保留最新版本,改回去这个操作就很麻烦。

当然,用 Word 或者 Google Docs 写也可以保存历史版本,但是实际使用中不是很方便,而且没有一个明显的提交版本的动作,这样就没有仪式感,让人不知道什么时候算是一个里程碑。

我的做法是上 github 开了一个私有 repo(这样的话别人看不见),然后用 Markdown 格式写小说。Markdown 的好处是格式简单,强迫我们不把时间浪费在排版上。

用 github 的好处是每个版本跟上一个提交的版本之间的区别可以通过 GitHub Desktop 之类的软件很明显地看出来,确保这次修改确实是自己想要的,不会不小心改错了。还有,github 的提交、发布操作促使我有意识地把写作工作拆分成一个个小任务,每次完成一个小任务我就提交一次。这种节奏感让人非常满足。比如其中的一个小任务可能是我对主人公的姓名不满意想换一个新名字,也可能是将提纲中的某句话扩充成一个完整的段落。

不要小看这一点点流程上的区别。这种完成任务的机制能带给作者及时的满足,增强写作的幸福感。

基本定稿之后,把 Markdown 格式的小说复制粘贴到微信公众号编辑器里进行最后的微调,这时就不用每个改动都先在 github 上完成了。

录入

中文输入跟英文不一样,大多数人用的拼音输入法都要选字,不能盲打。对我们四川人来说,普通话不标准也会给输入造成很大困扰。结果就是文字的录入过程经常打断思路。

我的做法是等脑子里有了大概的构思后口述完成第一遍写作。一般的手机、平板电脑、或者笔记本电脑都有这个听写功能。这样一来思路就不会因为输入法的选字过程被打断了。等自己想说的说得差不多了,再用键盘编辑改正听写中的错别字和口误。

自己手动改错别字是一个很低效的过程,所以我会把这些工作交给 AI,让它先帮忙整理通顺,我再手动改就容易多了。比如我给 Gemini 的提示词是:

“下面这些文字是我语音输入的结果,有不少错别字和识别错误。请把它整理成正确的文字。”

点评

我将自己正在写的小说草稿导入到谷歌的 notebook LM 产品。AI 会马上产生一个概要,还有一个类似于电台节目的语音总结。听着两个主持人对自己的草稿一阵彩虹屁输出,确实给我增加了不少信心。另外我还就这篇文章的写作风格和故事结构等提出了一些比较高端的问题,让 AI 给我提意见。

什么是高端的问题?就是不拘泥于文字细节的润色,而是着眼于大局的问题。比如:这部小说的阅读难度如何?如何能把它改得更吸引人和更有娱乐性?如何更改故事线让它更让读者满足?如何让这个故事更适合于改编成电影?这部小说使用的多重视角写作手法是有益还是有害?你是否会建议修改叙事顺序?小说有哪些逻辑 bug 或者不一致的地方?如何让结尾像《乱世佳人》一样给人印象深刻?哪些地方可以插入一些金句?

这类问题要求 AI 有高级的理解力。Gemini 确实很赞,像一个文学评论家马上给我提出了相当多中肯的意见,听得我频频点头,击节赞叹。唯一的缺点是它太负责了,我本来以为它就每个问题只会讲两三点,结果AI 卷死了,每次都是十条意见起步,说得还很在理。经它一分析,需要改进的地方实在太多了。要是我全部实现,还需要扩充各种细节和背景故事。这样原本打算三万字收尾的中短篇小说就会变成十万字的中长篇,依我的经验又该难产了,而且读者也没耐心看。所以,最后我改到觉得能过自己这一关了就放出来,毕竟不完美的作品好过没有人读的作品。

~~~~~~~~~~

猜你会喜欢:

科幻小说《二〇八四》

科幻小说《暗恋》

言情小说《美乐火锅店》

讽刺小说《我从NB公司技术带头人的位置上离职》

老万《从0开始学chatGPT》系列:

~~~~~~~~~~

关注老万故事会公众号:

本公众号不开赞赏不放广告。如果喜欢这篇文章,欢迎点赞、在看、转发。谢谢大家🙏