獨(dú)立團(tuán)隊(duì)是如何飛上高天的:《浮天小子》開發(fā)手記

和其他所有獨(dú)立游戲開發(fā)手記一樣,所有的故事都開始于一句:“如果我們……”

編輯星詠2015年09月11日 18時(shí)43分

編者按:這是一篇非常非常長(zhǎng)的開發(fā)手記,詳細(xì)記錄了《浮天小子》(Heroki)的開發(fā)經(jīng)驗(yàn)和教訓(xùn),原文發(fā)布于Gamasutra,由觸樂編譯。這款游戲曾經(jīng)獲得蘋果的全球首頁大圖推薦,你可以點(diǎn)擊這里來獲得詳細(xì)的游戲評(píng)測(cè)和視頻。開發(fā)者對(duì)評(píng)測(cè)中提出的諸如“關(guān)卡過長(zhǎng)”的一些問題,給予了正面回應(yīng)。同時(shí)把自己在開發(fā)過程中走過的彎路一一細(xì)數(shù),想必能給各位游戲開發(fā)者一些借鑒。這里是他們的官方博客,里面有更加詳盡的資料。

 

和其他所有獨(dú)立游戲開發(fā)手記一樣,所有的故事都開始于一句:“如果我們……”

當(dāng)iPhone3GS推出的時(shí)候,Michael Balm(音樂家,特效制作)是我們之中第一個(gè)買蘋果手機(jī)的,并且把它看做一個(gè)嚴(yán)肅的游戲設(shè)備。他和Bobby Bouman(3D效果制作)詳細(xì)交換了相關(guān)的意見。不過在當(dāng)時(shí),Bobby Bouman在Triumph Studios制作某個(gè)3A的主機(jī)游戲,他覺得手機(jī)游戲?qū)嵲谔^簡(jiǎn)單,而且也不看好移動(dòng)設(shè)備作為游戲平臺(tái)的前景。

隨著時(shí)間流逝,iPhone逐漸證明了自己在游戲方面的潛力。我們逐漸產(chǎn)生了“在這個(gè)平臺(tái)上搞點(diǎn)什么”的想法。一天夜里,當(dāng)我們一起滑冰的時(shí)候,Bobby和Jeffrey Kamermans(程序員)聊起來移動(dòng)游戲開發(fā)的事情,并且最終同意加入我們。而在鹿特丹的一次旅行中,我們邀請(qǐng)到另外一個(gè)朋友, Jimmy de Meza,來擔(dān)任游戲的概念設(shè)計(jì)。

如果我們把自己的專長(zhǎng)都集中在一起,會(huì)做出怎樣的游戲?由于我們都有自己的工作,所以游戲的開發(fā)只能在業(yè)余時(shí)間完成。這就決定了這款游戲必須具備兩個(gè)特點(diǎn):要足夠小(沒錯(cuò),?。銐蛴腥?。

Picomy_TeamPhoto
開發(fā)團(tuán)隊(duì)Picomy的合影

在一開始的時(shí)候,我們有無窮無盡的點(diǎn)子和想法。為了檢驗(yàn)這些點(diǎn)子的可行性,我們開始為這些點(diǎn)子匹配合適的游戲機(jī)制。我們所想到的第一個(gè)游戲十分簡(jiǎn)單:玩家在游戲中需要操作一輛載滿了乘客的公交車,在一條顛簸的路上行駛,汽車每顛簸一下就會(huì)有幾名乘客掉出來,最后在終點(diǎn)以所剩的乘客多少來定勝負(fù)——對(duì)于我們來說,這個(gè)游戲足夠簡(jiǎn)單,也足夠有效地磨合了團(tuán)隊(duì)。

團(tuán)隊(duì)的所有成員都十分喜歡“有趣”甚至是有點(diǎn)怪異的游戲機(jī)制,我們決定通過自己的作品,探索移動(dòng)平臺(tái)上可能的游戲機(jī)制。在制作游戲的過程中,負(fù)責(zé)程序的Jeffrey正在做其他完全不相干的小項(xiàng)目,但是他將自己的靈光一閃告訴了我們。多虧了他的點(diǎn)子,我們第一次發(fā)現(xiàn)了最適合觸屏設(shè)備的操作方式:在觸屏設(shè)備上,我們可以把一個(gè)物體進(jìn)行360度旋轉(zhuǎn),推來推去。就好像一陣風(fēng)把屏幕里的世界吹過一樣,你的指尖就是那陣風(fēng)!這是第一個(gè)得到我們所有人認(rèn)可的游戲原型,太完美了!

很快,我們就發(fā)現(xiàn)這個(gè)新的思路背后有無限的潛力。所以我們就中止了“公交車”項(xiàng)目,全力發(fā)掘這個(gè)新點(diǎn)子的潛力。根據(jù)這個(gè)機(jī)制,我們最初的游戲原型是一個(gè)迷宮游戲,玩家需要在不驚動(dòng)任何守衛(wèi)的情況下走到終點(diǎn)。開始,我們覺得一年怎么也能做完了。沒想到,這個(gè)小點(diǎn)子做成了一個(gè)大項(xiàng)目,而且居然做了有5年。

我們做對(duì)了的事情

新平臺(tái)上的操作方法

在一開始,我們就知道自己必須圍繞新的操作方式來做文章。核心玩法一旦確定,我們自然而然地產(chǎn)生了很多新的想法。而我們最終的目標(biāo),就是做一個(gè)向諸多經(jīng)典游戲致敬的冒險(xiǎn)游戲。

嚴(yán)格來說,《浮天小子》并不能算作平臺(tái)過關(guān)游戲,因?yàn)樗鼤?huì)飛!之所以給它增加上飛行功能,為了體現(xiàn)游戲獨(dú)特的操作。游戲在保留了原有的平臺(tái)游戲的要素和挑戰(zhàn)性,同時(shí)因?yàn)橛辛诵碌牟僮鞣绞?,又大大提高了角色的自由度?/p>

Heroki_Character_Development
游戲主角Heroki,看起來和一個(gè)淘氣的小男孩一樣

Heroki可以去到地圖上任何一個(gè)地方探索——我們?cè)谠O(shè)計(jì)探索地圖的時(shí)候也試圖將兩種玩法結(jié)合起來:玩家既可以干掉那些敵人;也可以躲開那些敵人不做理會(huì),不過這樣做的話,玩家會(huì)喪失掉一部分挑戰(zhàn)性和樂趣。我們?cè)谠O(shè)計(jì)關(guān)卡的時(shí)候,時(shí)刻提醒自己:我們的關(guān)卡是用來邀請(qǐng)玩家探索,引導(dǎo)玩家戰(zhàn)斗,而不是難為玩家的。但,具體要怎么戰(zhàn)斗呢?

傳統(tǒng)的平臺(tái)游戲是通過跳躍或者是把敵人踩扁來進(jìn)行攻擊的。但這種方式并不適合我們的游戲,因?yàn)槲覀兊腍eroki會(huì)飛,讓它直接跳起來會(huì)顯得有點(diǎn)蠢,所以我們需要一個(gè)更符合游戲風(fēng)格的角色跳躍方式。而如果允許角色隨時(shí)隨地都能攻擊,我們又認(rèn)為太過簡(jiǎn)單,所以,我們想通過一個(gè)類似“扳機(jī)”機(jī)制來對(duì)攻擊的時(shí)機(jī)做出調(diào)整。這個(gè)“扳機(jī)”應(yīng)該在點(diǎn)擊之間就可以觸發(fā),當(dāng)玩家點(diǎn)擊目標(biāo)的時(shí)候,Heroki就會(huì)自動(dòng)朝向那個(gè)方向;當(dāng)玩家按住目標(biāo)的時(shí)候,會(huì)觸發(fā)新的機(jī)制:Heroki會(huì)拿起箱子,按住目標(biāo)的時(shí)候調(diào)整方向,當(dāng)玩家松手的時(shí)候它會(huì)把箱子丟出去,這是他基本的攻擊手段。這種攻擊的流程是受到了彈弓的啟發(fā):按住、拉回來、射擊。

584_2015072590806941
這是一張自帶BGM的圖

到了這個(gè)時(shí)候,我們已經(jīng)有了所有的基礎(chǔ)游戲機(jī)制。但是當(dāng)我們自己試玩游戲的時(shí)候,總是覺得缺點(diǎn)什么:游戲的節(jié)奏在有些地方總是顯得太慢了。所以,我們加入了一個(gè)新的機(jī)制:自由落體,Heroki可以進(jìn)行自由自在下潛,這讓整個(gè)游戲的節(jié)奏都變得更快。玩家通過快速單擊就可以實(shí)現(xiàn)這個(gè)操作(根據(jù)選擇模式不同略有區(qū)別)?!白杂陕潴w”是《超級(jí)馬里奧》和《索尼克沖刺》里的跳躍,只不過是反方向的——它是我們游戲機(jī)制之拼圖上缺失的一塊,有了它讓整個(gè)游戲的節(jié)奏和深度都更加完整。

隨后,我們又加入了“沖刺”、“背刺”和大環(huán)境中風(fēng)隨后,我們又加入了“沖刺”、“背刺”和大環(huán)境中風(fēng)力的影響等附加能力,試圖讓游戲變化更多。因?yàn)橛辛孙L(fēng)的影響,我們必須設(shè)計(jì)一套新的觸發(fā)機(jī)制,這樣才不會(huì)和原有的機(jī)制有所沖突,比如說從屏幕邊緣畫出風(fēng)的軌跡。在這之前,我們并沒有見過類似的操作方式,但是這個(gè)方式出奇地好用。

在觸屏設(shè)備上,不通過任何虛擬按鍵設(shè)計(jì)如此之多的手勢(shì),并且對(duì)每一個(gè)都明確區(qū)分、防止誤觸是一件很有挑戰(zhàn)性的事情,尤其是當(dāng)我們決定只用一根手指就完成全部操作的時(shí)候。同時(shí),所有操作必須足夠簡(jiǎn)單,因?yàn)橹挥袨閿?shù)不多的幾個(gè)手勢(shì)是可以被用到觸屏設(shè)備控制上的。我們客服了這些挑戰(zhàn),最終呈現(xiàn)出來的成品看起來十分簡(jiǎn)明易懂。

美術(shù)方面

我們希望《浮空小子》的美術(shù)風(fēng)格能被足夠多的人所接受,這樣玩家才會(huì)耐心去探索游戲的每一個(gè)角落。并且希望能讓玩家感覺到自己置身于一個(gè)美麗的幻想世界中。

在確定現(xiàn)在的風(fēng)格之前,我們也做了一些嘗試,但是從頭到尾的大方向沒有變。我們的游戲應(yīng)該有一副老少咸宜,造型有趣,顏色鮮明的好皮相,既可以被廣為接受,而且還讓人印象深刻。

這是我們最初的概念圖:

heroki-pic-1
概念圖

我們從小時(shí)候的那些游戲中得到了豐富的營(yíng)養(yǎng),比如《超級(jí)馬里奧》《大金剛》《超級(jí)索尼克》《星之卡比》,每一個(gè)游戲都有自己獨(dú)特的風(fēng)格。就Heroki而言,我們期待這個(gè)角色能有很高的辨識(shí)度。比如他用來抓取東西的長(zhǎng)胳膊,可以讀取表情的大腦袋,小小的身體和短腿,都說明這個(gè)角色是偏重飛行功能的。

之所以選擇3D游戲是為了表現(xiàn)空間感。當(dāng)我們開始制作《浮空小子》的時(shí)候,iPhone 3gs的內(nèi)存并不足以實(shí)現(xiàn)我們想要的效果。如果制作2D游戲,很容易出現(xiàn)內(nèi)存崩潰的情況,用3D的就可以解決這個(gè)問題。我們決定使用通用材質(zhì),這樣可以制作許多不同的場(chǎng)景和形狀。當(dāng)2D圖像轉(zhuǎn)化成3D圖像的時(shí)候,我們盡可能保留了2D概念圖的風(fēng)格,很高興我們做到了!

heroki pic 3
耗時(shí)又長(zhǎng)又累人的AO效果

隨著開發(fā)進(jìn)程的推進(jìn),我們逐漸增加了越來越多的視覺特效:實(shí)時(shí)陰影、 邊緣光材質(zhì)球、 明暗漸變、溶解特效、鏡頭耀斑等等。很快我們發(fā)現(xiàn),這些效果并不適合2D表現(xiàn),我們需要一個(gè)別的東西來營(yíng)造氛圍。所以我們將自己的注意力轉(zhuǎn)到環(huán)境光遮蔽(ambient occlusion)上,這讓我們可以在保留2D效果的基礎(chǔ)上增加景深。唯一的問題在于我們的引擎不支持環(huán)境光遮蔽的效果,所以最后決定用頂點(diǎn)著色的方法來手工來增加環(huán)境光遮蔽的效果。手工加特效的好處在于,可以把精心挑選的顏色和材質(zhì)紋理進(jìn)行最合適的匹配——我們甚至還配出了全局照明的效果!實(shí)際上,使用單調(diào)的黑色只會(huì)讓畫面看起來十分“臟”,所以對(duì)于顏色進(jìn)行細(xì)微調(diào)整十分重要。但,手工添加環(huán)境光效果也有一些弊端:這個(gè)工作十分單調(diào),而且耗時(shí)十分長(zhǎng)。

音效和音樂

《浮空小子》的音樂和音效為整個(gè)游戲奠定了基調(diào),歡快的節(jié)奏和Heroki飛行時(shí)的胳膊一起搖擺,希望各位玩家能夠聽到就開心起來。

雖然我們的音樂幾易其稿,但其中“歡樂搖擺”的調(diào)調(diào)從未改變。我們?cè)谟螒蛑杏昧舜罅縿?dòng)態(tài)循環(huán)的音樂,比方說,當(dāng)Heroki在村莊的時(shí)候,玩家所聽到的是村莊主題曲和主旋律的混音。我們?cè)诖蠖鄶?shù)場(chǎng)景都用了這種方法增加背景音樂的豐富程度。在游戲地圖選擇界面時(shí),當(dāng)玩家切換不同的地圖時(shí),背景音樂會(huì)強(qiáng)調(diào)不同的樂器;而當(dāng)玩家在水下的時(shí)候,背景音樂也會(huì)為之一變。這些都是十分微小的改變,但可以讓玩家的視聽體驗(yàn)更好。在《浮空小子》中,總共有40首不同的音樂(包括劇情過場(chǎng))。

游戲的所有音效都是配合當(dāng)時(shí)音樂的基調(diào)(global pitch)。從總體來說,游戲音效應(yīng)該比音樂的音調(diào)要低一點(diǎn),展現(xiàn)一種不同的調(diào)性。使用基調(diào)進(jìn)行音效制作,可以很好地解決這個(gè)問題,達(dá)到最好的環(huán)境音效。我們最后在游戲中使用了900多個(gè)音效來營(yíng)造氛圍。

合適的開發(fā)工具和優(yōu)化工具

heroki pic 4
《浮天小子》所使用的是開發(fā)者自研的游戲引擎

在2010年的時(shí)候,像是Unity或者是虛幻這樣的引擎都十分貴。我們沒錢買這些引擎的商業(yè)許可,所以就自己做了一個(gè)。這讓我們對(duì)游戲引擎有了百分之百的掌控權(quán),同時(shí),開發(fā)引擎的過程也為我們提供了不少經(jīng)驗(yàn)。

使用自研引擎其實(shí)有非常大的優(yōu)勢(shì)。我們可以輕而易舉地在穩(wěn)定性、幀率,以及加載速度上達(dá)到最好的效果。所有的部分,都能在不增加垃圾進(jìn)程的情況下得到最恰當(dāng)?shù)膬?yōu)化。因?yàn)槲覀儗?duì)游戲引擎有著完全的掌控,所以成功實(shí)現(xiàn)了在蘋果全系列設(shè)備上都能以60fps的速度,向玩家展示華麗的特效和陰影效果。即使在老機(jī)器上運(yùn)行游戲,我們也不需要犧牲視覺效果作為代價(jià)。這證明,我們當(dāng)初選擇自研引擎是正確的。

不過,自研引擎也有一些缺點(diǎn),構(gòu)建一個(gè)可用的引擎十分花時(shí)間。DIY引擎一方面在拖慢你的工作進(jìn)度,另一方面在磨損你的耐心。控制好工作進(jìn)度是非常非常重要的一件事,而這正是接下來要談到的內(nèi)容。

總體來說,我們的Picon引擎最后成為了非常有用的工具,我們?yōu)樗湴痢?/p>

業(yè)余開發(fā)=比較小的可能會(huì)有資金問題

對(duì)于手機(jī)游戲來說,5年的開發(fā)時(shí)間實(shí)在太長(zhǎng),甚至是聞所未聞。主要是由于是利用業(yè)余時(shí)間開發(fā),所以我們敢說自己有著全世界最寬松的游戲開發(fā)環(huán)境,想怎么做就怎么做。對(duì)于我們來說,沒有死線的壓力;SEGA在時(shí)間方面對(duì)我們也沒有步步緊逼,給了我們相當(dāng)大的自由度。我們可以拍著胸脯保證:我們自己也很愛玩《浮天小子》,并且我們把所能想到的點(diǎn)子都放在了游戲中。

我們的成員都有穩(wěn)定的收入來源,并且沒有直接在做游戲上花錢(除了時(shí)間、必要的軟件許可和個(gè)人貸款什么的)。盡管會(huì)有一些麻煩,但是這種開發(fā)方式讓我們的成員都感覺很舒服。

Heroki_HomeTown01
左圖為2012年游戲成品,右圖為2013年游戲成品

我們做錯(cuò)了的事情

工作進(jìn)度

因?yàn)槲覀冎饕且赃M(jìn)度為中心,并不能投入足夠的時(shí)間去熟悉合適的工具。制作關(guān)卡時(shí),選擇合適的工具十分重要。在開發(fā)的最后幾年,我們沒能在在關(guān)卡編輯器上運(yùn)行過游戲,也不能在Mac的模擬器上運(yùn)行游戲——因?yàn)橛螒蛱罅耍?/p>

為了測(cè)試游戲,我們不得不:

1、提交文件到服務(wù)器,然后等著,直到壓出來一個(gè)合適的工程文件;

2、把工程傳到Test Flight或者iTunes Connect;

3、從Test Flight下載游戲到手機(jī)或者平板上,這時(shí)候才能看到測(cè)試版游戲有什么問題。

Heroki_Screenshot_Levantia
2015年的正式成品

我們必須在“做(找)一個(gè)好工具”還是“做一個(gè)好游戲”做出選擇,很明顯,我們選擇了后者。但我們不知道這個(gè)選擇是否正確:好工具無疑可以提升生產(chǎn)效率,不合適的工具會(huì)浪費(fèi)時(shí)間——我們?cè)诜磸?fù)的上傳和等待中深刻地認(rèn)識(shí)到了這一點(diǎn)。

除了引擎方面的問題,異地工作并不像想象中那么高效,這也拖慢了我們的游戲開發(fā)進(jìn)度(平時(shí)都是各自在家開發(fā)游戲的)。我們大多數(shù)溝通都是通過Skype進(jìn)行,每次必須十分清楚地詢問對(duì)方才能避免誤解。即使這樣,依然時(shí)不時(shí)會(huì)出現(xiàn)成員之間對(duì)于一個(gè)玩法解讀不同的情況。萬幸的是,最終我們適應(yīng)了這種遠(yuǎn)程工作關(guān)系。

在項(xiàng)目快結(jié)束的時(shí)候,我們終于可以在同一地點(diǎn)工作了,這段時(shí)間我們的工作效率十分高。一同工作讓我們的創(chuàng)作和測(cè)試流程以及開發(fā)進(jìn)度更加快。

毋庸置疑的是,我們自己工作進(jìn)度控制十分差。不過,這種寬松的流程正是激發(fā)我們創(chuàng)造力的因素之一。不管寬松或者是嚴(yán)苛的工作流程,大家能一起工作,這個(gè)事情本身就是一份有趣又有益的經(jīng)驗(yàn)。

計(jì)劃

好的計(jì)劃是成功的一半,它應(yīng)該能對(duì)項(xiàng)目當(dāng)前的進(jìn)展有一個(gè)大概的描述——我們用一種非常慘痛的方式才認(rèn)識(shí)到這一點(diǎn)。

關(guān)注了我們社交媒體的人,都會(huì)注意到:在游戲完成之前,我們說了很多很多遍“要做完了!”。

QQ圖片20150909170252
我們說了很多遍“要做完了!”

我們發(fā)現(xiàn)一個(gè)制定按部就班的計(jì)劃會(huì)花費(fèi)很多時(shí)間,但我們都沒那樣的閑心。結(jié)果,我們做了一系列小計(jì)劃保證項(xiàng)目順利推進(jìn),但這些小計(jì)劃并不能做到總攬全局,也不能讓我們看到還剩下多少工作沒做。如果有一個(gè)切實(shí)可行的計(jì)劃,會(huì)讓我們對(duì)開發(fā)進(jìn)程有更明確的認(rèn)識(shí)。

我們向大家保證,已經(jīng)好好地吸收了這些經(jīng)驗(yàn)教訓(xùn),在下一個(gè)項(xiàng)目中絕不再犯。

人際支持

在業(yè)余時(shí)間做這種規(guī)模的游戲,需要我們每個(gè)人都做出一些犧牲。對(duì)于項(xiàng)目的熱情讓我們放棄了一些陪伴家人、朋友和伴侶的機(jī)會(huì)。這些犧牲對(duì)我們的個(gè)人生活造成了一些影響,令游戲開發(fā)的最后階段舉步維艱。

試玩

雖然我們自己承擔(dān)了大部分游戲測(cè)試的工作,并且還找了專業(yè)的測(cè)試人員進(jìn)行協(xié)助,SEGA方面也給了一些行之有效的建議,但還是發(fā)現(xiàn)這些測(cè)試結(jié)果遠(yuǎn)遠(yuǎn)不夠。

在游戲推出后,我們發(fā)現(xiàn)一系列的Bug,這些Bug無一例外的都可以在測(cè)試中發(fā)現(xiàn)。比如在iPad Mini上游戲會(huì)閃退,這主要是由于設(shè)置了錯(cuò)誤的材質(zhì)大小,而導(dǎo)致內(nèi)存崩潰。這個(gè)問題很容易解決,但因?yàn)槲覀儧]有在iPad Mini上測(cè)試游戲,所以沒有發(fā)現(xiàn)。由于類似這樣的Bug,導(dǎo)致一部分玩家在App Store上打出低分。

在游戲推出后的幾天再更新一個(gè)Bug修復(fù)版已經(jīng)成為iOS游戲的常態(tài)。4天后,在我們修復(fù)這個(gè)問題以后,我們收到了很多積極的回應(yīng),App Store的評(píng)分也有顯著的提升。

(對(duì)于移動(dòng)游戲玩家來說)關(guān)卡太長(zhǎng)了

在我們自己玩游戲的時(shí)候,可以在5到10分鐘就完成一個(gè)關(guān)卡。我們收集了幾位玩家總的通關(guān)時(shí)間,發(fā)現(xiàn)平均每位玩家完成一關(guān)的時(shí)間在20到30分鐘。雖然這不是什么致命傷,但我們發(fā)現(xiàn),總有玩家在意料之外的地方卡住。

既然有喜歡某款游戲的玩家,就一定會(huì)有不喜歡某款游戲的玩家。我們很難說清楚到底什么游戲更加適合移動(dòng)游戲市場(chǎng)。但現(xiàn)在我們知道,在iOS平臺(tái)上玩家比較喜歡短小精悍的游戲流程和簡(jiǎn)單易懂的游戲設(shè)計(jì)。這個(gè)結(jié)論看起來如此簡(jiǎn)單易懂,但是和我們的初衷相反——我們的目標(biāo)是制作在視聽效果和游戲性上都能達(dá)到主機(jī)品質(zhì)的游戲。因?yàn)槭袌?chǎng)上缺乏這樣的作品,所以我們想要把這樣的體驗(yàn)在帶到移動(dòng)游戲市場(chǎng)——盡管,這可能是一個(gè)比較小眾的需求。

結(jié)語

開發(fā)《浮空小子》是一場(chǎng)非比尋常的奇妙旅程。我們?cè)谄渲袑W(xué)到了很多游戲開發(fā)的知識(shí),和一個(gè)大發(fā)行商合作了5年——這只是開始?!陡】招∽印肥俏覀兊牡谝粋€(gè)作品。隨著游戲發(fā)行,我們的團(tuán)隊(duì)也要“從頭開始”。我們一路上克服了各種困難,互相激勵(lì)?!陡】招∽印芬呀?jīng)證明了我們能作為一個(gè)團(tuán)隊(duì)工作,一起做出好玩的游戲。

游戲名:《浮空小子》

開發(fā)商:Picomy

發(fā)行商:SEGA

發(fā)行日期:2015年7月2日

平臺(tái):iOS

開發(fā)人員名單:Michael, Bobby,Jeffrey,Jimmy

開發(fā)時(shí)長(zhǎng):58個(gè)月

開發(fā)工具: Picon引擎,Maya,Photoshop,F(xiàn)L Studio等

0

編輯 星詠

hanna@chuapp.com

未來寫在水波之上。

查看更多星詠的文章
關(guān)閉窗口