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