• <samp id="aosye"><tbody id="aosye"></tbody></samp>
  • <li id="aosye"><center id="aosye"></center></li>
  • <ul id="aosye"><pre id="aosye"></pre></ul>
    <tr id="aosye"></tr>
    <ul id="aosye"></ul>
    <samp id="aosye"></samp>
    您的位置:首頁(yè) > 資訊 > 游戲 >

    【環(huán)球熱聞】讓關(guān)卡制作事半功倍:資深開(kāi)發(fā)者分享定制化工具打造經(jīng)驗(yàn)

    如果只用一半時(shí)間就可以做出同樣的內(nèi)容,你會(huì)怎么想?如果你知道不僅可以節(jié)約大量時(shí)間,還可以通過(guò)日常的重復(fù)行為節(jié)約很多比較短的時(shí)間會(huì)怎樣?對(duì)于游戲開(kāi)發(fā)者而言,我們應(yīng)該用定制化工具更聰明地工作,而不是更刻苦。


    【資料圖】

    在此前的GDC分享中,資深游戲開(kāi)發(fā)者Brett Taylor分享了定制化工具以及它帶來(lái)的不同幫助,并通過(guò)案例分析的方式討論了什么時(shí)候應(yīng)該制作工具,以及哪些時(shí)候投入工具是浪費(fèi)時(shí)間。在演講的最后,Taylor還分享了一些Unity代碼快捷方式,希望對(duì)同行們有所幫助。

    以下是Gamelook聽(tīng)譯的完整內(nèi)容:

    Brett Taylor:

    首先做一下自我介紹,我是Brett Taylor,在哥倫比亞大學(xué)拿到了認(rèn)知學(xué)碩士學(xué)位,自從2008年開(kāi)始就已經(jīng)在研發(fā)游戲。

    從業(yè)經(jīng)歷方面,我在Arkadium工作室度過(guò)了三年的開(kāi)發(fā)者生涯,轉(zhuǎn)入獨(dú)立游戲研發(fā)之后,做了一款名為《Linelight》的游戲,并且有不錯(cuò)的表現(xiàn)。最近我還成為了Playdead工作室的一名開(kāi)發(fā)者。

    今天的分享主要分為四個(gè)部分,首先談?wù)勈裁词嵌ㄖ乒ぞ?,然后聊聊關(guān)卡編輯器,我這些年做了很多個(gè)關(guān)卡編輯器,這也是一種類(lèi)型的工具。隨后,我們會(huì)討論什么時(shí)候適合做一個(gè)工具,最后會(huì)介紹一些Unity代碼快捷方式,這么多年的研發(fā)過(guò)程中,我積累了大量的快捷方法,對(duì)于Unity開(kāi)發(fā)者來(lái)說(shuō)是有幫助的,我會(huì)在隨后分享一個(gè)鏈接,需要的同行可以直接使用。

    什么是定制化工具?

    你們可能會(huì)問(wèn),定制工具到底是什么?按照我的定義,能夠幫助策劃以及程序員節(jié)約時(shí)間的代碼或系統(tǒng),就是定制化工具。

    其中最重要的就是節(jié)約時(shí)間,因?yàn)槎ㄖ苹ぞ叩淖畲笠饬x就是讓你做游戲更快。不過(guò),我并不總是使用這些工具,今天分享的重點(diǎn)是能夠幫助同行們節(jié)約時(shí)間和精力的工具,而不是如何打造最優(yōu)秀的研發(fā)工具。

    具體來(lái)說(shuō),今天講的工具主要是與游戲策劃有關(guān),而不是bug查找那樣的游戲制作工具,我今天分享的工具主要是為了方便策劃為游戲增加內(nèi)容,幫助策劃處于最佳狀態(tài)或者行云流水的狀態(tài)。

    假如你每天可以12次節(jié)約20秒的時(shí)間,如果是通過(guò)工具實(shí)現(xiàn),那么投入工作制作的時(shí)間(如果是4分鐘)是否值得?你失去的并不只是4分鐘,而是作為游戲策劃,這個(gè)工具制作時(shí)間打斷了你的流暢狀態(tài),所以,當(dāng)我談到是否值得制作工具的時(shí)候,不只是它節(jié)約了多少時(shí)間,更重要的是它能否保證你處于最佳狀態(tài),以更有效率的狀態(tài)工作。

    最佳狀態(tài)指的是,當(dāng)你創(chuàng)作內(nèi)容的時(shí)候不被打斷,意味著更高的工作效率,不過(guò),在必要的時(shí)候,也需要能夠很容易打斷。

    我們?cè)賮?lái)談?wù)凚ob Ross,以及他的“節(jié)約時(shí)間模型(time-saving role model)”。Ross是1990年代公共廣播電視節(jié)目“歡樂(lè)畫(huà)室”系列主持人,他平均作畫(huà)時(shí)間在22-23分鐘左右,其中使用了很多捷徑方式。

    他曾公開(kāi)表示,“這是懶人作畫(huà)方式”。但我認(rèn)為這是非常聰明的繪畫(huà)方式,這樣作畫(huà)是非常高效率的,節(jié)約了大量時(shí)間。

    工具也分為不同類(lèi)型,比如它可以小到只是一串可重復(fù)使用的代碼,也可以大到一個(gè)功能豐富的關(guān)卡編輯器,圖片中的編輯器是我在10多年前做的,隨后我們會(huì)提到它。

    我們可以做幫助策劃為游戲內(nèi)增加內(nèi)容的策劃工具,還有幫助程序員的可復(fù)用代碼段甚至是代碼庫(kù),今天的分享主要是針對(duì)策劃工具,不過(guò)在最后我們也會(huì)分享一些Unity代碼。

    策劃工具還包括關(guān)卡編輯器以及能夠突出關(guān)卡問(wèn)題的工具,比如幫助組織關(guān)卡結(jié)構(gòu)的工具,或者,你也可以做分支劇情的文本編輯器。

    關(guān)卡編輯器案例

    《Scalea》

    這是我做的第一款游戲,圖中是它的關(guān)卡編輯器。這是我有史以來(lái)做的首個(gè)關(guān)卡編輯器,是在大學(xué)期間(2010年)完成的,其中很大一部分靈感來(lái)自《時(shí)空幻境(Braid)》編輯器,實(shí)際上整個(gè)游戲靈感也是來(lái)自《時(shí)空幻境》,只不過(guò)把操控時(shí)間切換成了操控空間。

    《Scalea》整個(gè)游戲時(shí)長(zhǎng)只有半個(gè)小時(shí),但它的關(guān)卡編輯器卻是很不可思議的,因?yàn)槲易隽撕芏嗟墓δ堋?/p>

    總結(jié)來(lái)說(shuō),整個(gè)關(guān)卡編輯器用了3個(gè)月時(shí)間,坦白來(lái)說(shuō),與我做工具投入的時(shí)間和精力相比,它帶來(lái)的回報(bào)并不是很多,雖然有很多功能,但并不值得。不過(guò),值得慶幸的是,通過(guò)這個(gè)關(guān)卡編輯器的制作,我學(xué)到了很多東西。

    《Linelight》關(guān)卡編輯器

    這款游戲發(fā)布于2017年,從《Scalea》編輯器,我學(xué)到了很多不能增加到工具里的東西。在《Linelight》編輯器里,你可以在玩游戲的時(shí)候進(jìn)行編輯,因此使用起來(lái)很方便。

    實(shí)際上,一開(kāi)始的時(shí)候,我做了幾個(gè)關(guān)卡,但并沒(méi)有意識(shí)到需要做編輯器,我最開(kāi)始設(shè)計(jì)關(guān)卡都是用代碼寫(xiě)出來(lái)的。隨后,我意識(shí)到必須打造一個(gè)關(guān)卡編輯器,這剛好與《Scalea》相反,那時(shí)候我是先做了關(guān)卡編輯器,然后增加了很多并不需要的功能,雖然學(xué)到了很多東西,但那并不是有效率的做事方法。

    這個(gè)編輯器打造用了大約一個(gè)月的時(shí)間,整個(gè)游戲用了一年半,但這個(gè)關(guān)卡編輯器帶來(lái)的結(jié)果是巨大的,快速迭代是非常好的,因?yàn)槲抑蛔鲎约盒枰墓δ?,甚至有些東西是Unity默認(rèn)的。開(kāi)始的時(shí)候我想著隨后把它做的更漂亮,但后來(lái)我發(fā)現(xiàn)既然行之有效,那就沒(méi)有必要做的多么漂亮,因?yàn)椴⒉恢档谩?/p>

    《Linelight》的地圖編輯器也同樣復(fù)雜,而且里面增加了很多的功能,這些是我在研發(fā)過(guò)程中逐漸加入的,接下來(lái)我會(huì)用具體的關(guān)卡來(lái)展示一些功能。

    設(shè)計(jì)師標(biāo)示

    這是我在幾年前做的,也是為《Linelight》設(shè)計(jì)的,隨后也用到了其他一些游戲之中。這五個(gè)標(biāo)示是我希望在關(guān)卡中使用的,每個(gè)關(guān)卡都有標(biāo)示,你可以點(diǎn)擊icon切換,它直接可以在編輯器中使用。我很喜歡這個(gè)系統(tǒng),它的表現(xiàn)非常好,因?yàn)殛P(guān)卡是處于不斷變化中的,一直要重新調(diào)整這些關(guān)卡,有了標(biāo)示之后,我就不用記住對(duì)每個(gè)關(guān)卡的想法,因?yàn)檫@些標(biāo)示已經(jīng)存在。

    這個(gè)系統(tǒng)用了我5個(gè)小時(shí)完成,但它帶來(lái)的結(jié)果是非常優(yōu)秀的。

    Prop Display

    這是一個(gè)與設(shè)計(jì)師標(biāo)示相似的東西,它展示了地圖上的一些內(nèi)容。我的目標(biāo)是讓地圖資源在研發(fā)進(jìn)度中實(shí)現(xiàn)視覺(jué)化,展示這個(gè)房間里存在的游戲機(jī)制,比如圖中白色的標(biāo)記,我希望能夠直覺(jué)看到一個(gè)區(qū)域里的游戲流程。

    不過(guò),這個(gè)系統(tǒng)最終幾乎是很少使用,我本以為它可以帶來(lái)很大幫助,但結(jié)果并沒(méi)有奏效。我用了3個(gè)半小時(shí)做這個(gè)系統(tǒng),但結(jié)果幾乎一點(diǎn)用都沒(méi)有。當(dāng)然,這也是學(xué)習(xí)過(guò)程的一部分。

    《Bouncemeister》

    我們先來(lái)看看這款游戲長(zhǎng)什么樣:你控制角色Jetta進(jìn)行跳躍,到達(dá)出口即可通關(guān)。

    這是《Bouncemeister》地圖編輯器,你可以把地圖的任何一段拖走、改變位置,它們會(huì)自動(dòng)連接起來(lái)。

    它還可以自動(dòng)找到布局問(wèn)題,如果某一塊地圖無(wú)法與其他區(qū)域連接,就會(huì)被標(biāo)注出來(lái),這對(duì)我而言是非常有用的。做了很多的關(guān)卡之后,還可以按住shift鍵輸入名字,搜索具體關(guān)卡。還有一個(gè)功能是shift+鼠標(biāo)點(diǎn)擊,可以選擇所有連接起來(lái)的房間。

    我們?cè)賮?lái)看《Bouncemeister》房間編輯器,它直接使用了Unity編輯器,所以在研發(fā)過(guò)程中可以直接看到游戲內(nèi)實(shí)際效果。它有一些優(yōu)勢(shì),這個(gè)編輯器是已經(jīng)存在的,我不需要再做一些額外的功能,比如回撤或者重做,尤其是多選、多個(gè)物體移動(dòng)或者多個(gè)目標(biāo)規(guī)?;臅r(shí)候,比自己做編輯器方便很多。

    不過(guò),這種方式也有些不利之處,比如,你需要單獨(dú)的視窗看到游戲玩法,而不是直接在游戲里編輯,我很不喜歡這一點(diǎn),因?yàn)樗鼤?huì)讓編輯器當(dāng)中的一切都看起來(lái)很小。另外,對(duì)于一些不適應(yīng)的Unity功能,我還需要找到如何變通的方法。

    接下來(lái)看看這個(gè)房間編輯器里的一些功能:

    吸附到網(wǎng)格線(snap to grid),這個(gè)功能很棒,它的代碼也很簡(jiǎn)單;

    自動(dòng)旋轉(zhuǎn)尖刺,這個(gè)功能也很不錯(cuò),隨后還會(huì)提到該功能,簡(jiǎn)而言之,當(dāng)你把尖刺拖動(dòng)到某個(gè)表面,它的方向就會(huì)自動(dòng)適應(yīng)其方向。

    自動(dòng)延展層次體系,如圖,如果要手動(dòng)展開(kāi)這些層級(jí)目錄,我需要三次點(diǎn)擊、耗時(shí)7秒才能看看到所有內(nèi)容,而使用了自動(dòng)延展代碼之后,就可以立即看到這些內(nèi)容,這節(jié)約了大量時(shí)間。

    還有一個(gè)功能是鍵盤(pán)快捷鍵,圖中展示了一些快捷鍵,在關(guān)卡之間切換很好用,這樣的快捷鍵有很多,但我們沒(méi)時(shí)間逐一介紹。

    展示房間連接錯(cuò)配的線框(小工具),黃線處展示的是打開(kāi)的其他房間,這樣,我不用頻繁回到大量的關(guān)卡,就可以知道哪些關(guān)卡的房間連接出現(xiàn)了問(wèn)題。

    《Music Story》

    另一個(gè)是我做的《Music Story》,不過(guò)這個(gè)項(xiàng)目從未發(fā)布,它停留在了概念階段。游戲的想法是通過(guò)選擇的方式展示音樂(lè)劇情,所有的文本都與你聽(tīng)到的音樂(lè)有關(guān),并不是一個(gè)很有趣的挑戰(zhàn)。

    我希望用一個(gè)無(wú)障礙系統(tǒng)將支線故事與音樂(lè)編組并連接起來(lái),但這是一個(gè)很困難的挑戰(zhàn),我希望可以快速創(chuàng)作內(nèi)容,而不必?fù)?dān)心內(nèi)容創(chuàng)作需要投入很多工作量,結(jié)果證明這是一個(gè)噩夢(mèng)。我一開(kāi)始就做了嘗試,但非常耗時(shí)間,我的目標(biāo)是快速實(shí)現(xiàn)想法。

    從圖中可以看到,我直接將很多數(shù)據(jù)寫(xiě)入了代碼中,希望它能夠直接寫(xiě)出對(duì)應(yīng)的對(duì)話(huà)文本,這的確可以將音樂(lè)與文本匹配,但我覺(jué)得結(jié)果給人的感覺(jué)還是非常奇怪,結(jié)果還不如自己直接做分支劇情。

    《Combi》

    這是一款休閑手游,我們希望為它做1000多個(gè)關(guān)卡,然而我們只有三周的時(shí)間完成,這是非常不切實(shí)際的,而且我還是這款游戲唯一的開(kāi)發(fā)者??紤]到游戲規(guī)則,程序化關(guān)卡生成會(huì)變得非常復(fù)雜,因此我不得不手動(dòng)制作。

    投入了2小時(shí)制作關(guān)卡之后,我感到壓力很大,因?yàn)檫@么短的時(shí)間根本不可能做出那么多的關(guān)卡。所以,我給自己的手機(jī)做了個(gè)編輯器,如圖:

    首先,我們生成一個(gè)完全隨機(jī)的關(guān)卡,帶有可調(diào)節(jié)的參數(shù),在游玩過(guò)程中可以手動(dòng)編輯,你可以控制關(guān)卡中的內(nèi)容,也可以完全去掉某些東西,還加入了保存關(guān)卡選項(xiàng)。最后,一個(gè)關(guān)卡制作只需要45秒左右即可完成,包括那些需要幾分鐘才能完成的高難度關(guān)卡。

    我可以在醒來(lái)之后做關(guān)卡,可以在地鐵通勤路上,或者睡覺(jué)前,都可以隨時(shí)隨地編輯關(guān)卡,而且不會(huì)影響我的工作計(jì)劃。

    這個(gè)關(guān)卡編輯器總共用了3天時(shí)間,它帶來(lái)的結(jié)果是拯救了我的精神健康,如果沒(méi)有這個(gè)編輯器,1000多個(gè)關(guān)卡可能會(huì)讓我手忙腳亂到崩潰。

    什么時(shí)候適合做工具?

    我的建議是,先“侵入(hack in)”內(nèi)容,做一些實(shí)際的內(nèi)容,讓關(guān)卡做到可玩。一旦有了可玩內(nèi)容,你就會(huì)知道你需要或者不需要什么工具,提前做這些工具,除非你不知道,否則提前準(zhǔn)備總不會(huì)有錯(cuò)。

    比如,之前的《Linelight》案例中,我用代碼寫(xiě)了一些關(guān)卡,主要是希望測(cè)試游戲的可行性,最終成為了《Linelight》關(guān)卡編輯器。

    你可能會(huì)浪費(fèi)比想象中更多的時(shí)間。

    所以,我的建議是先搞清楚你的偏好是什么,然后對(duì)此提出質(zhì)疑,比如,你是否不慌不忙?如果不介意做重復(fù)動(dòng)作,那么專(zhuān)門(mén)做工具是否有必要?或者,如果你希望提升效率,在想到的時(shí)候就去打造一個(gè)工具?

    假設(shè)你不慌不忙,這時(shí)候要了解重復(fù)動(dòng)作或者等待工具完成會(huì)浪費(fèi)多少時(shí)間,比如,大量重命名/編輯文件,而且每周要做兩次以上?;蛘?,需要離開(kāi)鼠標(biāo)、目視遠(yuǎn)方一段時(shí)間,這種情況也會(huì)發(fā)生;或者,每次代碼編輯都需要等待15秒以上重新編譯,那很可能有方法節(jié)約時(shí)間。

    另外,挑戰(zhàn)你的沾沾自喜,節(jié)約時(shí)間可能比你想象的容易很多,有些任務(wù)節(jié)約30%的時(shí)間可能并不需要投入很多精力。

    如果你和我一樣,希望提升效率,我的建議是先做一些內(nèi)容,然后看是否需要做一個(gè)工具,而不是反過(guò)來(lái)先做工具。因?yàn)椋螒蛟O(shè)計(jì)很可能會(huì)發(fā)生變化,你做的工具越是具體化,那么它被淘汰的概率就會(huì)越高。

    這就涉及到沉沒(méi)成本悖論,假設(shè)你為XYZ做了一個(gè)工具,對(duì)于開(kāi)發(fā)者或者游戲策劃來(lái)說(shuō),砍掉或者改變XYZ功能就會(huì)越困難。比如,某些功能應(yīng)該被砍掉,但由于做了工具,你可能并不會(huì)那么做,但這對(duì)游戲并不是正確的決定,如果不事先做工具,就可以避開(kāi)這種情況。

    我投入工具制作的門(mén)檻,是在沒(méi)有工具的情況下,到底會(huì)帶來(lái)多大的麻煩。我首先會(huì)嘗試在沒(méi)有工具的情況下研發(fā),如果一件事不斷地讓我覺(jué)得煩躁或者效率很低,或許就會(huì)考慮專(zhuān)門(mén)做一個(gè)工具,當(dāng)然,也有些時(shí)候并不會(huì)這么做。

    隨后,我會(huì)思考的是,做一個(gè)工具可能需要多久、做出來(lái)之后能夠?yàn)槲夜?jié)約多少時(shí)間?

    一個(gè)比較有代表性的案例就是前面我們提過(guò)的尖刺旋轉(zhuǎn),在《Bouncemeister》當(dāng)中旋轉(zhuǎn)一個(gè)尖刺需要選定目標(biāo)、選擇旋轉(zhuǎn)角度,游戲里有很多的尖刺,這個(gè)過(guò)程會(huì)帶來(lái)很大的麻煩。

    這種情況持續(xù)了幾周,然后我問(wèn)自己,加速這個(gè)過(guò)程最簡(jiǎn)單的方法是什么?我可以ctrl+R控制它旋轉(zhuǎn)90度,這需要我投入15分鐘。

    這種方法更好一些,但依然感覺(jué)很笨拙。隨后我又問(wèn)自己,做到自動(dòng)旋轉(zhuǎn)尖刺需要多久?答案是可能需要2小時(shí)左右。那么,我是否想要為它做編程呢?這當(dāng)然是有意義的。

    我為它用掉了一個(gè)半小時(shí),最終也為我節(jié)約了大量時(shí)間。一次旋轉(zhuǎn)只需要10秒左右的時(shí)間,如果每天要做50次旋轉(zhuǎn),這意味著每個(gè)月我只需要投入3個(gè)小時(shí),而且讓關(guān)卡設(shè)計(jì)流程更加流暢。

    用90分鐘的時(shí)間,換來(lái)這樣的結(jié)果,當(dāng)然是非常不錯(cuò)的。

    這是我給錯(cuò)位房間設(shè)計(jì)的另一個(gè)工具,如果放大來(lái)看,可以看到這些房間之間實(shí)際上并不匹配,這是個(gè)問(wèn)題,因?yàn)槟愫茈y直接看到。所以,我希望增加一個(gè)功能,能夠凸顯這些錯(cuò)誤,讓你知道需要解決這個(gè)問(wèn)題,這對(duì)游戲策劃很有幫助。

    于是我問(wèn)自己,是否想要增加這個(gè)功能?答案是否定的,因?yàn)檫@個(gè)問(wèn)題帶來(lái)的麻煩并不是很大。所以,最終我沒(méi)有增加這個(gè)功能。

    那么,對(duì)于這些情況,是否有正確的答案呢?顯然沒(méi)有,因?yàn)橛螒蜓邪l(fā)本身就是一團(tuán)亂麻,每個(gè)人都有自己的梳理方式。

    不完整的工具

    我做了很多不完整的工具,畢竟,我們的目標(biāo)是節(jié)約時(shí)間,而不是做一款神奇的工具。比如,《Linelight》編輯器有很多的bug,比如,打開(kāi)一個(gè)關(guān)卡需要快速點(diǎn)擊2-10次,有些關(guān)卡的rect bounds還是錯(cuò)誤的,而且,連接不同關(guān)卡依然需要手動(dòng)實(shí)現(xiàn)。我并沒(méi)有去解決這些問(wèn)題,因?yàn)闆](méi)有那個(gè)必要,這些問(wèn)題可能會(huì)浪費(fèi)時(shí)間,但為此專(zhuān)門(mén)做工具所節(jié)約的時(shí)間并不值得。

    最后,我復(fù)制了《Bouncemeister》很多的代碼,解決了很多問(wèn)題,所以,這并不一定是最好的答案。

    Unity代碼快捷方式(code shorts)

    需要聲明的是,這些快捷方式僅適用于Unity研發(fā),其中很多的東西都是我這么多年研發(fā)經(jīng)驗(yàn)積累的。它們當(dāng)中很多都被我復(fù)制到了新項(xiàng)目里,都可以節(jié)約一些時(shí)間,你們不一定需要直接照搬,但可以作為啟發(fā),也可以節(jié)約很多時(shí)間。

    如果感興趣,可以到圖片上方的鏈接下載并使用這些快捷方式,我這里也會(huì)舉一些例子。比如每次腳本刷新都需要重新加載場(chǎng)景,在Unity當(dāng)中,如果重新編譯,整個(gè)項(xiàng)目有可能會(huì)崩潰?;旧希聊恢械倪@些代碼,就可以起到作用,至少對(duì)我來(lái)說(shuō),不必在每次改變之后停止或者運(yùn)行項(xiàng)目,就可以自動(dòng)重新加載場(chǎng)景。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),這些代碼至少可以為每次改動(dòng)節(jié)約10秒鐘以上,尤其是對(duì)于比較大的項(xiàng)目來(lái)說(shuō),它節(jié)省下來(lái)的時(shí)間更多。

    吸附到網(wǎng)格線,這是它的代碼,非常簡(jiǎn)單,而且實(shí)用。

    我還做了很多結(jié)構(gòu)體(struct)用于不同項(xiàng)目,比如Color255.cs,ColorHSB.cs,都可以節(jié)約大量時(shí)間。還有Vector2Int.cs,基本上每款網(wǎng)格游戲我都會(huì)用到。

    GameUtils.cs幾乎用在了我所有項(xiàng)目中的靜態(tài)類(lèi)(static class)當(dāng)中,它可以用到大量的常見(jiàn)函數(shù)當(dāng)中,比如按像素設(shè)置SpriteRenderer大小,設(shè)置UIGraphic alpha、改變粒子系統(tǒng)屬性、設(shè)置編輯器鏡頭位置等等。

    MathUtils.cs與上面的快捷方式很像,它可以返回隨機(jī)bool,還可以合并兩個(gè)矩形、讓一些小數(shù)點(diǎn)位數(shù)變成整數(shù)。Vector2有些功能是沒(méi)有內(nèi)置的,比如絕對(duì)值、最大值、最小值等等,不過(guò)MathUtils.cs可以做到。

    總結(jié)

    我的第一個(gè)建議是避免籠統(tǒng)的工具。你可能想要一勞永逸,做一個(gè)工具、然后運(yùn)用到所有新項(xiàng)目之中,個(gè)人認(rèn)為,不要這么做,最好是為你的游戲做特別的工具,比如《Linelight》編輯器就是專(zhuān)門(mén)為這款游戲打造的,而且只需要幾個(gè)小時(shí)就可以完成。實(shí)際上,其中的一些代碼還可以用到其他具備類(lèi)似功能的游戲中。

    如果工具給你的感覺(jué)是“不完整”,沒(méi)有關(guān)系,因?yàn)樗蟾怕蕰?huì)和游戲給你的感覺(jué)一樣不完美,你總會(huì)有更多東西想要加入到游戲中,所以不完整也沒(méi)關(guān)系。

    犯錯(cuò)也是可以接受的,因?yàn)檫@不過(guò)是另一種學(xué)習(xí)方式,也是生活的一部分。

    優(yōu)秀的工具可以讓游戲策劃處于最佳狀態(tài),所以工具不僅是節(jié)約時(shí)間,還可以讓游戲設(shè)計(jì)更加流暢。我建議同行們認(rèn)真檢查自己的流程,然后發(fā)現(xiàn)在哪些地方浪費(fèi)了時(shí)間,如果你發(fā)現(xiàn)自己經(jīng)常重復(fù)一些動(dòng)作,這時(shí)候最好是做一個(gè)工具;如果只是自己喜歡增加工具,那么我建議先做一些內(nèi)容,然后看是否需要為之做工具。

    另外,定制工具還可以提升你對(duì)編程的興趣或者熱情,比如我就對(duì)編程越來(lái)越感興趣,這個(gè)建議不只是針對(duì)Unity,而是適用于所有引擎,以上就是今天分享的全部?jī)?nèi)容。

    ····· End ·····

    GameLook每日游戲產(chǎn)業(yè)報(bào)道

    全球視野 / 深度有料

    標(biāo)簽: 讓關(guān)卡制作事半功倍資深開(kāi)發(fā)者分享定制化工具打造經(jīng)驗(yàn)

    相關(guān)閱讀

    精彩放送