久久人妻熟女中文字幕av蜜芽,40岁了水还特别多怎么回事,天天躁日日躁狠狠躁av麻豆男男,少妇高潮一区二区三区99

制作人經(jīng)驗(yàn)分享:《不可思議之夢蝶》如何從PC移植到NS

2020-12-25 16:11:05

在今年5月份的Unite 上,隊(duì)友游戲制作人李喆分享了有關(guān)《不可思議之夢蝶》從PC版移植到Nintendo Switch的經(jīng)驗(yàn)之談,主要內(nèi)容包括需要針對Switch平臺開發(fā)的內(nèi)容以及在《不可思議之夢蝶》開發(fā)中Unity版本的選擇。

以下為分享內(nèi)容:

大家好,今天我要分享的內(nèi)容是《不可思議之夢蝶》從PC版移植到Nintendo Switch。

現(xiàn)在使用Unity開發(fā)游戲,大多數(shù)人都會先制作PC版本,這是因?yàn)檫\(yùn)行和調(diào)試非常方便。為了讓游戲能夠獲得更多收益,我們肯定要發(fā)布到更多平臺上。

目前,在獨(dú)立游戲發(fā)布的主機(jī)平臺中,Switch是必不可少的。進(jìn)行平臺移植的過程中,我收獲了很多經(jīng)驗(yàn),在此分享給大家,讓大家在進(jìn)行項(xiàng)目移植的時(shí)候能夠少走一點(diǎn)彎路,節(jié)約一些時(shí)間。

首先自我介紹一下,我是隊(duì)友游戲的李喆。我們是一家在天津的獨(dú)立游戲工作室,我們的第一個(gè)游戲作品是《鯉》,這是一款以環(huán)保為主題、中國風(fēng)、體驗(yàn)型的輕度解謎2D游戲,發(fā)布到手機(jī)以及很多游戲平臺。

在完成《鯉》之后,我們開始制作《不可思議之夢蝶》。這是一個(gè)3D項(xiàng)目,因此在開發(fā)流程和分配上有更多事情要去作,所以我們的團(tuán)隊(duì)從一開始的2個(gè)人擴(kuò)大了14個(gè)人。

當(dāng)然,另一個(gè)原因是《鯉》的成績挺不錯(cuò)的,我們掙到了一些錢,所以我們想做一些更大更具挑戰(zhàn)的事情。

上圖就是《鯉》,它是一個(gè)純2D游戲,一開始是針對手機(jī)平臺開發(fā)的。為什么使用Unity呢?因?yàn)槲覀兿胍l(fā)布到PS4平臺,所以我們使用Unity在PS4平臺上又重新開發(fā)了一遍。

也是在這時(shí)候,我們第一次用到Unity的工具。我們發(fā)現(xiàn),同樣的項(xiàng)目在二個(gè)平臺上開發(fā),明顯能夠?qū)Ρ瘸鯱nity上的開發(fā)效率是非常高的,所以我們決定使用Unity更深入的去做一些更復(fù)雜的游戲。

Unity擅長的制作3D的項(xiàng)目,所以我們就去學(xué)習(xí),然后制作出了《不可思議之夢蝶》。

上圖的海報(bào)其實(shí)是游戲中截圖的畫面,大家可以看到,這保持了一貫的畫面比較清晰的風(fēng)格,并且使用了Low-Poly的美術(shù)風(fēng)格。

為什么要用這個(gè)風(fēng)格呢?這是因?yàn)槲覀儓F(tuán)隊(duì)比較小,不可能投入很多資源去制作次世代的畫面。使用這種美術(shù)風(fēng)格是比較討巧的,也可以充分發(fā)揮出我們美術(shù)的優(yōu)勢:比較清新、亮麗、有特點(diǎn)的美術(shù)結(jié)果。

我們在《不可思議之夢蝶》中制作了2D的手繪動(dòng)畫,用作游戲的敘事,我們在游戲美術(shù)上也花了很大的工夫,不只是在技術(shù)上。這樣的畫面在Switch平臺也是比較有競爭力的,我們也詢問了很多Switch玩家,大家都非常期待這款游戲。

《不可思議之夢蝶》已經(jīng)在Steam和WeGame平臺上銷售了,很多玩家買了Steam版本,但還沒有打開玩,他們告訴我,他們在等待Switch的版本,所以我們也是非常積極的進(jìn)行移植。

《不可思議之夢蝶》是我們第一次開發(fā)3D游戲,我們用到Asset Store資源商店中里面很多的插件。由于很多插件都是開源的,也提供源代碼,如果不了解基礎(chǔ)知識的話,可以通過看插件代碼就學(xué)會很多基礎(chǔ)知識。

此前,我在Unity官方微信發(fā)表了《不可思議之夢蝶》開發(fā)經(jīng)驗(yàn)分享,介紹我們使用了多少插件,分別用來做什么,得到了業(yè)內(nèi)同行很多的認(rèn)可。包括《硬核機(jī)甲》的制作人穆飛,他和我說:其實(shí)制作Unity項(xiàng)目時(shí),插件是可以提高不少效率的。

接下來分享主要內(nèi)容:怎么把PC平臺游戲移植到Switch平臺?我也會介紹一下PlayStation平臺,因?yàn)檫@些平臺都是主機(jī)平臺,所以會有一些特殊的要求。

先談一談基本的開發(fā),Switch平臺有一些大家需要提前知道的知識。

首先它的輸入不能用Unity自帶的標(biāo)準(zhǔn)Unity Input來做,至少現(xiàn)在還不可以。我們使用了一個(gè)Asset Store的插件Rewired,它可以讓游戲很快適應(yīng)所有的手柄,包括Android和iOS的手柄,它非常方便地讓你通過配置方式來支持。

然后是Switch平臺特有的HD振動(dòng),包括加速計(jì)的調(diào)用和讀取以及數(shù)據(jù)格式,都是很特殊的。實(shí)際上這些東西也都很簡單,因?yàn)楣俜綍峁︰nity平臺可以使用的范例代碼,大家只需要參考將代碼改一改就可以了。

最后說一下Joy-Con的5種輸入方式。

玩過Switch平臺都知道,Switch的手柄是可以拆出來分別變成二個(gè)手柄的,但它變成二個(gè)手柄以后,按鍵的數(shù)量和位置都有很大的變化。如果想支持所有輸入方式的話,需要提前對游戲設(shè)計(jì)做好基礎(chǔ)的規(guī)劃。

像《不可思議之夢蝶》是不支持Joy-Con Left和Joy-Con Rirght這種雙人單手柄模式的,它只支持剩下這三種游戲方式。所以在移植過程中,大家首先要考慮游戲的輸入。

然后是存檔問題。關(guān)于主機(jī)平臺的存檔,因?yàn)槭翘厥獾牟僮飨到y(tǒng),所以存檔文件的讀取權(quán)限都是有特殊要求的,所以這些平臺包括PS4平臺的讀檔,I/O部分都是需要重寫的。

但其實(shí)很簡單,比如原來數(shù)據(jù)的序列化是JSON格式,最后只要在寫入那一步做移植就好了,接口的難度也不高?;旧铣醪匠尚停蠹铱匆幌率纠湍軐W(xué)會,而且它也支持Unity多線程異步存檔的寫入方式。

還有獎(jiǎng)杯系統(tǒng)。我們做的PC版本默認(rèn)是有獎(jiǎng)杯系統(tǒng)的,獎(jiǎng)杯系統(tǒng)對玩家有很大誘惑力,大家會為了收集獎(jiǎng)杯更多的去玩游戲。

但任天堂所有平臺都沒有獎(jiǎng)杯系統(tǒng),但平臺也不排斥你自己去制作,所以我們把現(xiàn)有數(shù)據(jù)結(jié)構(gòu),增加了展現(xiàn)方式,把獎(jiǎng)杯列表展現(xiàn)出來,自己做了獎(jiǎng)杯的彈窗展示。很多Switch游戲其實(shí)都是自己制作的這類系統(tǒng),例如:《空洞騎士》的獎(jiǎng)杯系統(tǒng)都是自己制作的。

還有聲音格式。這也是比較特殊的,它支持Opus格式,這種格式在Switch平臺上是支持硬解壓的。因?yàn)橄馭witch這種移動(dòng)平臺的主機(jī),CPU的運(yùn)算能力是非常有限的,聲音一般使用顯卡的硬件進(jìn)行加速,所以它的解碼本身會浪費(fèi)大量CPU時(shí)間。

我們進(jìn)行了測試,使用Mp3格式在Switch平臺上可以運(yùn)行,但是它會占用大量CPU時(shí)間,所以有時(shí)發(fā)生游戲掉幀的話,大家可能想象不到這是聲音導(dǎo)致的掉幀。

我們使用了Wwise。我想推薦一下這個(gè)平臺,這是一個(gè)第三方的聲音引擎,它的自帶功能比Unity原生聲音功能多很多,包括基于物理環(huán)境的聲音,包括反彈的聲音,它都可以支持。

Wwise對Switch平臺有特殊的格式,即OpusNX格式,可以直接調(diào)用硬件,是非常好的格式。OpusNX這種格式還有一個(gè)好處,那就是可以直接以壓縮的形式進(jìn)入內(nèi)存,所以它在運(yùn)行時(shí)占用的內(nèi)存會更低一些。

Switch平臺可以使用的內(nèi)存大概也就1G多吧,不是特別多,如果制作游戲沒有考慮內(nèi)存問題,內(nèi)存就存在爆掉的可能。

說一下使用插件問題。Wwise和Rewired這種插件是需要考慮授權(quán)問題,這是有成本的,Wwise會針對每個(gè)平臺有相應(yīng)價(jià)格,也會根據(jù)不同使用平臺的多少會有折扣。Rewired是免費(fèi)的,一次性支付可以全平臺使用。

但在我們在使用的第一次運(yùn)行會發(fā)現(xiàn),打包時(shí)并沒有針對平臺支持的代碼。這個(gè)代碼要怎么獲得?

開發(fā)要通過任天堂開發(fā)后臺提交申請,然后由任天堂通知給Wwise的開發(fā)商,然后Wwise開發(fā)商再通過郵件反饋授權(quán)的信息,再進(jìn)行更新就可以支持Switch平臺了。這個(gè)流程在PlayStation平臺也是完全一樣的。申請過程沒有技術(shù)難度,但是有時(shí)間考慮。

例如,Wwise開發(fā)商在加拿大的蒙特利爾,時(shí)差相反,我們醒著他們在睡覺,因此通過任天堂通知再反饋回來大概要2個(gè)工作日的時(shí)間,如果今天開始想要移植游戲,但發(fā)現(xiàn)沒有License,就可能需要2天后才能發(fā)布,特別說這件事是希望可以幫助大家節(jié)省時(shí)間,大家一定要記住這個(gè)。

上面是一些具體技術(shù)上的經(jīng)驗(yàn),下面談?wù)劶夹g(shù)之外的,我們遇到的問題。這些問題如果沒有動(dòng)手做過,幾乎是想不到的。

如何選擇Unity版本?

Switch平臺的Unity版本并不是可以公開下載的,需要通過任天堂的SDK獲得Switch的Unity版本,這個(gè)版本隨著SDK版本更新得越高。一般來說,提交游戲的Unity版本要求很高。

我們遇到的情況是要在Unity 2018.2到Unity 2018.3的版本才可以提交。如果項(xiàng)目沒有達(dá)到版本要求的話,提交時(shí)就會失敗,被拒絕,所以盡量選擇最新的SDK版本。

我們遇到一個(gè)問題,可能有時(shí)候打包出來的游戲在Switch上出現(xiàn)一些莫名其妙的崩潰問題,而且只有非常少的報(bào)錯(cuò)信息。我們?nèi)ラ_發(fā)者論壇搜索這些信息,根本就沒有任何線索。此時(shí)大家一定要考慮切換版本,也許切換到更高版本,再測試打包是不是正常的。

我們的具體遭遇是,一開始我們是用Unity 2018.1.1開發(fā),開發(fā)時(shí)都是正常的。到參加展會時(shí),我們需要臨時(shí)打包一個(gè)游戲演示出來。為了展會時(shí)效果更好,幀數(shù)更高,我們會出Release版本。

但對于Release版本,我們發(fā)現(xiàn)在Unity 2018.1.1時(shí),它會直接崩潰,沒有任何信息,只要運(yùn)行就會崩潰。于是我們查詢論壇,咨詢不少專家人士,幾乎得不到答案。

最后解決方法很簡單,我們切換到Unity 2018.1.9,直接Release打包出來就是正常的。沒做任何其它事情,就得到了正常的版本,一句代碼都沒改,這也是一個(gè)經(jīng)驗(yàn)吧??赡墁F(xiàn)在最新版本已經(jīng)沒有這個(gè)問題了,我們也希望知道是否有其它方法可以解決這個(gè)問題。

如果同時(shí)用二個(gè)版本,開發(fā)功能一般要用Direct Build的方式,因?yàn)榭梢钥慈罩竞驼{(diào)試。像《不可思議之夢蝶》》游戲是56G,每次切換Unity版本時(shí),需要重新導(dǎo)入所有資源,這個(gè)速度是非常慢的。

我們現(xiàn)在的狀態(tài)是,如果在普通SSD硬盤導(dǎo)入一遍工程,需要1個(gè)多小時(shí),我們完全接受不了這個(gè)時(shí)間,所以我們想到在局域網(wǎng)內(nèi)搭一個(gè)Cache Server,它可以極大加快切換Unity版本后重新導(dǎo)入的速度。

但是每次打開不同版本時(shí),大概還是需要將近5分鐘時(shí)間,雖然已經(jīng)了優(yōu)化很多,從1個(gè)多小時(shí)減少5分鐘,可還是不能接受,不可能每次改一個(gè)Bug都要5分鐘時(shí)間。

最后,我們想到使用Git,使用二個(gè)不同分支,使用不同Unity版本打開,一個(gè)是Unity 2018.1.1,另一個(gè)是Unity 2018.1.9,我們在Unity 2018.1.1改完和調(diào)試后沒問題的話,然后用Unity 2018.1.9出一個(gè)Release包,交給展會人員去參展,目前我們發(fā)現(xiàn)這種方式是最快的。

接下來是載入時(shí)間無法忍受的問題。Switch平臺存儲實(shí)際上是用的一種慢速的SSD存儲方式?!恫豢伤甲h之夢蝶》這樣解密類的游戲,第一關(guān)載入時(shí)間大概在90秒左右,雖然我們可以在次期間進(jìn)行一些載入動(dòng)畫,但是這個(gè)時(shí)間還是太長了,沒有辦法忍受。

我們只做了一件事情,時(shí)間就變成了30秒。接下來我要介紹一個(gè)例子。

這里我要提一個(gè)非常有名的游戲《ICEY》,這個(gè)游戲在即將發(fā)布Steam版本時(shí),我正好出差在上海,和《ICEY》開發(fā)者鳳翔和Mark在辦公室聊天,我發(fā)現(xiàn)程序員鳳翔一直在調(diào)試,我問他:你在干嘛?明天就要上線了。他發(fā)現(xiàn)游戲讀取時(shí)間太慢了,游戲啟動(dòng)時(shí)會有60多秒的黑屏?xí)r間,完全動(dòng)不了。

如果做過Unity開發(fā)都知道,這種情況是非常難調(diào)試的,點(diǎn)運(yùn)行時(shí)Profiler完全是不動(dòng)的,然后Profiler會突然出現(xiàn)非常高的峰值,告訴你剛才的60秒做了什么,但依舊不知道具體哪一步導(dǎo)致載入速度慢。

我那時(shí)突發(fā)奇想,順口一說:要不改一下聲音格式吧?!禝CEY》當(dāng)時(shí)使用Mp3格式,在PC上支持Streaming流式加載的方式,鳳翔就切了一下,直接就從60秒變成了10多秒的載入時(shí)間,瞬間可以接受了,就是這種程度。

這是為什么呢?因?yàn)槲野l(fā)現(xiàn)《ICEY》是一款Meta Game,有很多的語音文件和碎片聲音。而打包在Resources文件夾底下的,所以載入時(shí),會默認(rèn)把所有聲音文件載入到內(nèi)存。很多技術(shù)大神可能對這種問題無所謂,但我們會在這件事上非??鄲?,不知道如何解決載入時(shí)間的問題。

使用Streaming方式還有一個(gè)好處是:在游戲運(yùn)行時(shí),游戲文件不是直接裝入內(nèi)存的,所以運(yùn)行時(shí)游戲內(nèi)存的壓力會小很多,尤其對移動(dòng)平臺和Switch平臺這種內(nèi)存比較有壓力的平臺會有更好的優(yōu)化效果。

但使用Streaming方式也有缺點(diǎn):第一次播放聲音時(shí)會有一定的延遲和卡頓,但反復(fù)播放聲音就不會有這樣的問題。

我們沒有使用Unity自帶的聲音系統(tǒng),而使用了Wwise,它也有同樣的設(shè)置,支持Streaming。對于《不可思議之夢蝶》一個(gè)關(guān)卡的聲音,我們通過從普通的全載入方式變?yōu)镾treaming方式,載入時(shí)間可以從90秒提升到30秒,結(jié)果非??捎^。

Wwise支持SoundBank概念,也就是聲音庫,它可以把不同音效打在不同的聲音庫里。例如每個(gè)關(guān)卡和場景有自己特有的道具的話,可以把它們打包在一起。

還有一些公共的音效或聲音可以打在公共的庫里面,它支持同時(shí)載入多個(gè)SoundBank,可以通過這種方式再次減少游戲運(yùn)行時(shí)的聲音資源帶來的壓力。

本文來自Unity,本文觀點(diǎn)不代表威狐手游立場,轉(zhuǎn)載請聯(lián)系原作者。

0.027713s
诱人的妺妺2中文在线观看车爱| 国产下药迷倒白嫩美女| 叶辰萧初然最新更新章节免费阅读 | 日本vs中国vs亚洲看无码| 少爷湿润粗大跪趴含bl| 国产精品国产亚洲精品看不卡| 欧美孕妇变态重口另类| 亚洲一区自拍高清亚洲精品| 24小时日本高清在线观看电影 | 特黄三级又爽又粗又大| 亚洲av成人无码久久精品老人| 免费播放男人添女人下边| 人妻换人妻a片爽麻豆| 日本最大胆的人文体艺术| 好吊妞国产欧美日韩免费观看| 性色AV一区二区三区咪爱四虎| 校花被校长啪到腿软| 欧美精品久久久久a片| 日本人妻伦在线中文字幕 | 穿着旗袍方便c英语老师| 好猛好深好爽喷水无码视频| 无码网站| 久久天天躁狠狠躁夜夜96流白浆| jizz性欧美2| 亚洲国产日韩a在线欧美2020| 日本高清一区二区三区| 亚洲精品一区二区| 亚洲午夜av久久久精品影院色戒 | 成人免费无码成人影院日韩| 近親五十路六十被亲子中出| 国产98色在线 | 国| 特色表演| 久久精品女人天堂AV麻| 日韩乱码人妻无码中文字幕| 欧美性受xxxx黑人xyx性爽| 中文无码一区二区不卡AV| 在教室伦流澡到高潮h免费视频 | 啊灬啊别停灬用力啊黑人| 日韩av片无码一区二区不卡| 人人妻人人澡人人爽国产一区 | 欧一欧二欧三|