「去掉了地堡和誤傷友軍這方面的代碼後,遊戲的存儲空間就空出來不少,我們可以加點東西。」
「首先,作為敵人的『太空章魚人』被打死後,我要加入蜂鳴器的爆炸音效。然後,要做兩幀的漸變爆炸動畫。這一塊應該用不掉多少存儲,也不影響遊戲流暢。」
「然後,敵人的移動目前是直接貼圖橫移的,沒有任何動作變化。這個太醜了,玩家不會有動感,所以我要求你把這些章魚怪的貼圖都做成會動的……」
顧驁洋洋灑灑地說了三點最大的改進意見。
聽到這兒,楊自豪率先反駁了:「顧老闆,這不可能,爆炸動畫還好搞定,加兩幀統一的圖形而已,反正所有怪爆炸的時候都是一樣的死相。
但是怪物移動要做出動畫效果來的話,那就存在好多幀了,要每種樣子的怪物都做至少一幀到幾幀,存儲器會塞爆的啊!」
楊自豪說的道理,是很常見的。比如後世剛出現brew系統的3g手機時,點到一個應用圖標上,比如音樂播放器,要顯示「音樂播放器正在激活中、播放器上的唱片圖標在轉動」的效果,那就至少要4到6幀的圖片循環播放。
到了網易雲音樂時代,據說丁三石對於「體現黑膠唱片圖標的轉動效果」,提出了「至少畫15幀,讓用戶覺得絕對逼真」的程度。
而站在碼農的角度,這種問題處理方式,就相當於增加了十幾倍的圖片存儲容量壓力。
後世硬盤空間不值錢,自然能隨便揮霍。
但如今卻是寸字節寸金的時代。
80年代的程序員,比後世程序員要多一項重要技能,那就是「怎麼省存儲空間」。
然而顧驁對此,卻是早有辦法:「不用這麼麻煩,你一幀都不用多做,只要把原有的怪物圖像一側做得觸鬚、腿腳短一些,另一側做得大一些、長一些,不對稱。
到時候調用第一幀時正放、第二幀水平對調180度的方式,看起來效果就像是怪物動起來了。」
顧驁的說法,楊自豪一開始沒理解,畢竟他是純技術宅,沒有美工基礎,也缺乏空間和圖像的想像力。
顧驁拿了張紙,用他那「靈魂畫師」的醜陋手法示意了一下,對方才看懂。
簡單通俗來說,顧驁的這一招,是後世學碼農技巧時,看一些考古文章看來的在1985年,任天堂開發「超級瑪麗」的時候,宮本茂就遇到了「讓怪物動起來會消耗太多貼圖容量」的問題。
然後宮本茂就投機取巧了。
後世玩家如果真的盯著超級瑪麗里的敵人「蘑菇怪」仔細看,仔細到像素級,就不難看出其實蘑菇怪在向馬里奧走來的過程中,並不是「走」的,而是用「反覆左右顛倒」的方式,騙出了「走」的視覺錯覺。
至於超級瑪麗里的「烏龜怪」,則稍微麻煩一些,因為它一側多出來一個頭,並不是徹底對稱的,所以無法「反覆左右顛倒」,會穿幫。
不過那也沒難倒宮本茂,他選擇了把龜身和四肢保存成一張圖、繼續反覆橫倒製造「爬行」的假象。而把**單獨保存成一張與龜身割裂的圖片,讓它靜止不動。
本來要數百字節才能做好的點圖,只用了幾個字節就搞定了,這就是早期程序大師殫精竭慮省容量的魅力。
顧驁把這些思路跟楊自豪一說,楊自豪頓時就驚為天人,覺得今天最大的收穫莫過於此。
「沒想到顧老闆雖然不自己寫程序,但對編程思想的了解,簡直精髓啊。相比之下,咱就只是個『干體力活的』。
慚愧,太慚愧了。能跟著顧老闆干,哪怕一點錢都不拿,光是學到的這些寶貴經驗、設計思想,都是一筆了不得的財富了。」
他如此想著,已經徹底忘了顧驁其實是個「文科生」。
……
搞定了楊自豪的進度規劃後,魯運達這邊配合的活兒,其實要方便不少,沒什麼值得交代的。
估計只是根據z80的接口標準,微調幾個元器件的布板,以及增加蜂鳴器音控電路。
但此次曰本之行的親眼所見,給了顧驁不少啟發,也讓他有了新的腦洞。