最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

《Minecraft腳本引擎:從入門(mén)到抬棺送走》:緒論

2020-05-07 22:40 作者:乾山瑤  | 我要投稿

如果把Minecraft游戲比作一個(gè)巨型的機(jī)器人的話,那么腳本引擎就像是這只機(jī)器人主動(dòng)開(kāi)放給玩家們的一個(gè)操作面板,它允許玩家們操控這只可愛(ài)的龐然大物的行為、監(jiān)測(cè)或修改它身體各個(gè)部位的數(shù)據(jù),使其實(shí)現(xiàn)一些很酷的操作。

大家好,我是你們的兔頭老鴿乾山瑤。吶吶吶,終于開(kāi)坑了。我們是兄弟,我怎么會(huì)鴿你們呢?[狗頭.png]。

閱前提示

本系列教程基礎(chǔ)更新頻率為周更時(shí)間有空余的時(shí)候可能會(huì)一周多更)更新時(shí)間一般在每周一到周日之間,視情況而定。

鄙人水平有限,撰寫(xiě)過(guò)程中難免出錯(cuò),還望各位不吝斧正,多多包涵。

如非特別強(qiáng)調(diào),本系列文章中所提及的Minecraft均指Minecraft基巖版。

本章節(jié)為緒論部分,主要是對(duì)腳本引擎的發(fā)展、本系列教程的主要內(nèi)容及開(kāi)始前的準(zhǔn)備做一個(gè)基本的介紹。

首先,讓我們把時(shí)光的輪盤(pán)撥回四年前,去探索腳本引擎的前世今生。

腳本引擎發(fā)展淺述

橫空出世

? ? 2016年10月25日,在經(jīng)歷了5個(gè)測(cè)試版本后,Minecraft攜帶版Alpha0.16.0正式發(fā)布。Alpha0.16.0的更新,不僅帶來(lái)了海底遺跡和它的守衛(wèi)者們,還帶來(lái)了一個(gè)令無(wú)數(shù)內(nèi)容創(chuàng)作者們?yōu)橹d奮的內(nèi)容——Add-ons(附加包)。

攜帶版Alpha0.16.0 Boss更新官方宣傳海報(bào)

? ? 附加包是由一定文件結(jié)構(gòu)組成的儲(chǔ)存了游戲程序運(yùn)轉(zhuǎn)的行為規(guī)則及資源的數(shù)據(jù)包,需由Minecraft游戲本體加載后在游戲中發(fā)揮效用。附加包允許玩家更改世界的樣貌并修改生物的行為,以及更改游戲的其他內(nèi)容。雖說(shuō)在當(dāng)時(shí),附加包僅允許玩家修改游戲內(nèi)已有內(nèi)容的配置文件,自定義游戲內(nèi)容尚未被支持,但四年后的今天,附加包已然可對(duì)游戲內(nèi)的諸如生物及其行為、物品、方塊、合成熔煉及煉藥配方、礦物生成、建筑結(jié)構(gòu)生成、生物群系等等內(nèi)容進(jìn)行數(shù)據(jù)驅(qū)動(dòng)及自定義(當(dāng)然仍然存在著諸多不足,這點(diǎn)在本文下一部分將會(huì)提到)。附加包的發(fā)布意味著基巖版有了官方支持的插件接口,這對(duì)基巖版玩家們來(lái)說(shuō)是極具歷史性的一刻。

? ? 可對(duì)于一個(gè)優(yōu)質(zhì)的插件而言,僅能夠修改一些游戲內(nèi)容是遠(yuǎn)遠(yuǎn)不夠的,它還要求插件加載器開(kāi)放給內(nèi)容創(chuàng)作者們實(shí)現(xiàn)游戲邏輯的方法。雖說(shuō)當(dāng)時(shí)社區(qū)中已有發(fā)展得較為成熟的第三方API提供給創(chuàng)作者們使用,但它們的情況也不容樂(lè)觀。BlockLauncher(方塊啟動(dòng)器)在Minecraft正式版更新后函數(shù)庫(kù)變得極不穩(wěn)定:隨著Minecraft版本的更新,越來(lái)越多的函數(shù)逐漸失去效用。

方塊啟動(dòng)器軟件圖標(biāo)。該軟件曾為MC移動(dòng)端唯一一款插件加載器,直到Core Engine的發(fā)布

? ? 后起之秀Inner Core雖說(shuō)有著更加完善的API,函數(shù)支持方面較BlockLauncher更為穩(wěn)定,但其付出的代價(jià)是僅支持正式版1.0.1版本的Minecraft,可游戲版本號(hào)卻不停的增加著。久而久之,對(duì)于追求新版本內(nèi)容的玩家來(lái)說(shuō),Inner Core逐漸開(kāi)始顯得有些“落后”。

Inner Core界面。前身為Core Engine,軟件內(nèi)置了MC正式版1.0.1

? ? 而附加包當(dāng)時(shí)在這一領(lǐng)域的支持程度,幾乎為零。由于附加包內(nèi)的文件大部分使用Json數(shù)據(jù)格式編寫(xiě),故本質(zhì)上其隸屬于數(shù)據(jù)包的一種,這就意味著它在當(dāng)時(shí)并不具備實(shí)現(xiàn)各種復(fù)雜游戲邏輯的能力。

? ? 附加包的這種“能力缺失”的狀態(tài)一直持續(xù)了兩年。

? ? 直至2018年,基巖版用戶們?cè)诮?jīng)歷了BlockLauncher、Core Engine、Inner Core等一系列第三方啟動(dòng)器主宰的時(shí)代后,終于迎來(lái)了官方所提供的Mod API——Script Engine(腳本引擎)。

腳本引擎

? ? 附加包與腳本引擎的關(guān)系就像是生物個(gè)體與其身體的某個(gè)器官的關(guān)系一樣,腳本引擎隸屬于附加包,它的相關(guān)文件夾被放置于附加包中行為包的根目錄下,它必須依賴附加包才能在游戲中發(fā)揮作用(所以如果你之前還在奇怪為什么這個(gè)憨憨up主要花這么多篇幅去介紹一個(gè)看似與標(biāo)題完全不搭噶的內(nèi)容的話,想必現(xiàn)在你已經(jīng)有了答案)。如果把Minecraft游戲比作一個(gè)巨型機(jī)器人,那么腳本引擎就像是這只機(jī)器人主動(dòng)開(kāi)放給玩家們的一個(gè)操作面板,它允許玩家們操控這只可愛(ài)的龐然大物的行為、監(jiān)測(cè)或修改它身體各個(gè)部位的數(shù)據(jù),使其實(shí)現(xiàn)一些很酷的操作。

? ? 與附加包不同,mojang目前僅在win10端開(kāi)放了腳本引擎的使用權(quán)限,而移動(dòng)端用戶在加載含有腳本引擎的存檔時(shí),會(huì)被提示無(wú)法進(jìn)入存檔。當(dāng)然,在安卓端您可以通過(guò)使用方塊啟動(dòng)器加載游戲來(lái)開(kāi)啟腳本引擎的使用權(quán)限。(IOS端玩家表示很淦[就是有嘲笑的意思.png])

? ? 腳本引擎提供了一些系統(tǒng)與方法供給玩家監(jiān)測(cè)與修改游戲中的內(nèi)容,其中包含且不僅僅包含:事件系統(tǒng),用于監(jiān)聽(tīng)與廣播游戲中的一些事件,當(dāng)然您也可以自定義事件并對(duì)其進(jìn)行廣播與監(jiān)聽(tīng);組件系統(tǒng),在腳本引擎中,實(shí)體、方塊、存檔的一些屬性都是由一種叫做組件的東西定義的,腳本引擎提供了獲取與修改這些組件的方法,同樣的,您也可以自定義組件并應(yīng)用到指定的游戲內(nèi)容上;UI系統(tǒng),腳本引擎提供了自定義UI并與之交互的方法,玩家可通過(guò)腳本引擎加載自定義的UI界面,并使用其提供的接口方法與UI端實(shí)現(xiàn)數(shù)據(jù)傳輸;接口方法,腳本引擎提供了一些方法給玩家使用,玩家可通過(guò)這些方法對(duì)游戲內(nèi)的一些內(nèi)容進(jìn)行操作。

這些內(nèi)容將會(huì)在之后的章節(jié)中一一介紹。

使用腳本引擎在游戲中加載自定義UI

未成年的孩子

? ? 附加包與腳本引擎的出現(xiàn)著實(shí)讓許多基巖版的內(nèi)容創(chuàng)作者們眼前一亮,仿佛基巖版在插件領(lǐng)域已經(jīng)可以與Java版一決高下了,但是現(xiàn)實(shí)卻沒(méi)有想像得那么美好。

? ? 首先是附加包:雖說(shuō)其在實(shí)體方面做得已經(jīng)較為完備,但時(shí)至今日,附加包在自定義方塊與物品方面的功能仍不完善。方塊方面,方塊模型無(wú)法自定義、方塊屬性定義功能的不完善都大大的限制了創(chuàng)作者們施展拳腳的空間,而物品方面,無(wú)論是工具還是武器都沒(méi)有完備的定義方式,附魔的自定義更是一個(gè)無(wú)法企及的泡影。自定義維度同樣仍未被支持。

? ? 對(duì)于腳本引擎,除去仍在完善中的接口方法及可監(jiān)聽(tīng)事件外,UI定義困難,數(shù)據(jù)無(wú)法儲(chǔ)存等問(wèn)題至今未得到解決。且更為致命的是,其目前無(wú)法進(jìn)行多線程運(yùn)算,這意味著腳本引擎目前負(fù)擔(dān)不起運(yùn)算量較大的算法,這會(huì)不會(huì)就是mojang至今仍未對(duì)移動(dòng)端用戶開(kāi)放腳本引擎的原因呢?沒(méi)人知道。

? ? 附加包就像是個(gè)未成年的孩子,還在不斷的成長(zhǎng)著,它有著無(wú)窮的潛力等待著各位去發(fā)掘。隨著mojang的不斷開(kāi)發(fā)以及基巖版的不斷發(fā)展,老鴿相信,在不遠(yuǎn)的將來(lái),附加包必定會(huì)成為Minecraft游戲史上一顆閃耀的巨星。

? ? 本系列教程將帶您探索腳本引擎這一年輕的系統(tǒng),揭開(kāi)它的神秘面紗,賦予您在Minecraft的像素世界里凌駕于上帝之上的能力。


內(nèi)容一覽

這里是之后將陸續(xù)更新的內(nèi)容一覽(可能會(huì)隨著游戲更新做出一定的調(diào)整)

每章將根據(jù)內(nèi)容多少?zèng)Q定是否分小節(jié)更新。

這是?工作臺(tái)!

第一章 服務(wù)端與客戶端

第二章?系統(tǒng)的獲取與使用

獲得升級(jí)

第三章 生命周期

第四章?預(yù)制對(duì)象

第五章 事件系統(tǒng)

第六章?實(shí)體交互

第七章 組件系統(tǒng)

第八章 自定義UI

我們必須再深入些

第九章 多人聯(lián)機(jī)適配

第十章 UI繪制

第十一章?偽數(shù)據(jù)儲(chǔ)存的實(shí)現(xiàn)

第十二章 性能優(yōu)化



開(kāi)始前的準(zhǔn)備

俗話說(shuō)工欲善其事,必先利其器。在開(kāi)始我們的編寫(xiě)旅程之前,讓我們先準(zhǔn)備一些方便的“交通工具”及路上的“干糧”。

前置知識(shí)

在開(kāi)始之前,您需要對(duì)以下知識(shí)及內(nèi)容具備一定的了解(請(qǐng)?jiān)谙嚓P(guān)教程頁(yè)面或是wiki相關(guān)詞條頁(yè)面對(duì)以下內(nèi)容進(jìn)行詳細(xì)了解)

  • JavaScript

    腳本引擎的大部分內(nèi)容都是由JavaScript語(yǔ)言所編寫(xiě)的。JavaScript是您與引擎進(jìn)行“交流”所必須的語(yǔ)言工具。

  • 附加包

    附加包是腳本引擎在游戲中發(fā)揮作用所依賴的母體。附加包中包括資源包與行為包,而腳本引擎代碼則存放于行為包根目錄的scripts文件夾中(這一點(diǎn)將在第一章中進(jìn)行詳細(xì)介紹)

  • JSON數(shù)據(jù)

    JSON數(shù)據(jù)是一種數(shù)據(jù)結(jié)構(gòu)。JSON在附加包中作為儲(chǔ)存游戲中各種內(nèi)容的運(yùn)行規(guī)則的數(shù)據(jù)文件。如生物的定義及其行為、方塊物品的定義及其屬性、礦石生成規(guī)則的定義,建筑結(jié)構(gòu)生成的規(guī)則,以及我們之后會(huì)講到的配置文件等等。在腳本引擎中,我們需要使用JSON來(lái)編寫(xiě)manifest文件用以定義各種配置。

編寫(xiě)工具

? ? 腳本引擎代碼的編寫(xiě)目前對(duì)編輯器并沒(méi)有什么特別的要求,您甚至可以使用記事本來(lái)編輯您的代碼(但極其不建議您這么做)。如果您目前沒(méi)有趁手的編輯器,這里列出了部分常見(jiàn)的編輯器供您參考。

電腦端

  • Visual Studio——官方推薦。功能強(qiáng)大,大概率以后官方會(huì)出相關(guān)的插件支持。社區(qū)版免費(fèi),可滿足腳本引擎的開(kāi)發(fā)使用需求。專(zhuān)業(yè)版需付費(fèi)。

  • IDEA——功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境,目前雖然沒(méi)有相關(guān)插件支持,但代碼提示用起來(lái)仍較為順手。學(xué)生可憑相關(guān)證件在其官網(wǎng)上申請(qǐng)學(xué)生賬戶免費(fèi)使用其公司旗下所有產(chǎn)品。

  • SublimeText——擁有優(yōu)秀的代碼補(bǔ)全功能、代碼高亮、漂亮的用戶界面和強(qiáng)大的功能。

  • Notepad++——一款小巧高效、支持27種編程語(yǔ)言的開(kāi)源軟件

安卓端

  • 920文本編輯器——(名譽(yù)推薦)老牌編輯器,ModPE時(shí)代的主流編輯器之一。但由于較為古板且不支持高版本系統(tǒng),并不推薦使用。

  • AIDE Web——功能強(qiáng)大的安卓端web代碼編輯器,擁有語(yǔ)法高亮,自動(dòng)縮進(jìn)、代碼補(bǔ)全、格式整理、上千行代碼不卡頓等等特點(diǎn)。

  • Quick Edit——移動(dòng)平臺(tái)上高效,穩(wěn)定和全功能的文本編輯器,它同時(shí)為手機(jī)和平板設(shè)備進(jìn)行了優(yōu)化。Quick Edit對(duì)性能和用戶體驗(yàn)方面進(jìn)行了大量的優(yōu)化,使得其速度和輸入反饋更加優(yōu)越。

蘋(píng)果端

  • 個(gè)人并不具有蘋(píng)果端的開(kāi)發(fā)經(jīng)驗(yàn),歡迎有這方面經(jīng)驗(yàn)的大佬可在評(píng)論區(qū)補(bǔ)充(`?ω?′)。

? 好了,在一切準(zhǔn)備就緒后,咱們也是時(shí)候上路了=A=。


《Minecraft腳本引擎:從入門(mén)到抬棺送走》:緒論的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
丰镇市| 济阳县| 井陉县| 德惠市| 新源县| 大余县| 延安市| 榆社县| 肇东市| 利川市| 祥云县| 夏河县| 清苑县| 武鸣县| 县级市| 来安县| 砀山县| 鸡泽县| 彭州市| 穆棱市| 福贡县| 鄂伦春自治旗| 永康市| 刚察县| 肇东市| 晋江市| 攀枝花市| 陵川县| 广丰县| 邵武市| 保靖县| 镇原县| 安新县| 蒙城县| 新丰县| 合作市| 彰化市| 曲沃县| 义乌市| 新竹市| 阜新|