從六個(gè)步驟設(shè)定談?dòng)螒蚧?dòng)文本的編撰問(wèn)題
寫#p#難。
last_monster_master(from gamasutra)
如果你擅于辭令的話自然是極好的。如此你便能夠輕松地創(chuàng)造出由3個(gè)不同的角色在4種不同的情境下所說(shuō)出的不同話。通常情況下,編寫非線性文本游戲?qū)υ捄蛿⑹鰞?nèi)容是在約束,創(chuàng)造性再利用以及確信等條件下的有效實(shí)踐。
假設(shè)你為一款基于文本的游戲列出了提綱。你知道游戲主題,主角,每個(gè)章節(jié)所發(fā)生的的主要事件,玩家的能力等等。那么現(xiàn)在你便可以開(kāi)始進(jìn)行編寫—-但是你卻難以邁出這一步。你該如何編寫一個(gè)任何事情都有可能發(fā)生的故事?你該如何設(shè)定玩家的選擇?你該從哪里下手?
最近我面向Choice of Games發(fā)行了我的首款未刪節(jié)文本游戲《The Last Monster Master》(共有25萬(wàn)個(gè)單詞?。?,并且在這個(gè)過(guò)程中我想到了一個(gè)能夠幫助人們一章一章編寫游戲的基本框架。在將最后文本帶到ChoiceScript(游戲邦注:Choice of Games自己的腳本語(yǔ)言)前,我使用了Chat Mapper(免費(fèi))去編寫每個(gè)非線性章節(jié)。
我將這個(gè)過(guò)程分解為了6個(gè)部分去完成每個(gè)章節(jié),這能幫助我保持注意力。此外,Chat Mapper還擁有一個(gè)能讓你改變每個(gè)文本節(jié)點(diǎn)顏色的功能。這能夠讓你追蹤每個(gè)文本,并且我還使用這一功能去改變每個(gè)節(jié)點(diǎn)顏色以標(biāo)記完成的內(nèi)容。
第一道—-存根文本(沒(méi)有顏色)
第一道是關(guān)于為章節(jié)制定結(jié)構(gòu)。比起編寫實(shí)際的對(duì)話或描寫,我們可以使用占位符作為存根對(duì)話去預(yù)示誰(shuí)將說(shuō)話,何時(shí)會(huì)說(shuō)話以及玩家的選擇會(huì)是什么。
如果基于統(tǒng)計(jì)值以及其它條件會(huì)出現(xiàn)不同分支,那就指出有問(wèn)題的統(tǒng)計(jì)值并清楚地描述選擇內(nèi)容。這時(shí)候你還不用擔(dān)心去編寫任何游戲邏輯,這是之后要做的事。
避免在這一道中進(jìn)行過(guò)多的修改—-主要目的是為了將高級(jí)的章節(jié)結(jié)構(gòu)分解成可讀格式。當(dāng)你完成這一任務(wù)時(shí),你便能夠初步明確接下來(lái)所有內(nèi)容的路標(biāo)。
在以下來(lái)自《The Last Monster Master》的序列中,玩家的一個(gè)怪物在進(jìn)攻的時(shí)候陷進(jìn)一棵樹中。玩家必須選擇使用心靈感應(yīng)或字體語(yǔ)言檢測(cè)技能去幫助怪物抵御進(jìn)攻或逃出去。
stub_text(from gamasutra)
第二道—-修改存根文本(黃色)
在下一道中你應(yīng)該只專注于你剛剛創(chuàng)造的結(jié)構(gòu)。你正在著眼于內(nèi)容的設(shè)置—-不要擔(dān)心拼寫錯(cuò)誤或任何與文本相關(guān)的內(nèi)容,因?yàn)樵谛薷倪^(guò)程中你所編寫的所有內(nèi)容都會(huì)被替換掉。
你主要是在尋找無(wú)意義或者與故事或邊界情況不符,并且有可能在之后引出問(wèn)題的選擇或選擇分支。
其次,你正在確保到目前為止所設(shè)置的結(jié)構(gòu)是使用你計(jì)劃在這一章節(jié)中使用的所有玩家統(tǒng)計(jì)或能力選擇。如果最終證明你并未執(zhí)行你想執(zhí)行的內(nèi)容,那么你便需要做出一個(gè)明智的決定去修改最初的計(jì)劃,創(chuàng)造使用這些統(tǒng)計(jì)的全新序列或選擇,或者通過(guò)標(biāo)注在未來(lái)章節(jié)使用那些被遺漏的統(tǒng)計(jì)。
第三道—-第一道文本(橙色)
基于有組織且經(jīng)過(guò)完善的結(jié)構(gòu),現(xiàn)在是時(shí)候編寫玩家能夠看到的真正文本了。這是非常直接的一道,但與之前一樣,你應(yīng)該保持注意力。
不要擔(dān)心為變量,結(jié)構(gòu)轉(zhuǎn)換或任何單純編寫內(nèi)容設(shè)定數(shù)值。與大多數(shù)單純編寫內(nèi)容一樣,這是最有趣也是最消耗時(shí)間的一部分。
first_text_pass(from gamasutra)
第四道—-修改文本(紫色)
你是否曾經(jīng)編寫過(guò)真正的章節(jié)?現(xiàn)在事情的發(fā)展變得更加迅速了。你將進(jìn)入編輯模式。
在閱讀第一道文本時(shí)你會(huì)發(fā)現(xiàn)自己在編寫時(shí)并不帶任何感情色彩。所有與文本相關(guān)的內(nèi)容都是關(guān)于游戲—-拼寫,語(yǔ)法,對(duì)于角色或地點(diǎn)的錯(cuò)誤引用,更嚴(yán)格的詞匯選擇等等。再一次地,你應(yīng)該專注于編寫。創(chuàng)造出生動(dòng)的文本內(nèi)容。
第五道—-變量(藍(lán)色)
結(jié)構(gòu)已經(jīng)明確文本也很緊湊?,F(xiàn)在我們將再次檢查章節(jié)并尋找任何可能出現(xiàn)變量的情況,特別為了決定結(jié)果而修改或引用玩家統(tǒng)計(jì)的地方。有可能對(duì)于特定玩家道具或一次性遭遇你將只能找到少量的例子。
你將在之后的修改,游戲玩法平衡以及測(cè)試中完善這里所使用的數(shù)值。而現(xiàn)在,你將在你認(rèn)為數(shù)值需要出現(xiàn)的地方畫一條線。
為每個(gè)章節(jié)所需要的特定統(tǒng)計(jì)創(chuàng)造一份外部引用文件。例如,如果玩家的力量統(tǒng)計(jì)至少達(dá)到45他們才能在章節(jié)4踢倒一扇木門,那么在章節(jié)6要求玩家擁有65個(gè)力量才能踢倒一扇金屬門便是符合邏輯的。
在特定的道中執(zhí)行這一做法將能夠確保統(tǒng)計(jì)的內(nèi)部一致性,這也將進(jìn)一步調(diào)整之后的數(shù)值。
variable_pass(from gamasutra)
第六道—-輸出和邏輯(綠色)
最后,你需要將已經(jīng)完成的章節(jié)帶到你創(chuàng)造游戲所使用的開(kāi)發(fā)工具中。幸運(yùn)的是,Chat Mapper能夠輸出XML,JSON,Excel,和Rich Text等格式,如此便為你提供了更多選擇。對(duì)于《The Last Monster Master》,我只審查了每個(gè)文本節(jié)點(diǎn)并將其復(fù)制到我的ChoiceScript文件中,并為格式化以及部分轉(zhuǎn)換進(jìn)行調(diào)整。
如果你也是自己編寫幕后的真正邏輯,你便需要在將文本帶到游戲時(shí)開(kāi)始編寫腳本內(nèi)容。幸運(yùn)的是,因?yàn)槟阋呀?jīng)解決了何時(shí)以及在哪里發(fā)生的問(wèn)題,所以每個(gè)腳本任務(wù)將從內(nèi)容中輕松地脫離出來(lái)。
其它方法
這并不是編寫非線性文本游戲的唯一方法,但卻非常適合這一項(xiàng)目。根據(jù)你的開(kāi)發(fā)類型以及所使用的工具,你可以選擇將存根文本較早輸入游戲中,如此你便可以盡快執(zhí)行了。此外,因?yàn)镃hat Mapper支持Lua,那么只要你不介意再次在開(kāi)發(fā)環(huán)境中編寫所有內(nèi)容的腳本,你便可以直接在程序中設(shè)置所有需要的邏輯。
不管你選擇怎樣的過(guò)程,你都應(yīng)該一次只專注于一項(xiàng)任務(wù),慶祝每一次的成功并記下你需要完善的內(nèi)容。爭(zhēng)辯非線性敘述并非一個(gè)瑣碎的任務(wù)—-所以你何不從中創(chuàng)造一款真正的游戲?