從業(yè)30年“老司機(jī)”給游戲開發(fā)者的4條經(jīng)驗
最近,我離開了從業(yè)很久的軟件研發(fā)行業(yè),實際上,我專職從事軟件研發(fā)的時間已經(jīng)超過了20年。在9-10歲的時候,其實我就已經(jīng)寫了***款游戲,并且直到20歲參軍以及長大成人之前還在寫游戲。所以,如果算上之前的經(jīng)歷,加上目前的職業(yè)生涯,我做游戲的時間整整超過了30年。
在這短時間里,我學(xué)到了非常有價值的經(jīng)驗,其中很多與游戲研發(fā)相關(guān),還有一些是軟件方面的,所以這里我希望分享一些相關(guān)的經(jīng)驗。
1.如果它沒有趣,那么你的游戲就做錯了
在我職業(yè)生涯中的很多時間里,我經(jīng)常會涉及多個領(lǐng)域的軟件研發(fā),毫無例外的是,無論什么時候開始一個領(lǐng)域的軟件研發(fā)的時候,我都會很快離開。拿主機(jī)托管來說,我在90年代的公司曾經(jīng)開過一家這樣的公司,并且非常樂于做復(fù)雜和先進(jìn)的發(fā)行方案。在某些時候,我們停止了這些東西,因為這件事變得太嚴(yán)肅,人們希望購買我的公司,還包括其他的增長問題。我們比武專注于什么能夠帶來收入,而不像之前那樣專注于優(yōu)秀的事情,所以這件事逐漸變得無趣,而只是關(guān)于掙錢了。
當(dāng)然,結(jié)局顯而易見,那家公司一年之后就失敗了。
做研發(fā)總要有時候嚴(yán)肅對待,但永遠(yuǎn)不要把簡單的樂趣抹去,因為當(dāng)你喜悅所做的事情的時候,更容易有動力。
所以我的經(jīng)驗是:做那些可以激發(fā)你的熱情并能讓你高興或者開心的事情。
2.要一直學(xué)習(xí),因為知識和技能是容易掌握的
我學(xué)的的一個重要經(jīng)驗就是,在停止了一個項目或者任務(wù)之后,一定要盡可能多的學(xué)知識,我這么說的意思是你應(yīng)該永遠(yuǎn)都確保自己在做某些事情的時候?qū)W到東西,即使是完全做失敗了也要確保是否自己沒有遵循某些規(guī)律。
這樣做的目的有兩個,首先,它可以鍛煉你的大腦,從我的了解來看(這不是科學(xué)證明)人的大腦和身體一樣需要經(jīng)常的練習(xí)才能保持健康。然而,其次就是知識很容易保留下來,你搬到另一個城市的時候并不需要額外的空間帶著它,你也不用在未來30年為此付出任何租金,學(xué)到了它就是你的,是免費的而且是無價的。
當(dāng)我們做首款游戲《Maff’s Math Game》的時候,我們更關(guān)注的是學(xué)習(xí)如何真正的做一款游戲,換句話說,我們的整個團(tuán)隊大多是在沒有計劃也沒有盈利打算的情況下從完整的游戲研發(fā)過程學(xué)到了東西。這種做法的結(jié)果是,我們現(xiàn)在開始新游戲的時候可以直接略過很多的學(xué)習(xí)過程并且更快的得到結(jié)果。沒錯,這個學(xué)習(xí)的過程可能會投入比較多的資金,但我們知道在長期來看,這種投入的回報是很多倍的。
學(xué)到的經(jīng)驗是:Omnia mea mecum porto, my life motto(拉丁語:我所有一切的財富都帶在身邊,這就是我的人生格言)。
3.始終做可重復(fù)使用的資源
我的公司Lobster Games目前在做一個新的游戲系列叫做《Final Arena》,我們并不確定游戲玩法是完全正確的,我還沒有對它進(jìn)行測試,但我們的研發(fā)還在進(jìn)步中,我們現(xiàn)在招聘了作曲家、模型師、動畫師等崗位。如果按照傳統(tǒng)的觀念,一定認(rèn)為我們這種做法是瘋了,“你需要盡早測試你的想法,這樣可以及時發(fā)現(xiàn)錯誤”,我同意這個觀點,但我學(xué)到了更為重要的經(jīng)驗。
你看,我們做游戲的方法,代碼庫可以讓我們快速的替換掉游戲中的任何部分,如果目前的玩法不合適,沒問題,我們可以換一些更好的,但這并不會改變我們需要控制角色的系統(tǒng)、講述游戲故事、存儲游戲狀態(tài)、追蹤角色健康值和物品欄等事情。通過把各種不同的組件分開來做,我們可以在不影響其他游戲部分的前提下進(jìn)行替換。同樣重要的是,我們可以把這個游戲中的一些部分重新在其他游戲中使用,因為絕大多數(shù)情況下,未來的游戲都需要有音樂、故事和角色。
學(xué)到的經(jīng)驗:始終要重復(fù)使用資源,即便有些資源你可能不會重復(fù)使用,但在做的時候也要假設(shè)它會被再次使用,這個做起來比你想象的還要簡單。
4.編程語言并不相關(guān),但卻是必須會的
比我更聰明的人也談?wù)撨^電腦語言,但我更喜歡引用的名言是,語言之于編程就像望遠(yuǎn)鏡之于天文學(xué)一樣重要,你需要學(xué)一門,但這并不是目的。我經(jīng)??吹接腥藸幷摰降啄欠N語言才是最適合游戲編程的,然而真相是,沒有答案,所以這也是該問題持續(xù)了十多年但仍然沒有清晰答案的原因。
所以,只要做游戲編程需要一個語言,那么至于是哪個都沒有太大的關(guān)系。
這里我們就要說到本部分標(biāo)題的后半句,你始終需要會一種編程語言,不管現(xiàn)在有多少種不需要編程就能夠做游戲的工具,但學(xué)習(xí)編程對于游戲研發(fā)都是至關(guān)重要的,如果你不學(xué)會編程的話,你很難做好游戲研發(fā)。在我此前十多年一直就職的SharePoint公司,這個是微軟不得不取消最重要的非編程研發(fā)工具,一個工具的視覺設(shè)計界面就被稱為SharePoint Designer,此前叫做Frontpage,了解的人應(yīng)該會知道。微軟也表示他們這么做是因為SharePoint遇到了MySpace問題。
之所以出現(xiàn)這種問題是因為,很容易出現(xiàn)你認(rèn)為輸出了價值但實際上更多時候并沒有,很容易讓你和你的團(tuán)隊陷入死胡同。
然而,對于一個程序員來說,尤其是有經(jīng)驗的程序員,他們會在開始做解決方案之前就掌握了問題的大部分原因,他們知道維護(hù)性、擴(kuò)展性、安全性以及很多簡單網(wǎng)頁轉(zhuǎn)換從來不會遇到的問題。這并不是因為程序員們有非常高的智力或者其他東西,而是因為學(xué)習(xí)寫代碼可以讓你用更加清晰和有條不紊的解決問題,只要有可能,我都會催促人們學(xué)習(xí)編程,即使很多人一輩子都不需要寫出來一行代碼,理由很簡單,因為它可以讓人們用更清晰的方式解決問題。
學(xué)到的經(jīng)驗:一定要學(xué)編程,沒有任何理由。
所以,這些就是我認(rèn)為最重要的四條經(jīng)驗,這些都是我在30多年的軟件研發(fā)經(jīng)驗中所學(xué)到的東西,并且已經(jīng)積極的應(yīng)用在了游戲研發(fā)生涯中。