国产xxxxx在线观看_无码A片免费视频完整版_亚洲国产美女精品久久久久∴_最近2019年中文字幕免费下载_色欲网天天无码AV日韩

首頁(yè) 資訊 財(cái)經(jīng) 公益 彩店 奇聞 速遞 體育 提點(diǎn) 資訊 綜合 企業(yè) 市場(chǎng)

首頁(yè)
你現(xiàn)在的位置:

雜談——語(yǔ)涵編譯器是什么?

2023-08-05 16:08:10    來(lái)源:嗶哩嗶哩    作者:

語(yǔ)涵編譯器是一個(gè)輔助視覺小說(shuō)制作的程序,閱讀本文前需要您對(duì)視覺小說(shuō)或者說(shuō)文字類冒險(xiǎn)游戲有所了解,推薦至少游玩過(guò)一篇作品。

您可能對(duì)該項(xiàng)目有如下問(wèn)題:

為什么要做語(yǔ)涵編譯器,這個(gè)項(xiàng)目要解決什么問(wèn)題?


(資料圖片僅供參考)

為什么要再創(chuàng)造一種劇本格式?

現(xiàn)在不是已經(jīng)有從 Excel 生成 RenPy 劇本的程序了嗎?和其他程序比,語(yǔ)涵編譯器有什么區(qū)別?

語(yǔ)涵編譯器的名稱是怎么來(lái)的?

語(yǔ)涵編譯器項(xiàng)目后續(xù)有什么計(jì)劃?

希望本文能夠解答這些疑問(wèn)。

背景

視覺小說(shuō)引擎是什么?

視覺小說(shuō)引擎(如 RenPy)是視覺小說(shuō)游戲可以共用的程序框架。打個(gè)比方,各個(gè)視覺小說(shuō)游戲就像一輛滿載的貨車,這一輛貨車?yán)氖悄静模且惠v貨車?yán)氖强爝f。雖然他們是不同的貨車,但是如果我們把貨物卸下,去掉各異的車身噴漆,可能會(huì)發(fā)現(xiàn)他們有相同的貨車車型。貨物就相對(duì)于各個(gè)游戲的劇本和素材,貨車車型相對(duì)于引擎。就比如要增運(yùn)貨物時(shí)不需要從頭設(shè)計(jì)貨車,而是使用現(xiàn)成的貨車,加上貨物就可以運(yùn)貨,游戲制作者可以使用現(xiàn)有的游戲引擎,加上自己的素材和內(nèi)容之后就可以做游戲。

引擎腳本是什么?什么是錄入?

程序員通常使用“腳本”來(lái)指代“寫給程序的代碼片段”,不是寫給人看的、寫給另一個(gè)程序去執(zhí)行的統(tǒng)統(tǒng)叫腳本。視覺小說(shuō)引擎的腳本就是游戲制作者寫給引擎的“說(shuō)明書”,在游戲運(yùn)行時(shí),引擎會(huì)根據(jù)這個(gè)“說(shuō)明書”里的內(nèi)容將文字和素材呈現(xiàn)給玩家。

制作者準(zhǔn)備素材和劇情時(shí),這些內(nèi)容的格式必須滿足引擎的要求才能正常運(yùn)行。引擎腳本也需要按照引擎的要求(或者說(shuō)“語(yǔ)法”)來(lái)編寫。這實(shí)際上對(duì)腳本編寫者有編程能力上的要求。

由于劇情需要寫到引擎腳本里面,我們把劇情從原來(lái)的劇本改寫為引擎腳本的形式這一步叫做錄入。

讓我們進(jìn)入正題——

1. 為什么要做語(yǔ)涵編譯器?

2019年時(shí),筆者游玩了國(guó)產(chǎn) GalGame 《某一種青春》(以下簡(jiǎn)稱《某青》),當(dāng)時(shí)正好碰上心情低谷,深受感動(dòng),從此入坑國(guó)G。筆者找到了《某青》作者長(zhǎng)水老師在奶牛關(guān)上寫的制作歷程的文章,注意到當(dāng)時(shí)作者在將劇本錄入到游戲引擎(面包引擎)時(shí)沒有使用程序,而是完全手動(dòng),整個(gè)過(guò)程費(fèi)時(shí)費(fèi)力,所以計(jì)算機(jī)背景的筆者決定利用空閑和摸魚時(shí)間做一個(gè)程序?qū)⑦@類劇本錄入工作自動(dòng)化。

語(yǔ)涵編譯器是這個(gè)項(xiàng)目的第三版設(shè)計(jì),第一版2019年10月做了一個(gè)月之后就做不下去了,第二版2019年11月開始,做到2021年年中時(shí)宣告失敗。這個(gè)第三版是2021年10月、11月開始的,“語(yǔ)涵編譯器”這個(gè)名字是2022年年底才起的。隨著設(shè)計(jì)不斷更迭、功能不斷完善,想“順帶”解決的問(wèn)題也越來(lái)越多,不過(guò)不管功能、設(shè)計(jì)怎么改,將劇本錄入自動(dòng)化這個(gè)初心一直在。

2. 這個(gè)項(xiàng)目解決什么問(wèn)題?為什么值得去做?

語(yǔ)涵編譯器項(xiàng)目有以下愿景:

一次編寫、跨引擎執(zhí)行:提供從劇本到不同引擎腳本的自動(dòng)錄入的實(shí)現(xiàn)。語(yǔ)涵編譯器未來(lái)會(huì)支持更多的引擎,希望能在劇本編寫上實(shí)現(xiàn)像編程那樣的一次編寫、多平臺(tái)執(zhí)行。

現(xiàn)代化工具鏈:通過(guò)語(yǔ)涵編譯器這個(gè)步驟,(1)將更多能夠切實(shí)提升生產(chǎn)力的功能帶給制作者并普及,(2)對(duì)接現(xiàn)代化的開發(fā)流程或設(shè)施(如云文檔等)

語(yǔ)涵編譯器的架構(gòu)是按照正統(tǒng)編譯器的設(shè)計(jì)思路,支持第一個(gè)引擎時(shí)的開發(fā)工作遠(yuǎn)大于相同定位的劇情錄入程序,但是支持第二個(gè)或更多引擎時(shí),開發(fā)負(fù)擔(dān)和用戶體驗(yàn)遠(yuǎn)比同類劇情錄入程序好。筆者相信,未來(lái)一定是需要一個(gè)統(tǒng)一的編譯器架構(gòu)來(lái)支持現(xiàn)在這些各異的引擎的,但是制作組和從業(yè)人員沒有動(dòng)機(jī)去脫離自己的生產(chǎn)環(huán)境,從一個(gè)第三視角去花大力氣做只會(huì)給自己組零提升的程序,所以必須要像筆者這樣不屬于任何制作組的“閑人”去做這樣一件事。我們希望完善后的語(yǔ)涵編譯器能帶給開發(fā)者更大的在引擎選擇上自由度,甚至是將“劇本編寫”和“引擎選擇”完全脫鉤,縮短工期和引擎變更成本。對(duì)引擎的編寫者來(lái)說(shuō),對(duì)接一個(gè)通用的編譯器也能方便測(cè)試,添加對(duì)自己引擎的支持后可以使用現(xiàn)有的劇本進(jìn)行測(cè)試。

采用編譯器的設(shè)計(jì)帶來(lái)的一大優(yōu)點(diǎn)是可以通過(guò)類似傳統(tǒng)編譯器中的分析、優(yōu)化的方式接入其他功能,提高生產(chǎn)力,比如語(yǔ)法檢查甚至是進(jìn)階的自動(dòng)演出。這些分析、優(yōu)化只要編寫一次,之后不管新加了什么引擎的支持、怎么改劇本的表示形式,這些代碼都不用改,直接可以復(fù)用?,F(xiàn)階段(2023-08-05)的長(zhǎng)句分句是這樣的功能的原型,證明語(yǔ)涵編譯器的架構(gòu)可以使用這種形式加功能。這將是一個(gè)支持將人們現(xiàn)有的制作經(jīng)驗(yàn)轉(zhuǎn)化為程序、幫助后人自動(dòng)發(fā)現(xiàn)或改正已知問(wèn)題的平臺(tái),減少重復(fù)踩坑。在項(xiàng)目開始之初,AIGC、大語(yǔ)言模型還沒有如今的發(fā)展,當(dāng)時(shí)規(guī)劃的分析、優(yōu)化主要是接入當(dāng)時(shí)現(xiàn)有的文檔語(yǔ)法檢查服務(wù)等。今后語(yǔ)涵編譯器也會(huì)嘗試與這些人工智能的服務(wù)對(duì)接,方便這些技術(shù)在更多的制作組落地、投入使用。

在今年早些時(shí)候,語(yǔ)涵編譯器還有另一篇專欄文章,不過(guò)當(dāng)時(shí)為了避免“畫大餅”的觀感,“解決什么問(wèn)題”部分寫得相對(duì)保守;那些立項(xiàng)之初的目標(biāo)已經(jīng)越來(lái)越近,可以開始向前看了。

3. 為什么不采用純文本輸入、要重新摸索新的劇本形式?

對(duì)于以上兩個(gè)主要愿景來(lái)說(shuō),采用文檔、富文本輸入(而不是像傳統(tǒng)的編程那樣使用純文本)并不是最穩(wěn)妥的決定,處理文檔中的額外信息(比如格式、文字樣式、內(nèi)嵌資源等)和思考如何使用這些信息將會(huì)拖累語(yǔ)涵編譯器的開發(fā)進(jìn)度。最終決定采用文檔是因?yàn)槿缦略颍?/p>

目前采用純文本輸入的視覺小說(shuō)劇本形式(用程序員的話說(shuō)就是“語(yǔ)法”)已經(jīng)多如牛毛,一個(gè)新的形式會(huì)加劇這個(gè)形式碎片化的進(jìn)程,并且可能沒有足夠的競(jìng)爭(zhēng)力與現(xiàn)有的形式(語(yǔ)法)競(jìng)爭(zhēng)。但是,現(xiàn)有的格式無(wú)法滿足語(yǔ)涵編譯器對(duì)易用性和可拓展性的要求。

Word 文檔是門檻最低的劇本輸入形式,部分開發(fā)者仍然使用 Word 文檔來(lái)編寫劇本。如果想有一個(gè)相對(duì)統(tǒng)一的劇本形式的話,降低輸入劇本形式的門檻是必須的。

云文檔產(chǎn)品已經(jīng)成熟,選擇文檔形式輸入可以與這些現(xiàn)有產(chǎn)品對(duì)接,未來(lái)可以實(shí)現(xiàn)全流程上云。這對(duì)設(shè)備受限(比如只有手機(jī))或者有多人協(xié)同需求的制作者來(lái)說(shuō)可能會(huì)具有吸引力。

因此,語(yǔ)涵編譯器會(huì)嘗試摸索一個(gè)基于 Word 文檔及其類似格式文檔的、相對(duì)統(tǒng)一的劇本形式(語(yǔ)法)。語(yǔ)涵編譯器不以追求統(tǒng)一的劇本形式為主(這有可能是無(wú)法做到的,可能每個(gè)作者都想有自己的一些小改動(dòng)),但是當(dāng)這些劇本能被(可能加了插件的)語(yǔ)涵編譯器讀取、進(jìn)入這個(gè)體系之后,我們希望能對(duì)這些劇本使用語(yǔ)涵編譯器內(nèi)的所有功能,包括對(duì)所有支持的引擎的輸出。

4. 和其他自動(dòng)錄入程序相比,語(yǔ)涵編譯器有哪些區(qū)別?

項(xiàng)目過(guò)程中,我們已知有其他自動(dòng)錄入程序可以讀取 (1) 純文本的劇本,或是 (2) Excel 表格中的劇本。這些程序只生成特定引擎的劇本。在書寫這篇文章時(shí),語(yǔ)涵編譯器只支持 RenPy,發(fā)言信息可以導(dǎo)出至 GameCreator 但是功能不像 RenPy 那樣全。如果不考慮引擎的支持情況、假設(shè)用戶不需要多引擎支持的話:

如果劇本可以寫成 Excel 表格的形式,那么現(xiàn)有的讀取 Excel 的自動(dòng)錄入程序能比語(yǔ)涵編譯器更好地滿足用戶需要,這類程序可以以較低的開發(fā)成本充分挖掘所支持引擎的特性。與此類程序相比,除了劇本格式外(語(yǔ)涵編譯器可以通過(guò)插件讀取這些劇本),語(yǔ)涵編譯器可以提供分析、優(yōu)化功能(在原型中已經(jīng)做的可能也用處有限),代價(jià)是更高的開發(fā)成本。

如果劇本是純文本,除了發(fā)言信息外不包含(或是很少包含)演出細(xì)節(jié),目前語(yǔ)涵編譯器所支持的劇本形式應(yīng)該能夠勝過(guò)已有的讀取純文本的錄入程序。

我們相信,隨著語(yǔ)涵編譯器的不斷完善和拓展,一定會(huì)有將這些劇本錄入程序統(tǒng)一的時(shí)候。屆時(shí),通過(guò)插件自行定制語(yǔ)涵編譯器一定會(huì)完勝于從頭寫一個(gè)錄入程序。

5. 語(yǔ)涵編譯器和看板娘蘇語(yǔ)涵的名字是怎么來(lái)的?

先聊英文名(preppipe)怎么來(lái)的,中文名是2022年底才以此定的。

2019年10月開坑時(shí)使用的名字是 "supp",意為 "small universal preprocessor pipeline"(又小又通用的預(yù)處理器流水線),一個(gè)充滿了狂氣的名字,上來(lái)就要干一票大的,然后做了一個(gè)月就涼了。第二版設(shè)計(jì)把"又小又通用"給去掉了,名字改成了"preppipe" (preprocessor pipeline)設(shè)計(jì)保守了很多,但是目標(biāo)功能和第一版沒太大變化,路線錯(cuò)誤,所以到2021年又推倒重來(lái)。但是2020年的時(shí)候已經(jīng)把域名給買好了,域名都買好了結(jié)果坑沒填完,就覺得很丟人,所以第三版程序還是沿用第二版的名字"preppipe"。"preppipe"是對(duì)第一、二版大致設(shè)計(jì)的合適描述,但是其實(shí)與第三版的設(shè)計(jì)關(guān)系不大了。。。

名字“語(yǔ)涵”中,“語(yǔ)”和“預(yù)處理器”的“預(yù)”讀音相近,又能代表劇本中的“語(yǔ)言”意象?!昂笔枪P者覺得既提到了“流水線”、“管線”(因?yàn)橛袀€(gè)詞叫“涵道”)又能與前一個(gè)字組合得很好的字。看板娘的“蘇”姓就從之前去掉的"su"變來(lái)。

6. 除了完善程序和文檔外,語(yǔ)涵編譯器項(xiàng)目有什么后續(xù)的計(jì)劃?

原型發(fā)布后,除了修理 Bug、編寫文檔外,筆者希望能夠找到足夠多的感興趣、有經(jīng)驗(yàn)的制作者,一同商討解決以下問(wèn)題:

(對(duì)用戶) 如果需要有個(gè)適合 Word 文檔的、相對(duì)統(tǒng)一的視覺小說(shuō)劇本表示方式(程序員口中的“語(yǔ)法”),這個(gè)表示方式應(yīng)該是什么樣的。語(yǔ)涵編譯器項(xiàng)目希望能摸索出這個(gè)合適的表示方式。

對(duì)程序員) 如果需要給適用于視覺小說(shuō)的編譯器定義 IR (編譯器概念,Intermediate Representation),這個(gè) IR 應(yīng)該是什么樣的。這個(gè) IR 設(shè)計(jì)得合理與否將決定語(yǔ)涵編譯器在支持更多的引擎、更多的分析優(yōu)化功能時(shí)能否完美支持其功能,能否高效、便于調(diào)試。目前語(yǔ)涵編譯器的經(jīng)驗(yàn)只表明 “目前的設(shè)計(jì)可以做 IR”,而不是“目前的 IR 設(shè)計(jì)已經(jīng)是最好的”,如果能在早期發(fā)現(xiàn)潛在問(wèn)題并進(jìn)行更正的話,后續(xù)增加功能時(shí)能夠更有效率。

有足夠的人愿意花時(shí)間思考這些問(wèn)題后,我會(huì)將目前語(yǔ)涵編譯器的劇本表示方式(語(yǔ)法)和 IR 設(shè)計(jì)整理成文并收集反饋。在這之前,我也會(huì)從各種渠道收集一些劇本,找愿意提供幫助的人參與設(shè)計(jì)。如果您對(duì)這感興趣的話,歡迎來(lái)嘗試語(yǔ)涵編譯器并提供自己的見解!

一些追加說(shuō)明

語(yǔ)涵編譯器永遠(yuǎn)會(huì)開源免費(fèi),感謝免費(fèi)國(guó)G《某一種青春》那年給我?guī)?lái)的感動(dòng)。

如果有計(jì)算機(jī)專業(yè)的同學(xué)大四要做畢業(yè)設(shè)計(jì)可以自選項(xiàng)目,如果做與語(yǔ)涵編譯器有關(guān)的項(xiàng)目的話,筆者非常愿意提供支持!

編輯:qysb005

標(biāo)簽:

中國(guó)企業(yè)新聞網(wǎng)版權(quán)與免責(zé)聲明:
1、中國(guó)企業(yè)新聞網(wǎng)所有內(nèi)容的版權(quán)均屬于作者或頁(yè)面內(nèi)聲明的版權(quán)人。未經(jīng)中國(guó)企業(yè)新聞網(wǎng)的書面許可, 任何其他個(gè)人或組織均不得以任何形式將河南企業(yè)網(wǎng)的各項(xiàng)資源轉(zhuǎn)載、復(fù)制、編輯或發(fā)布使用于其他任何場(chǎng)合;不得把其中任何形式的資訊散發(fā)給其他方, 不可把這些信息在其他的服務(wù)器或文檔中作鏡像復(fù)制或保存;不得修改或再使用中國(guó)企業(yè)新聞網(wǎng)的任何資源。若有意轉(zhuǎn)載本站信息資料, 必需取得中國(guó)企業(yè)新聞網(wǎng)書面授權(quán)。否則將追究其法律責(zé)任。
2、已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:中國(guó)企業(yè)新聞網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
3、凡本網(wǎng)注明“來(lái)源:XXX(非中國(guó)企業(yè)新聞網(wǎng))”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息, 并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。本網(wǎng)轉(zhuǎn)載其他媒體之稿件,意在為公眾提供免費(fèi)服務(wù)。如稿件版權(quán)單位或個(gè)人不想在本網(wǎng)發(fā)布, 可與本網(wǎng)聯(lián)系,本網(wǎng)視情況可立即將其撤除。
圖片欣賞
頻道推薦
內(nèi)容推薦
最近更新