官术网_书友最值得收藏!

第80章 開發(fā)中的困難

一般來說,一個2d游戲的攻擊形式,本質(zhì)上都比較死板。

這個死板主要說的是互動效果,也就是你在2d游戲里揮動武器砍一下,除了對怪物造成傷害,它基本不會出現(xiàn)第二種情況。

2d游戲不像3d游戲,業(yè)界最有名的那幾個開發(fā)引擎,像虛幻和Unity,更多都是為3d游戲開發(fā)服務(wù)的。

這些引擎會自帶一些模擬現(xiàn)實的物理系統(tǒng),比如最常用的剛體系統(tǒng),就是可以模擬出一個物體該有的質(zhì)量、空氣阻力、重力影響等等。

無論你是碰撞到這么一個剛體,還是將它從高空往下扔,它都會根據(jù)自帶的物理性質(zhì),產(chǎn)生出非常直接的互動效果。

所以說在3d游戲里,哪怕你沒有編寫任何的代碼,你揮舞的武器也能發(fā)揮出一些稀奇古怪的效果。畢竟物理系統(tǒng)擺在那,就算你不做格擋之類的游戲內(nèi)容,它說不定什么時候也能給你來一下振刀。

2d游戲可就沒那么幸運了,你3d游戲做把劍出來,那就是真的有這把劍;2d游戲做把劍,實質(zhì)上劍只是人物身上的一張貼圖,假的很。你就算真砍出去了,靠的也是生成的劍氣判定觸發(fā)器范圍,而不是真的有把劍戳到敵人身上。

“也就是說,我們要根據(jù)角色的攻擊動畫,逐幀調(diào)整他的碰撞體范圍,直至每一幀都吻合動畫顯示出來的劍氣范圍。”

姜山解釋了接下來的工作。

到這一步,其實還屬于正常2d游戲的范疇。

哪怕姜山不說,團(tuán)隊其他人根據(jù)網(wǎng)上的視頻教學(xué),或者自己根據(jù)Unity幫助文檔摸索兩天,馬上就能掌握如何實現(xiàn)2d游戲的人物攻擊。

但空洞騎士的攻擊很有意思,它比許多2d游戲多考慮了一個維度,那就是它的攻擊系統(tǒng),是融合在平臺跳躍系統(tǒng)里的!

在場景中許多關(guān)卡,都需要玩家熟練掌握“下劈”這一個需要點操作量的技巧,才能通過游戲里的主線流程——沒錯,是主線流程!

玩家要是連下劈特殊敵人或者下劈特殊障礙物,來延長且增加跳躍幅度的操作都不會的話,連正常通關(guān)都成問題!

這也是空洞騎士被譽為魂游戲的一大要點,那就是這游戲上手是真的需要些門檻。哪怕在很多玩家眼里,跳在空中的同時,再找準(zhǔn)下墜的時機(jī)往按住向下方向鍵,再按攻擊鍵一劈,簡直是有手就行的操作,但輕量且手殘的玩家永遠(yuǎn)占多數(shù),從通關(guān)率就可見一斑。

通過steam的成就榜可知,空洞騎士在開局教程就已經(jīng)勸退了26%的玩家。到了第一次BOSS戰(zhàn)時又損失了32%的玩家。等到后面一個接一個難度越來越高的BOSS出現(xiàn),空洞騎士通關(guān)率最終也就定格在了18%上。

能在這樣一款近乎千萬銷量級別的游戲中打通關(guān),說明你的操作水平已經(jīng)戰(zhàn)勝了百分之八十多的玩家!

毛源也不知道他們將要做的是一款怎樣恐怖的高難度游戲,只聽姜山繼續(xù)講解道:

“我相信剛才說的攻擊動畫以及如何觸發(fā),你們都是能很容易做到的。”

在理解2d游戲是如何實現(xiàn)攻擊后,剩下的難點其實也沒什么了。

接下來就是做敵人的受擊表現(xiàn),這一塊也是2d游戲比3d游戲簡單的地方。在2d游戲中,攻擊劍氣碰撞器只要碰到了敵人,那就在代碼事件中觸發(fā)一次敵人掉血。

同時敵人會有一個僵直的動畫狀態(tài)——在開發(fā)引擎里有個叫做“動畫樹”的概念,角色的所有動畫狀態(tài)都像一棵樹一樣,分枝岔葉,“站立”動畫會連著“行走”動畫,所以才能實現(xiàn)站立與行走這兩個狀態(tài)之間的銜接。

同理,只要把僵直做成跟其他動畫狀態(tài)沖突,那角色在受擊后也就會立刻停下別的動作,保持僵直一會兒。

“但空洞騎士這款游戲,它的攻擊是有后坐力的。”姜山說道。

“后坐力?”毛源神色有些古怪,“這是為了模擬真實性?”

“有一部這個原因吧。”

姜山聳了聳肩,他一直覺得空洞騎士的后坐力很玄妙,剛開始玩的時候感覺是個負(fù)面效果,因為有些平臺能站的空間很小,在上面要是打兩下怪,自己反倒先摔下去了。

但是玩到后面找到一個能減去后坐力效果的護(hù)符,裝上之后,姜山卻怎么玩怎么別扭,反倒又還念起攻擊有后坐力的操作。

“后坐力啊……這個該怎么做呢……”毛源琢磨起來。

涉及到具體代碼,姜山確實不太行,不過提提思路還是可以的。

“是這樣的,游戲里其實不僅有橫向的后坐力,也還有縱向的后坐力。”

姜山在小白板上畫了個受力分析圖。

“我們打怪的時候,自己會往后彈一段距離,這個就不用說了,很好理解。但是在一些特殊的地點,比如說充滿彈性的蘑菇,以及背上長滿尖甲的敵人,這時候我們跳到它們上方,進(jìn)行下劈,也會產(chǎn)生一個反作用力,把我們彈上去。”

姜山也思考過原制作組到底是怎么做出“下劈”這個極富深度的小操作,后來跟正常普攻時產(chǎn)生的后坐力一結(jié)合,姜山瞬間有所感悟。

很有可能,所謂的下劈帶來的向上彈的效果,就是后坐力的一種!

“我們可以在玩家攻擊的時候,進(jìn)行射線檢測,并根據(jù)碰撞體的標(biāo)簽,以及攻擊的方向,來決定施加哪一種后坐力的效果!”

攻擊到普通敵人,那就給最小的彈力;攻擊到彈力菇,那就給個大彈力。

這不就把整個系統(tǒng)都完美融入在了一起嗎!

姜山此言一出,毛源茅塞頓開,“有道理啊……”

毛源趕緊把思路實時到代碼上;同樣,茶茶子那邊也要開始畫配套的貼圖,無論是敵人還是彈力菇還是金礦,不同彈性的東西都要試驗一遍;而趙以琴也調(diào)試起了跳躍屬性的數(shù)據(jù),多了一個彈性系統(tǒng),之前很多東西可能都要順應(yīng)著產(chǎn)生變化。

調(diào)數(shù)值的次數(shù)是永遠(yuǎn)不嫌多的,很多時候可能就是抓著零點零幾的數(shù)據(jù)玩命調(diào)。

比如說長按跳躍鍵大跳的數(shù)據(jù),趙以琴怎么調(diào)都覺得變扭,最后敲定的數(shù)字很反直覺。

那就是判定從小跳變大跳的時間間隔,只要0.1秒!

這也跟開發(fā)語言的底層邏輯有關(guān),總之姜山再一次當(dāng)了甩手掌柜,開始忙別的事了。

因為姜山發(fā)現(xiàn),櫻桃工作室那邊,阿里有回信了。

“姜,有空嗎?我想找你聊聊。”

看著這條信息,姜山摩挲著下巴的胡茬,心中欣喜,看來空洞騎士美術(shù)方面的轉(zhuǎn)機(jī)也要來了。

主站蜘蛛池模板: 东城区| 宁德市| 玉林市| 横山县| 蚌埠市| 新龙县| 田东县| 天峨县| 吉隆县| 衡南县| 香港| 黔西| 余姚市| 三都| 丽水市| 小金县| 成都市| 顺义区| 申扎县| 浦县| 霍州市| 颍上县| 专栏| 忻州市| 板桥市| 吉安县| 海原县| 子长县| 宜章县| 寿阳县| 沙湾县| 海淀区| 大化| 永昌县| 静安区| 特克斯县| 云南省| 万盛区| 临朐县| 通化县| 永城市|