老萬>程式設計師小說寫作流程

剛剛完成一篇中篇科幻小說《二〇八四》。這是我寫完的小說中篇幅最長,結構最複雜的一篇。按照我做工程師的習慣,每個專案結束後要覆盤,不管是經驗還是教訓都總結一下,下次才能進步。
我是個程式設計師,寫小說是野生愛好,沒有拜過師,也不知道路子對不對。但我覺得寫小說跟寫軟體是相通的,都是從無到有構建出一個邏輯(基本)自洽的系統,都要講究可讀性。所以我把寫軟體的一些做法搬到了寫小說上,感覺好像還可以。今天我就總結一下自己的工作流程,有志成為劉慈欣第二的同學可以參考,有閒的文學家看了不忿也歡迎指點。

怎樣用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 卷死了,每次都是十條意見起步,說得還很在理。經它一分析,需要改進的地方實在太多了。要是我全部實現,還需要擴充各種細節和背景故事。這樣原本打算三萬字收尾的中短篇小說就會變成十萬字的中長篇,依我的經驗又該難產了,而且讀者也沒耐心看。所以,最後我改到覺得能過自己這一關了就放出來,畢竟不完美的作品好過沒有人讀的作品。
~~~~~~~~~~
猜你會喜歡:
科幻小說《二〇八四》
科幻小說《暗戀》
老萬《從0開始學chatGPT》系列:
~~~~~~~~~~
關注老萬故事會公眾號:
本公眾號不開讚賞不放廣告。如果喜歡這篇文章,歡迎點贊、在看、轉發。謝謝大家🙏


相關文章