我從小就對電腦有興趣,但當年電腦是奢侈品(且被視定會玩物喪志影響學業),那時曾跟同學跑去東方出版社樓上玩電腦展示機,好像叫康德電腦吧,它有個特異功能是能用鍵盤直接按出彩色幾何圖形(如下圖),配合方向鍵可在螢幕上組出圖畫,光這樣就覺得很好玩。當時還有個我必看的電視節目(好像叫金頭腦之類的),每次由兩隊搶答電腦相關問題,最後一題則比賽設計程式。記得有一集的題目是畫國旗還是魔術方塊,其中一隊光是讓 2D 圖像 360 旋轉就引起全場驚呼獲得勝利。(這在如今是 Google 一下不用十分鐘就能完成的小把戲,當年堪稱神乎其技)


照片來源

國中忙於升學,興趣只能放旁邊,直到考上五專,心想著不用再聯考了,萬歲! 央求老爹買電腦給我。當時遇到 8 位元 APPLE II 轉 16 位元 IBM PC 的年代,老爹說既然要學就學新的,不惜重金花了近四萬幫我買了第一台電腦,從此改變我的人生。


我的第一本電腦書,封面照片就是當時的電腦機型,不過是 Hercules 顯示卡 + 解析度較高的單色螢幕

光華商場就在台北工專旁邊,說來有地利之便。那時智冠賣的 DOS 磁片遊戲很便宜,巴掌大小的彩色印刷硬紙套裝了磁片跟薄薄說明書只賣 60 元,現在想想應該是盜版吧?但比起玩電腦遊戲,我更喜歡寫程式。就算玩遊戲,花在寫程式從資料檔擷取地圖、偷看對話找線索跟破解進度檔的時間永遠比實際玩遊戲的時間多,我沒耐性,手也笨,靠寫程式破關能帶來更多樂趣與成就感。最早學的程式語言 BASICA,學校則教超無聊的 FORTRAN 77,摸過一丁點組合語言(為了在 DOS 搞些奇技淫巧),也玩過 GW-BASIC。直到見識了 Turbo Pascal,完整的 IDE 環境、可模組化的程式結構,BASIC 直接被壓在地上摩擦,之後二技到研究所階段,PASCAL 跟 Delphi 便成了我的主力語言。(後來為什麼換成微軟呢?只因第一份工作的老闆說,你想用的 Delphi 公司沒有耶,但公司有 MSDN,裡面有 VB 應該不錯用...)

去年在臉書貼了專科時代用 BASIC 寫的迷宮程式,二技同學留言提醒我有寫過一個更酷的 ASCII 版俄羅斯方塊,程式的模糊畫面重新浮現在我的腦海,便想著有空要來找看看還在不在。兩週前,無意瞄到放在角落的備份光碟包,心血來潮翻了翻,在一片老機器備份檔居然讓我找到原始檔,主程式檔日期是 1992/2/14 年,當天是 2022/2/14,不偏不倚恰好 30 年整。稍微看了程式碼,結構挺複雜的,有彩色圖檔轉 ASCII 的工具程式,物件導向的方塊模組(TPU),還很花俏地加了背景音樂跟音效,但很可惜檔案應非最後版本、資料檔也有缺損,用 DosBox 模擬環境跑了一下,選單畫面可以執行,但進入遊戲就出錯。光看過片頭就帶給我滿滿感動,我立即將它公告為一級古蹟並成立維修小組全力修復,希望有機會重溫自己三十年前寫的遊戲。

這陣子晚上抽空研究,興致一來往往搞到凌晨,陸續解析出完整主選單畫面用 .NET 6 復刻主題音樂,並試著看懂程式邏輯排除問題。現在想想,當年沒有 Github、沒有 Stackoverflow、沒有 Google,沒有人可問,我又不是本科系,對於物件導向、演算法全無概念,寫程式全憑翻書自己摸索,雖然程式碼雜亂,註解還少得可憐(害拎杯 30 年後 Code 看得這麼辛苦)。但已有物件化的概念,還用一個單執行緒迴圈做出雙人對戰,現在看還是覺得很厲害。

總之,花了點時間,學生時代寫的程式成功在我的電腦重現了,有音效有背景音樂,遊戲控制鍵可自訂,有特別模式,還支援雙人對戰與合作模式。

遲了這麼多年,為它補上說明書。選單畫面如下:

  1. 切換單人或雙人

  2. 標準模式或特殊模式(會有一些奇怪形式的方塊)
  3. 雙人模式選擇:Versus 對戰 或 Cooperative 合作(如下圖)
  4. 開始難度
  5. 控制鍵設定切換,選擇 Player 1 或 Player 2,按下 Enter 後開始設定
  6. 直接落底 W / 向上
  7. 向下加速 S / 向下
  8. 向左移 A / 向左
  9. 向右移 D / 向右
  10. 逆時針旋轉 Z / End
  11. 順時針旋轉 C / PgDn

主選單用方向鍵切換及選擇,空白鍵開始,ESC 結束。

以今天的觀點,遊戲介面跟程式寫法有許多可挑剔的地方,但古蹟就該維持原本的樣貌,我只微調了原本古怪的預設控制鍵定義(例如:雙人對戰時,左邊的人控制右邊視窗,右邊的人控制左邊,超違反人性)。

我邀請小木頭跟我一起錄了一段「遊戲實況」,大家一起欣賞吧!

遊戲實況

隨便玩一下發現遊戲仍有不少 Bug (在影片中有標註),例如:雙人合作模式當方塊在空中相撞會誤判落地而停在空中,合作模式連消多列方塊也會觸發攻擊。但這一點也不影響遊戲樂趣,影片沒錄到是,父子二人因為 Bug 笑到樂不可支。謝謝三十年前的自己,留給我這麼美好回憶。


Comments

# by Jackson374

哭了 好強

Post a comment


55 - 19 =