「譯」為《鏟子騎士》打破 NES 規則

「译」为《铲子骑士》打破 NES 规则

來indienova官網,挖掘獨立遊戲的更多樂趣

「译」为《铲子骑士》打破 NES 规则

引言

譯註:原文中的 NES,是 FC 的美版名字,後面請自行替換,翻譯比較糙,很多地方可能有問題,見諒~

*文中有大量外鏈,建議閱讀原文觀看!*

原文:Breaking the NES for Shovel Knight

翻譯:highway★

我們如何打破規則!

《鏟子騎士》(Shovel Knight)是一款包含 NES 經典外觀的遊戲,但在仔細研究時會有一些很不一樣的地方。在開始開發遊戲的美學和遊戲風格時,我們在 Yacht Club Games(譯註:開發工作室,呃,至於為什麼叫這個名兒……)時腦子裡已經有了一些目標。我們不是精確地模仿 NES,而是創建一個更漂亮的 8 位遊戲的視覺效果。

如果 NES 的開發從未停止過,那現在會怎麼樣?如果現在人們仍舊開發 8 位遊戲,那在現在的技術下,遊戲玩起來會是什麼感受?我們覺得,受益於現今的遊戲設計理念下,遊戲玩法會更加有趣,技術層面將獲得微妙但實質性的提升。這在 NES 上是可能的,其中技術被內置到卡帶

(譯註:我不確定我是不是要加上這個註釋,或許有些比較年輕的朋友確實沒有玩過卡帶機。算了,我只是感嘆一下時間過得好快,就好像前一秒,我還在家跟樓上的發小一起打開電視雙打忍者蛙與雙截龍,下一秒,我們倆就都是爸爸了……)中。

後期的 NES 遊戲,如《超級馬里奧兄弟 3》包裝卡帶技術,比起早期的 NES 遊戲,比如原來的《超級馬里奧兄弟》有了很大的改進。不同的芯片組允許對角滾動,更大的精靈,或(日版 FC - Famicom 獨有的功能,詳見下文)額外的聲道。與改進的技術和對硬件的理解相結合,早期和後期 NES 遊戲之間的差異,可能是驚人的。

「译」为《铲子骑士》打破 NES 规则

我們想象一下,也許一些卡帶的進步將允許使用 Shovel Knight 中我們用到的技術。我們還打破了一些 NES 的技術限制,純粹是出於個人偏好……我們決定消除任何阻礙遊戲體驗的缺點 。一個例子是精靈閃爍,當 NES 試圖在每條水平線上顯示超過 8 個精靈時,便會發生精靈閃爍。這種效果對某些人來說是懷舊的,但我們覺得這種效果並不好,所以我們不要這種效果。然而,我們確實根據精靈閃爍的想法制定了遊戲設計決策:我們試圖避免屏幕上出現凌亂的物體,並限制像粒子效果這樣的東西。在這種情況下意識到規則,也讓遊戲的感覺清晰簡單。

還有更多的例子,讓我們詳細介紹一下我們如何扭曲 NES 的規則!

現代硬件!主機和 PC 版本!我們不在 NES 上!

Shovel Knight 本機運行在現代硬件上,無法在 NES 硬件上運行。這讓一些非常認真對待 NES 的人感到驚訝,一些玩家希望在自制的 NES 閃存盤上玩 Shovel Knight。

事實上,Shovel Knight 是一款非常複雜的遊戲,能夠在許多硬件平臺和配置上運行。在本世代的任天堂主機上,Shovel Knight 使用 Nintendo 的 Miiverse 和 Streetpass 功能支持一些獨特的無線和互聯網功能。還集成了第三方中間件,如 FMOD 音頻和 SDL 控制器支持。

寬屏 16:9 顯示(或 3DS 上的 5:3)

相反,Shovel Knight 每個像素在 1080p 時實際上是 4.5x4.5 像素,虛擬分辨率為 400×240。NES 輸出 256×240,我們提供相同的可視垂直分辨率。我們的背景圖塊(和大多數 NES 遊戲相同,譯註:圖塊/瓷磚 - tile,後面保留原文 tile,用瓷磚總會聯想到廁所,見諒啊~)尺寸為 16×16,我們擁有與 NES 遊戲相同數量的垂直 tile。保持垂直尺寸和 tile 尺寸對我們來說非常重要,以便與 NES 遊戲的遊戲感相匹配。唯一的區別是額外的水平空間,我們認為這是一個很好的補充,允許額外的空間在關卡內設計謎題,物體和稍微脫離戰鬥的休息區域。

「译」为《铲子骑士》打破 NES 规则

我們現代升級的一部分是擴展了屏幕的可視空間,避免在 NES 虛擬控制檯遊戲中看到的黑條。這意味著以 16:9 的分辨率顯示我們的遊戲,原生於大多數現代顯示器。雖然我們確實改變了我們的寬高比,但我們沒有改變分辨率,沒有讓 Shovel Knight 成為像素密集的高清遊戲。

背景視差

背景視差滾動是以不同的速率移動 屏幕的不同層/部分屏幕 的能力,從而為 2D 圖層提供 3D 移動的視覺表現。我們的第一個預告片的開頭就有這種效果。在 SNES(譯註:我們所說的日版 SFC)上,效果更好,使用的也更為普遍。它可能在 NES 上也可以實現,但要用一些小技巧。程序員有幾個選擇:

  • 確保沒有背景的任何部分相交併僅在一個方向上滾動它:Shatterhand 中的非交叉點(譯註:視頻已經掛了,如果需要請自行搜索 shatterhand,此為美版,日版名為特救指令,開發商為 Natsume,一個強到不可理喻的開發商……核心成員部分來自 KONAMI,Natsume 成立的契機來自於 KONAMI 的大裁員……如果由於年齡原因對此工作室不太瞭解的話,可以搜索一下它的歷史和開發過的遊戲,在當年,可以說非常……BUG 級了)

  • 創建一個以不同速率滾動的背景動畫圖塊:《金屬風暴》中的動畫圖塊(譯註:只看技術,請忽略慘不忍睹的視覺效果……特別是令人尷尬的配色)

  • 《蝙蝠俠小丑迴歸》中:背景中的非交叉點和前景中的精靈(譯註:Sunsoft 開發)

在 Shovel Knight 的早期開發中,我們決定增強視差滾動效果,創建平均 5-6 層背景來滾動。這感覺就像 NES 將要做的下一個技術步驟,所以它對我們來說感覺不合適。更重要的是,添加效果使遊戲玩法層更具辨識度(譯註:反之,上面的金屬風暴在有些關卡,辨識度就比較差)。擁有如此多的圖層還有另一個好處:我們可以真正利用 3DS 的裸眼3D 效果(譯註:呃,前幾分鐘很爽,後面選擇關閉,我想大多數玩 3DS 的玩家或許都會這樣吧,眼睛真的不舒服)

精靈閃爍

當在同一水平線上顯示超過 8 個精靈時,在 NES 上會發生精靈閃爍。我們保持精靈數量儘可能低,但如前所述,我們沒有確切的數字。我們的一些物體會產生比 NES 遊戲更多的粒子...但我們認為它應該看起來更漂亮一點兒。

「译」为《铲子骑士》打破 NES 规则

像 Recca(譯註:FC 的 STG 遊戲《烈火 92》,系統非常非常豐富……遊戲設計在當年,也挺 BUG 級別了)或 Contra(譯註:《魂鬥羅》)這樣的遊戲通過每隔一幀顯示某些精靈(30fps 而不是60fps)來繞開精靈限制

(譯註:在玩《烈火 92》的過程中,能很明顯的感受到那種閃爍感,尤其是敵人和子彈、爆炸特效)。在運行低分辨率隔行掃描視頻的 CRT 監視器上,每幀都會顯示對象。除此之外,NES 粒子藝術通常會利用閃爍來表現, 比如爆炸效果。我們在某些情況下使用閃爍精靈來取代 alpha 透明度;例如,Shovel Knight 在被擊中後在“無敵”狀態下閃爍。總的來說,這並不是一個重要的限制,除非它讓遊戲玩法不像 NES 遊戲玩法。(譯註:gameplay 這詞兒翻譯成遊戲玩法挺彆扭的,您能用 gameplay 的話,就還是用 gameplay 去理解吧)

調色板添加

NES 只能噴出 54 種不同的顏色......這並不是很多。對我們來說問題主要在於嘗試在大多數色調中顯示漸變。例如,沒有非常有用的黃色,較暗的色彩範圍非常不明顯,並且沒有很多色調可用於顯示具有較暗膚色的字符。堅持 NES 調色板對我們來說是一個重中之重,因為它給人一種非常獨特的外觀。最後,我們最終只加了幾個額外的顏色。

有關 NES 顏色的更多信息,請查看此 Wiki(原鏈接請閱讀原文)。

「译」为《铲子骑士》打破 NES 规则

這裡的深紫色是#22123B

那麼我們的恥辱是什麼顏色?(譯註:恥辱?有什麼好恥辱的……)在這個來自 Treasure Knight 舞臺的鏡頭中,你可以看到地面上的深紫色細節。一旦添加,這種紫色在其他地方使用,主要作為黑色和任何給定背景的冷色調之間的橋樑。

「译」为《铲子骑士》打破 NES 规则

深紅色調是#360900

與紫色相似,我們需要一種顏色來彌合從黑色到暖色調的差距。這個深紅色在 Mole Knight 的舞臺 The Lost City 中顯得突出。你不會看到這種紅色常用作紫色,因為 NES 調色板傾向於冷色調。眾所周知,Mega Man

(譯註:美版名,日版為 ROCKMAN,我們俗稱的《洛克人》)被認為是一個紅色機器人,但在開發人員看到光譜之後變成了藍色。

(譯註:我開始不知道他在說什麼,在查 wiki 之後看了這個梗,wiki 中為最初為白色,選擇藍色是為了讓動畫更清晰,其他的一些文章和 wiki 還有本文也有些出入,一些文章中寫的是稻船敬二最初設計的是白色機器人,但開發團隊想要製作藍色的角色,因為 NES 上,藍色的調色板比任何顏色都要多。之後,二哥便接受了。之後獲得 BOSS 武器後改變洛克人的顏色,也是二哥所為,因為他覺得一個藍色的傢伙取得了火焰噴射器,射出紅色火焰會很奇怪。如果您對這段歷史比較感興趣,還請自行查閱)

「译」为《铲子骑士》打破 NES 规则

米色斗篷是#9E9E5C

這個下一個作弊顏色實際上是第一次創造。我們需要 Polar Knight 佩戴的羊皮斗篷的顏色,NES 調色板中沒有任何顏色真的符合要求。這種米色也用於他的皮膚,並保持主題關卡的統一。我們實際上打算回去修復這個米色,因為它是整個遊戲中唯一用到的地方,但我們嘗試過的任何東西都沒有這個效果好。最後我們決定就放這兒不修復了。

「译」为《铲子骑士》打破 NES 规则

村民:#824e00

最後的作弊顏色需要幫助使 Shovel Knight 的演員更加多樣化。默認的 NES 調色板提供了很少的選擇,尤其是創建具較暗膚色的角色時。當做 “Pixel My Face” Kickstarter(譯註:國外的眾籌平臺,相對於國內的那些實際上已經淪為增加曝光率的眾籌平臺來說,還是更實在一些,當然……我國國籍不能發起眾籌)獎勵(在某個承諾層,支持者在遊戲中作為肖像永生化)時,這尤其成問題,因為我們有來自世界各個角落的支持者。因此,我們最終的作弊顏色是淺棕色,給這個傢伙的臉帶來陰影!

每個 Sprite 的顏色數

「译」为《铲子骑士》打破 NES 规则

NES 上的精靈限制為 4 種顏色(或 3 種顏色+透明度),您可以看上面的《塞爾達傳說》屏幕截圖中的角色精靈。

一些開發者使用另一種技巧創建了更多彩色精靈。像 Mega Man 這樣的角色是由兩個精靈構成的,一個用於他的身體(藍色,淺藍色和黑色),一個用於他的臉(米色,白色和黑色),臉的精靈覆蓋在身體上。這就是為什麼 Mega Man 的臉有時會與他的身體分開閃爍。對於 Shovel Knight,我們決定像 Mega Man 這樣處理大多數精靈,除了透明度之外,還可以使用 4-5 種顏色。

獲得這種平衡是一個棘手的過程,因為有太多顏色的角色,有的地方會伸出來像拇指一樣。我們調整了很久細節的程度和顏色,直到找到一個看起來很棒的組合。(下圖:右側為調整後)

「译」为《铲子骑士》打破 NES 规则

一個太精細的精靈也很難做動畫!

在這個例子中,你可以看到原始的 King Knight 設計。雖然左側精靈只有 5 種顏色(正如我們所說的限制),但它細節太多了,幾乎感覺更接近 16 位精靈。在通過幾次通過以簡化形狀以便於辨識和簡化之後,我們最終得到了你在遊戲中看到的精靈!

多個調色板同時使用

儘管 Shovel Knight 中的每個精靈都是使用有限的顏色創建的,但我們沒有讓屏幕上的所有精靈都遵循單一的調色板。再舉一點 Mega Man 為例,玩家的精靈顏色變化也會影響 1-Ups(譯註:加一條命,在東北,俗稱獎人兒,讀人不讀淫,感謝!)和 其他道具。這是由於均勻的調色板;當為一個精靈調整顏色時,所有精靈都會改變顏色。我們選擇不擔心這個限制,因為使一個調色板工作讓人頭痛,而且並沒有讓 gameplay 收益,但我們確實使用有限的調色板來創建敵人變體以及循環傷害和爆炸效果。

這些效果使遊戲更加清晰和令人興奮; 例如,循環傷害使你很明顯的看到你正在傷害敵人,因為所有物體的效果都是一致的,並增加了樂趣,因為顏色循環比典型的“受擊”動畫或閃爍更具影響力。 這些調色板循環和移位效果是通過將表示精靈的索引無符號字節紋理和表示調色板的完整 32 位顏色紋理傳遞給像素著色器來創建的......這是 8 位技術的飛躍,可以模仿過去的美好時光!(譯註:這裡這個受擊效果很像《洛克人》蓄力射擊的感覺。)

「译」为《铲子骑士》打破 NES 规则

要查看調色板效果的限制,請查看此站點(原鏈接請閱讀原文,為油管視頻),該站點顯示您可以通過循環單個調色板創建的驚人動畫。

內存限制

一個 NES 卡帶只能容納如此多的信息:代碼,動畫,背景,文本,音樂,以及其他一切都必須適應 32k 的內存,儘管通過使用稱為內存映射器的盒式芯片大大擴展了因為更高級的圖形和特殊效果需要 ROM 大小大到 4-6 兆位(0.5~0.75 MB)(譯註:這裡是機翻,我……不校對了,我覺得有點兒難受。)。Shovel Knight 的容量接近1.2GB(大約有150 MB - .mp3文件)。因為我們不需要安裝在小型卡帶上,所以不需要極端優化和數據壓縮,我們能夠將我們的技術工作集中在遊戲系統和穩定性上。

我們的作曲家兼聲音設計師 Jake'Virt'Kaufman 喜歡提醒我們,當編譯成真實的機器代碼(見下文)時,配樂將很好地融入6MB 的 Kirby's Adventure(譯註:星之卡比)卡帶中,但前提是所有圖形和遊戲代碼都被刪除。

大精靈

NES 上的精靈硬件對於繪製非常大的移動物體並不是很有利,因為它施加的限制(畢竟,即使是一些小東西也可能導致閃爍)。為了解決這個限制,聰明的開發人員將大的精靈圖顯示為動畫背景 tile 層。這就是為什麼每當你在 NES 上與一個體積很大的敵人作戰時,他們通常都是在沒有背景藝術的黑屏上。BOSS 是背景。(譯註:真佩服 FC 時代那些程序員,真是帶著腳鐐跳舞,在痛苦中傳遞快樂。)

「译」为《铲子骑士》打破 NES 规则

BOSS 的黑色背景總是給 NES 遊戲一個獨特和史詩般的感覺,其中焦點只關注你和你的敵人,所以我們認為保持這一點非常重要。但是,由於沒有精靈限制,我們不需要使用背景圖層或其他變通方法來製作大型精靈。我們只是使用我們的動畫精靈代碼,小心設計,並確保精靈在黑色(或很暗)的背景上。

攝像機振動

在 NES 上,相機抖動僅發生在單個軸上。下次看到 Bowser 在《超級馬里奧兄弟 3》的最後一次遭遇中(譯註:傳送門 1:50)砸地時要注意 。這與 NES 在對角線滾動方面的困難有關。我們沒有這樣做,因為我們沒有找到令人信服的理由來保留它。

HUD 作為一個層

「译」为《铲子骑士》打破 NES 规则

NES 遊戲的一個奇怪之處在於精靈通常會在 HUD(譯註:HUD - head-up display)前面畫出來。在 NES 上,大多數 HUD 都是在背景層上繪製的。這是因為只有1層,所以背景和 HUD 必須共享。在許多情況下,支持大 ROM 大小的內存映射器芯片還包含支持“分屏”狀態欄的特殊時序硬件,但背景層仍然只是一個背景,並且精靈被繪製在它上面。因此,如果玩家能夠到達屏幕頂部,HUD 將被他們的精靈掩蓋。偶爾,這種行為被用作遊戲機制,因為秘密或路徑可能隱藏在這種“無法到達”的屏幕空間中。我們喜歡這個怪癖,盡我們所能堅持下去,但有時層次結構太怪異了,我們不得不根據具體情況改變一些實例。

聲音限制

音樂可能是 Shovel Knight 中最真實的 NES 部分,雖然它可能看起來比你對 NES 遊戲的預期更加豐富和飽滿。這是因為它被編寫為使用一種稱為 VRC6 的特殊存儲器映射器/聲音芯片,該芯片在 NES 時代結束時用於幾個 Konami 遊戲中。該芯片允許使用先進的圖形技術,但最著名的是增加了 3 個聲道,使音樂更加豐富和深入。然而,VRC6 等外部聲音芯片僅適用於日本家庭,因為西方 NES 缺乏必要的卡帶連接,因此對於大多數西方遊戲玩家來說這是一種不熟悉的聲音。比較美國版惡魔城 III 中的音樂和日本版:差異是驚人的。(譯註:機核網做過一期 gadiopro,重輕老師講的 8bit 音樂的歷史和基礎原理,非常硬核。)

「译」为《铲子骑士》打破 NES 规则

作曲家 Jake Kaufman 使用名為 Famitracker 的免費程序開始創作 Shovel Knight 的音樂和聲音效果。Famitracker 以 NES 機器代碼導出音樂,該機器代碼能夠在實際的 NES 或 Famicom 控制檯上運行,具有所有限制和硬件怪癖。我們使用母帶製作工具(EQ 和壓縮)完成音頻,以便在今天的聲音設備上給它一些額外的衝擊,但避免使用混響效果或立體聲混音,這會破壞聲音的原始特性。你聽到的任何回聲或特殊效果都是按照它們在 NES 上的方式逐個編程。這是一個 Jake 的視頻,演示了在 Famitracker for Shovel Knight 中創建的幾首曲目的複雜性。

NES 的另一個限制是聲音效果通常會導致其中一個音頻通道掉線。NES 為音樂和聲音共享了相同的 5 個基本通道,因此 SFX 會暫時竊取一個或多個音樂頻道以便播放。Shovel Knight 中沒有這種效果 - 聲音效果簡單地疊加在音樂之上,這完全是不真實的,但聽起來要好得多。

下次啟動 NES 遊戲時,請仔細聆聽並注意大多數遊戲如何將低音,鼓聲或和聲調整到旋律中以便打包更多聲音效果。

我們打破了 NES 的規則!

當你把所有的變化加起來時,看起來 Shovel Knight 和 NES 的技術之間存在著巨大的鴻溝。但是,我們覺得8位時代美學的核心得到了尊重,甚至可能得到了提升! Shovel Knight 是一個夢想項目,讓我們探索一種今天很少見的遊戲風格。嘗試解決過去的技術問題,同時避免任何可能真實現代性的陷阱,這是非常有趣的。我們希望通過不僅僅是膚淺的方式對 NES 表達了忠誠,而且我們也建立了奇特的堅如磐石的基礎。

「译」为《铲子骑士》打破 NES 规则


分享到:


相關文章: