緣起
場景回到1986年鄉下的一家遊戲專賣店,一群小朋友圍著老闆正聽他口沫橫飛的說著,我跟你們說阿這卡夾還有這個鍵盤組合叫Family BASIC(註1)是用來開發紅白機遊戲用的,是我託廠商從日本弄回來的,打算擺在店面當鎮店之寶,接下來我要用這個東西趕在Enix出勇者鬥惡龍2代之前比他們更快開發出2代來給你們玩而且還要是中。。文。。版,老實說,當時十幾歲的我,信了,並天真的以為所有紅白機遊戲都是使用Family BASIC開發的,接下來的一個月我每天下課都到遊戲店問老闆開發進度,老闆勇者鬥惡龍2開發進度到哪了,我迫不及待想趕快玩到啊,急什麼還在看說明書納,你過幾天再來,老闆老闆都過了兩個禮拜了,勇者鬥惡龍2可以玩了嗎?有什麼幫的上忙的跟我說一聲,我長大後的夢想也是要開發遊戲的!!幫忙?你會寫程式嗎?不會的話就閃一邊玩沙去,去去去,老闆娘老闆在嗎?我要來玩老闆開發的勇者鬥惡龍2,老闆啊他出去批貨了,還說看到你來就叫你過幾天再來,就這樣我每次出現在這家電玩店總是無法遇到老闆。。。
這事都過了快30年了,前陣子因緣際會從紅白機神人手中購買到了小時候一直夢寐以求的Family BASIC v2.0套件,才想到那位當初發下豪語要在勇者鬥惡龍2前開發出遊戲的老闆,現在回想起來當然知道是不可能的事,尤其是在看完Family BASIC的使用手冊後更加確信,先不說只能使用內建的Sprites跟 Tiles這事(註2),僅僅2K的可用記憶體也讓創作空間大幅受限,不過就算是這樣也澆不熄我對開發Family BASIC遊戲的熱情,因為那位當初每天跑去遊戲店問老闆勇者鬥惡龍2開發出來沒的小夥子已經準備好回來幫忙了;眼前彷彿回到了小時候的那家遊戲店,看著老闆在店內正苦惱的拿著說明書,嘴巴碎碎念著,不用這鬼東西弄點可以玩的遊戲出來,真的是無臉見那小子,聽到這句話的我先微微一笑並慢慢走上前去對著他說,老闆以現在Family BASICv2.0的規格是無法開發出勇者鬥惡龍2的,如果你願意的話,我們先作個Blockade(封鎖線)遊戲來玩玩如何,老闆驚訝的看著我說,你。。會寫程式?我笑笑的說了一句不試試看怎麼會知道呢?(完)
從紅白機神人購買的任天堂專用鍵盤與Family BASIC卡夾
這段從真實事件改編過來的故事,相信會引發不少懷舊老玩家的共鳴,你心中是否也有一款未完成的勇者鬥惡龍2呢?那就讓本系列的教學補足你的遺憾吧,以下開始正文:
前言
記得拿到Family BASIC當天就迫不急待的邊看使用手冊邊將Family BASIC 裝上螢幕準備先寫個hello world測試一下,到這裡還算簡單只要照著使用手冊上的範例寫,很快就可以看到效果,在玩了幾個鐘頭後也大致摸懂了怎麼使用Family BASIC來開發遊戲,當然也遇到了幾個問題,比如說Family BASIC的鍵盤跟PC用的鍵盤按鍵配置位置有點不一樣剛開始用的時候會有點不習慣,再來就是因為沒買儲存設備,所以在每次將背景圖與程式寫完後無法作儲存的動作,所以這些資料都會伴隨者機器關機後一起消失,這是比較麻煩的問題,不過後來想到不錯的解決方法,就是先在PC上使用模擬器將遊戲開發測試完成後再搬到實機上重新照著作一次就可以了,而且使用模擬器還有個好處就是可以隨時將狀態儲存下來,等下次要開發的時候再重新將狀態載入即可,非常方便。
使用State save(儲存狀態)、State load(載入狀態)非常方便
我選用的任天堂模擬器是VirtuaNES 0.97,然後我購買的正版Family BASIC卡夾版本是V2.0A,所以就在網路上找了這個版本的備份ROM檔,先說我有正版卡夾,所以身為正版Family BASIC卡夾的愛好者,為了不損壞心愛的正版Family BASIC卡夾,找個"備份"檔在電腦上跑也是很合情合理的對吧(笑)。
開機
開機後等看到以下畫面,請在輸入框內輸入GAME BASIC並按下開始按鈕。
接下來會看到以下畫面:
此時按下鍵盤按鈕1進入BASIC模式,按下鍵盤按鈕2進入BG GRAPHIC模式,按下鍵盤按鈕3離開此畫面回主選單。
以下針對各模式作解說:
BASIC
BASIC模式
這個模式主要是讓我們寫BASIC程式用的,那開發遊戲為什麼需要寫程式呢?因為遊戲的運作、邏輯判斷、秀圖與撥放音樂音效都需要透過程式語言來告訴硬體如何運作,我們可以理解為程式就是人類跟硬體溝通的語言。
任天堂鍵盤對應PC鍵盤說明
在模擬器上使用PC鍵盤來輸入某些字元時會發生打不出來或輸入後字元不對的狀況,這是因為任天堂鍵盤跟PC鍵盤的解碼邏輯有所不同導致,以下列出有問題字元在PC鍵盤上的輸入方法。
【(】Shift + *
【)】Shift + (
【”】Shift + @
【&】Shift + ^
【’】Shift + &
【=】Shift + -
【+】Shift + :
【:】PC鍵盤上打不出來,如有同好知道如何輸入拜託請跟我說
功能鍵說明
【F8】RUN
【F7】LIST
- 印出所有程式碼,也可以指定印出範圍如:LIST 100,200
【F6】CONT
【F5】SPRITE
【F4】CHR$(
【F3】GOTO
【F2】PRINT
【F1】LOAD
熱鍵說明
【Ctrl+A】切換插入/覆蓋模式
【Ctrl+C】換行
【Ctrl+D】將SPRITE,CGEN等還原為默認值
【Ctrl+E】清除游標所在行
【Ctrl+G】嗶
【Ctrl+H】刪除前一個字元(鍵盤Backspace鍵)
【Ctrl+J】換行並移到上一行的同樣位置
【Ctrl+K】將游標移至畫面左上角
【Ctrl+L】清除畫面
【Ctrl+M】跳過一行(僅當行清除時)
【Ctrl+R】在游標前插入一個空格
【Ctrl+V】切換到日文輸入模式
【Ctrl+W】切換到羅馬字母輸入模式
【Ctrl+Z】清除游標下的畫面資料
離開BASIC模式回GAME BASIC主選單方法
輸入指令SYSYTEM
BG GRAPHIC
BG GRAPHIC模式
背景編輯器,主要是用來將我們遊戲中所要呈現的畫面預先作編輯,透過編輯器可以所見即所得的建立與調整你想要呈現的畫面。
先在GB GRAPHIC模式編輯好的封鎖線遊戲背景
操作說明
【Esc】叫出選單
【上下左右】移動框框
【DEL】右選區塊
【INS】左選區塊
【HOME】右翻頁區塊
【SHIFT+HOME】左翻頁區塊
【SPACE(空白鍵)】選定/確定/貼上區塊
【Enter】切換區塊色盤
選單
【SELECT】選區塊編輯模式
【COPY】複製畫面上區塊編輯模式
- 進入此模式後先將框框移到要COPY的區塊上,然後按下INS按鍵進行COPY區塊,然後按上下左右移動到要貼上地方在按下DEL按鍵即可。
【MOVE】搬移畫面上區塊編輯模式
- 進入此模式後先將框框移至要MOVE的區塊上,然後按下INS按鍵,然後按上下左右移動到要MOVE的地方在按下DEL按鍵即可。
【CLEAR】清除畫面上的所有區塊
【FILE】存入地圖或載入地圖
- 存入或載入編輯好的地圖
- 需要有錄音機(Nintendo Data RecoRder)
【CHAR】英數輸入
選定後請按SPACE按鍵回編輯模式
離開BG GRAPHIC模式回GAME BASIC主選單方法
按下Esc按鍵叫出選單後,在按End按鍵(在任天堂鍵盤上這步驟改按STOP按鍵)
牛刀小試
STEP 1:在以下畫面請先選2進入BG GRAPHUC模式。
STEP 2:進入後按Esc叫出選單,並移動到CHAR後按下空白建確定。
STEP 3:將框框移至X:8 Y:10的位置,並用鍵盤輸入HELLO WORLD!!,然後按Esc叫出選單,再按End鍵回到GAME BASIC主選單。
STEP 4:回到GAME BASIC主選單後在按1進入BASIC模式,然後輸入以下程式碼:
STEP 5:按下F8執行程式,如果一切順利的話因該會看到以下畫面。
恭喜您!剛剛完成了Family BASIC的第一個程式(撒花)。
後記
這篇文章簡單介紹了Family BASIC的基本操作,清楚這些方法後對接下來的遊戲實作會有相當大的幫助,下篇文章我們將參考1976年在街機平台上發行的Blockade(封鎖線)遊戲玩法,使用Family BASIC來實作一款類似玩法的遊戲,為了怕大家等太久以下釋出完成後的遊戲影片讓大家先解解饞。
下次見。
註1:Family BASIC第一版發售於1984年6月
註2:使用Family BASIC套件開發遊戲只能使用它內建的Sprites與Tiles,不允許使用自己畫的圖形,而且在畫面上也只能同時出現8隻Sprites。