第2章 九十年代的開發工具
對於自己的遊戲開發水平,齊東海很難用這個時代的標準進行評價。
一方面他在原本的時空中從事遊戲開發工作已經有近十年時間了,特別是最近的幾年裡是自己作為獨立開發者完整的完成過幾個不怎麼成功的項目。
但另一方面他幾乎沒有過不使用類似unity和虛幻這樣現成的商業引擎開發遊戲的經驗。
更不要說現在所在的一九九一年。自己用著順手的各種開發工具大部分都不存在。甚至遊戲開發和運行的操作系統都不同。
現在還是dos的時代,和未來的windows系統比起來,dos下的編程是更直接和電腦硬體打交道的一件事。
內存的分配,屏幕上每一個像素的渲染,甚至一個音符一個音符的發出聲響。這些都可以通過代碼直接控制。
這種環境的優點是如果技術水平足夠好,那麼可以把電腦性能壓榨到極致。但問題是這個時代的電腦機能都十分孱弱,就算壓榨到極致也非常有限。不能像二十一世紀二十年代的開發者那樣肆無忌憚的揮霍。
齊東海曾經用虛幻這種大型3d遊戲引擎開發過2d像素風格的休閒遊戲。這種浪費電腦性能事在現在這個時代想都不敢想。
而且這時代的普通開發者也根本沒有什麼現成的遊戲引擎可以使用,對齊東海來說習以為常的很多東西在這個時代都需要自己重新發明一次。
直接和硬體打交道付出的代價也很難規避。比如這個時代所用的開發環境和編程語言在水平一般的程序員手裡更容易寫出惡性的程序bug。
開發所使用的軟體環境所限,找到這些bug並進行修復也要比三十年後困難許多。
所以齊東海面對森田的問題也不能說信心十足。只能表示自己有一些編程經驗。
最後他只好轉移話題。
「我打算業餘時間干。」
齊東海強調是業餘時間,意思就是就算自己要在遊戲開發上走一些彎路進行摸索也不會耽誤正經工作。
現在是暑假,他有大把空閑時間,而且就算是開學了也不慌。
他現在上的這所大學是出了名的好考又好畢業。學生一多半都是留學生。基本上就是明擺著給人混簽證和文憑的學校。
「我倒不是說時間的問題,你自己的時間自己安排。我是說你真的有信心自己一個人把遊戲做出來?」
沒等齊東海回答,森田從櫃檯下面翻出一張軟盤,插進了店裡演示用的電腦。
輸入運行命令按下回車鍵,軟碟機開始嗡嗡的工作。
「看看這個。」
森田說話的同時屏幕上顯示出了遊戲畫面。
「天使們的黃昏」
這是遊戲的標題。
在標題之下作為封面的是一位少女的半身肖像。畫風讓人一言難盡。
毫無疑問,這是日本電腦遊戲領域常見的一款「美少女遊戲」。
森田點了「newgame」的選項開始新遊戲。
作為命令選擇式的視覺小說類遊戲。遊戲中的背景是由簡單的寥草的像素線條繪製,前景則是眼熟但是作畫崩壞的奇怪畫風。
劇情非常直白完全沒有什麼文學性。女主角一個接一個的不合邏輯的登場,對男主角大獻殷勤。在面臨其中的一個選項分支之前,森田存檔並退出了遊戲。
「就先演示到這裡吧。剩下的不太方便……」
齊東海明白,選項後面的內容大概率會是劇情cg。不過就前面見識到的畫工看來他是一點也沒興趣知道那些圖片的內容是什麼。
「這是……?」
「我一個人做的東西。正在猶豫是不是要放在店裡當商品賣。」
也就是說前面那些難以評價的人物立繪都是森田自己的傑作。
「這不是挺好的嘛。」
拋開只有一張軟盤,不到1.4mb的容量不談。齊東海試著從個人開發者的角度來評價這個遊戲。
雖然美術水平不像樣。但是主菜單里甚至還有cg和回想模式,看來作為視覺小說該有的功能都有。圖片在屏幕中描畫和切換的速度也不慢。
九十年代的日本,可沒有什麼面向個人的開放遊戲引擎可選擇。哪怕是在屏幕上顯示一張圖片之類的功能都是需要開發者自己直接用代碼和硬體交互完成。
在這方面森田完成的很好。
「一個人能做到的極限就是這樣了。程序上我是能應付。但是劇情和美術真的太難了……」
森田一邊收起磁碟一邊開始吐苦水。
劇本基本上是森田自己拍腦袋寫出來的東西。而美術按照他自己的說法,是採用了所謂的「保鮮膜畫法」。
這種畫法需要把食品用的保鮮膜貼在畫在紙上的草稿上,用馬克筆在上面描摹線條。
等墨水幹了以後再把有圖案的保鮮膜貼到電腦屏幕上。用繪圖軟體按照保鮮膜上的線條進行繪製。
在繪圖數位板不普及的九十年代初期,這算是一種變通的手段。
森田沒有繪製原畫的本事。他的人物直接是描畫現成的漫畫得來的。
怪不得看起來如此的眼熟而微妙。
「可是做三國遊戲的話,劇本和文案都有歷史資料可用。美術我應該也能應付。」
齊東海說著從自己隨身的背包里拿出一個記事本。
這是日本常見的方眼本。也就是五毫米正方形格子鋪滿整個紙張的本子。
齊東海把每個方格作為一個像素看待,用彩色鉛筆在上面繪製了一些像素畫圖案。小一些的是十六乘十六尺寸。最大的是六十四乘六十四像素。
在原本的時空中,作為一個獨立遊戲開發者,因為沒有美術基礎和繪圖數位板,齊東海自己開發遊戲時一直就選擇的是2d像素畫風格。
畢竟像素畫只需要用滑鼠就可以完成。他已經為此練習了兩年半的時間。已經積攢了不少經驗。
即便是穿越到這個世界之後他也沒有停下練習。
「因為沒有電腦,我就一直用這個來練習。」
森田接過齊東海的記事本,翻看了幾頁。確實比他自己用保鮮膜畫法做出來的東西精緻。
然後他突然想到了什麼事情。
「等一下,你說你沒有電腦?」
森田突然有了什麼預感。
「是的,所以您能把店裡的電腦借我用嗎?不,不是搬走,我就是下班后在店裡用……」
其實齊東海盯上店裡那台演示用的電腦有一陣子了。
這是一台配備了386sx處理器的中等配置的電腦。用以向路過的人進行功能展示。
如果顧客有興趣親自上手摸一摸也沒問題。
在七十年代到八十年代早期,很多老一輩程序開發者都是在店鋪里的展示機上完成自己的電腦啟蒙,甚至在這些機器上寫出了自己第一個程序。
現在這麼做的人當然越來越少了。但森田社長自己也是那一代人出身,所以對於那些純蹭機器而不購買的顧客比較寬容。只要不影響營業就不會趕人走。
所以在齊東海看來自己提的請求不算特別過分,對方也許會答應。
「你可以在營業時間以外用。或者沒客人的時候也可以用一會……」
稍加思索之後森田還是有條件的答應了齊東海的請求。
儘管從後來者的視角可以知道,一九九一年的日本可以說泡沫景氣已近結束,但民間的年輕人還沒有真正的感受。
這個紙醉金迷的年代沒有多少人會像森田年輕時那樣把寶貴時間浪費在電腦店裡。
森田的店鋪往往在晚上八點之前就會關店。齊東海想利用的就是關店以後這些時間。
「那…除了電腦之外,剛才那個遊戲的代碼能否也讓我參考一下呢?」
既然自己的請求這麼簡單就被接受,齊東海決定更進一步。
剛才森田所展示的遊戲里關於圖形繪製之類的東西齊東海不想再自己重新發明一次,他打算直接借鑒。
畢竟在原本的世界中,他掌握的編程語言僅僅是算不上熟練的csharp以及一些c++的皮毛而已,這兩種語言是二十一世紀遊戲業常用的unity和虛幻引擎所使用的開發語言。
而在九十年代初,當時熟練的遊戲開發者還經常需要用晦澀的彙編語言編寫一些功能。
就算是只使用相對高級的c語言,齊東海也沒有真正的經驗,他只是讀過一些相關教程,從來沒自己親手編寫過任何實質的東西。
「不要太貪心!」
嘴上雖然千百個不願意。森田還是翻出了一張空白軟盤。把程序的源代碼複製了一份交給齊東海。
他這些代碼也並非是自己憑空寫出來的。
二十一世紀的程序員大多數是「面向搜索引擎編程」。有什麼不懂的就上網去查。
八九十年代的程序員也有自己的辦法。他們「面向雜誌編程」。
當時的電腦雜誌上會用印刷的方式刊登程序的源代碼。熱心讀者可以投稿。
在九十年代的日本,每頁源代碼的稿費高達一兩萬日元。
實際上從操作系統來說其實pc98系列與dosv的內核差異並不大。習慣了開發pc98程序的人把代碼轉換為dosv版本並不算特別困難。
尤其是pc兼容機正是最近開發者社區討論的熱點。各種雜誌上都有不少優秀代碼刊登。
森田編寫遊戲所需要的大多數功能都是用這些雜誌上的代碼拼湊起來實現的。現在送給齊東海倒是自己也沒損失什麼。
「我沒怎麼寫註釋,實在看不懂了就來問我。雖然我自己也未必看得懂……」
不要說是其他人,如果沒有註釋的話,程序員看不懂自己幾星期前寫的代碼是家常便飯。
到時候就算森田親自上陣解讀也未必有用。
儘管如此,齊東海還是誠懇的道謝,收下了軟盤。然後主動留在店裡打雜。
等到關店時間一到他就迫不及待的打開文件研讀起來。
這些代碼用turboc工具寫成,如同森田所說沒有註釋,但條理清晰可讀性還不錯。
齊東海沒有特別系統性的學習過c語言。不過虛幻引擎所使用的c++之類近似語言的基礎還是可以幫助他讀懂這些代碼。
沒有手機,沒有社交網路。甚至連電視台播放的連續劇都是自己早就看過的《101次求婚》。九十年代的環境總是更容易集中精神。
不知不覺就到了深夜。
「你怎麼還在啊?」
和不少在一戶建店小樓開店的小業主類似。
森田的家就住在店鋪的三樓,他晚上起夜發現樓下還有動靜就下來查看。
牆上的掛鐘指向兩點的位置。
齊東海也發現了這個問題。
「糟糕,錯過末班車了!」
森田住在離秋葉原一小時車程的地方。步行是絕對回不去的。而日本計程車價格是出了名的貴,錯過末班車幾乎就意味著無法回家。
「我看你就住在店裡好了。」
說完,森田一邊打哈欠一邊上樓。
「謝謝社長!我明天就把行李搬來!」
「嗯???」
森田還沒完全清醒,但總覺得齊東海的回答有哪裡不太對勁。