五年級的時候,我和我的朋友們接觸到了幾臺年久失修的TRS-80s。為了啟迪我們,一位老師給了我們一些打印好的BASIC代碼給我們嘗試。
這些電腦上的磁帶讀取器已經壞掉了,所以當我們想要執行一段程序的時候總是得從頭輸入一次。這導致我們編程時只喜歡寫很短的幾行代碼:
10 PRINT "BOBBY IS RADICAL!!!"
20 GOTO 10
這種艱苦的學習方式告知了我們簡短代碼的價值。
盡管如此,這樣的編程過程仍然是忐忑難行的。我們當時并不知道怎么編程,所以任何一個簡單的語法錯誤就會導致我們卡殼。如果程序沒有正常運行起來的話(這種悲劇經常發生),我們就必須從零開始。
在這疊打印的代碼的后面有一只真正的怪物——一段占滿了大疊紙張的代碼。在鼓起勇氣開始鍵入這疊代碼之前我們猶豫了很久,但是它實在是無法抗拒——這疊代碼的標題上寫著《隧道和巨魔》。我們不知道最后這段代碼運行起來的模樣,但是這個名字聽起來像是一個游戲,難道還有比在電腦上運行一段自己編寫的游戲更酷的事情嗎?
不幸的是我們從來沒有讓這段代碼運行起來,一年之后我們便沒有再去那間教室了。(多年之后我理解了一些BASIC,意識到那段代碼是一個桌游的角色生成器,并不是一個完整的游戲)但是從此之后我便一發不可收拾的想成為一名游戲程序員。
在我青少年時期,我家里有了一臺裝有QuickBASIC和THINK C的Macintosh。我暑假的所有時光幾乎都用在了它上面,琢磨著怎么編寫游戲程序。自學的過程十分的緩慢和痛苦。我很快就搭建起了一些東西——可能是一個地圖界面,或者是一個棋盤——但是當我想在它之上添加特性的時候便一頭霧水。當我無法把整個程序在大腦中梳理清楚時,它也就完蛋了。
我的其他一部分業余時間還花在了從南路易安娜州的沼澤地里面抓蛇和青蛙。如果屋子外面的天氣沒有那么熱的話,可能這就是一本爬蟲類生物著作而非程序開發的書了。
最開始將東西繪制到屏幕上便是頭等難題。現在嘗試將龐大的代碼在腦子里面理順則成了新的難題。于是我開始尋找如何組織代碼的書籍,而非嘗試去閱讀“如何用C++編程”。
前些年,一位新朋友遞給我一本書——《設計模式:可復用面向對象軟件的基礎》。終于找到了!一本我青少年時期就一直想要的書。我才開始讀的時候根本停不下來,我依然為我的代碼犯愁,但是看見別人也因為同樣的問題犯愁并且得到了解決方案,讓我如釋重負。我終于感到現在的我不是手無寸鐵束手無策了。
未完待續……