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