免费看国产曰批40分钟,国产麻豆剧传媒精品国产av,日本丰满熟妇无码亚洲影视下载,亚洲av永久无码精品

制作人經(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平臺(tái)開發(fā)的內(nèi)容以及在《不可思議之夢蝶》開發(fā)中Unity版本的選擇。

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

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

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

目前,在獨(dú)立游戲發(fā)布的主機(jī)平臺(tái)中,Switch是必不可少的。進(jìn)行平臺(tái)移植的過程中,我收獲了很多經(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ī)以及很多游戲平臺(tái)。

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

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

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

也是在這時(shí)候,我們第一次用到Unity的工具。我們發(fā)現(xiàn),同樣的項(xiàng)目在二個(gè)平臺(tái)上開發(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平臺(tái)也是比較有競爭力的,我們也詢問了很多Switch玩家,大家都非常期待這款游戲。

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

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

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

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

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

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

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

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

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

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

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

但其實(shí)很簡單,比如原來數(shù)據(jù)的序列化是JSON格式,最后只要在寫入那一步做移植就好了,接口的難度也不高。基本上初步成型,大家看一下示例就能學(xué)會(huì),而且它也支持Unity多線程異步存檔的寫入方式。

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

但任天堂所有平臺(tái)都沒有獎(jiǎng)杯系統(tǒng),但平臺(tái)也不排斥你自己去制作,所以我們把現(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平臺(tái)上是支持硬解壓的。因?yàn)橄馭witch這種移動(dòng)平臺(tái)的主機(jī),CPU的運(yùn)算能力是非常有限的,聲音一般使用顯卡的硬件進(jìn)行加速,所以它的解碼本身會(huì)浪費(fèi)大量CPU時(shí)間。

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

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

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

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

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

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

開發(fā)要通過任天堂開發(fā)后臺(tái)提交申請,然后由任天堂通知給Wwise的開發(fā)商,然后Wwise開發(fā)商再通過郵件反饋授權(quán)的信息,再進(jìn)行更新就可以支持Switch平臺(tái)了。這個(gè)流程在PlayStation平臺(tái)也是完全一樣的。申請過程沒有技術(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平臺(tái)的Unity版本并不是可以公開下載的,需要通過任天堂的SDK獲得Switch的Unity版本,這個(gè)版本隨著SDK版本更新得越高。一般來說,提交游戲的Unity版本要求很高。

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

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

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

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

最后解決方法很簡單,我們切換到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包,交給展會(huì)人員去參展,目前我們發(fā)現(xiàn)這種方式是最快的。

接下來是載入時(shí)間無法忍受的問題。Switch平臺(tái)存儲(chǔ)實(shí)際上是用的一種慢速的SSD存儲(chǔ)方式?!恫豢伤甲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í)會(huì)有60多秒的黑屏?xí)r間,完全動(dòng)不了。

如果做過Unity開發(fā)都知道,這種情況是非常難調(diào)試的,點(diǎn)運(yùn)行時(shí)Profiler完全是不動(dòng)的,然后Profiler會(huì)突然出現(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í),會(huì)默認(rèn)把所有聲音文件載入到內(nèi)存。很多技術(shù)大神可能對這種問題無所謂,但我們會(huì)在這件事上非??鄲溃恢廊绾谓鉀Q載入時(shí)間的問題。

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

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

我們沒有使用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.029197s
亚洲av国产爽歪歪无码| 韩国日本欧美大尺寸suv| 波多野たの结衣在线播放| 色偷偷伊人大杳蕉综合网 | 亚洲av无码一区二区二三区| avtom影院入口永久在线| 国产精品久久久久久无码av片| 久激情内射婷内射蜜桃| 欧美被狂躁高潮a片视频| 日本人妻丰满熟妇久久久久久 | 久久精品国产亚洲av高清热 | 亚洲国产欧美在线人成| 亚洲精品国产精品国自产| 娇小的学生videos16hd| 躺着把jiji向上摁平然后揉搓| 乖宝撞的你舒不舒服h| 人人妻人人藻人人爽欧美一区| 红杏亚洲影院一区二区三区| 含着jing液去上课h男男| 性色av无码| 一女多男3根一起进去描述| 中文精品无码中文字幕无码专区| 大秦赋全集1-78集免费观看| 小雪第一次尝到又大又粗| 精品熟女碰碰人人a久久| 国产精品久久久一区二区三区| 白洁性荡生活第90章| 99精品视频在线观看免费| 大肉蒂被嘬的好爽h娇门吟| 国产人妻无码一区二区三区不卡 | 国产亚洲精品麻豆一区二区 | 又粗又爽高潮午夜免费视频| metart极品人体| 扒开双腿疯狂进出爽爽爽动态照片| 亚洲色欲久久久综合网东京热| 少妇洁白无删减版178TXT| 高清dvd碟片 播放| 国产精品久久久久久无码不卡 | 亚洲精品国产精品| 精品无码av一区二区三区不卡| 国产av旡码专区亚洲av苍井空|