天天看點

《遊戲程式設計模式》一1.5 尋求平衡

本節書摘來異步社群《遊戲程式設計模式》一書中的第1章,第1.5節,作者: 【美】robert nystrom (尼斯卓姆) 譯者: 趙衛兵 , 許新星 , 姜召陽 , 陳侃 , 屈光輝 , 鄭炯彬 責編: 陳冀康,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

開發中我們有幾個因素需要考慮。

1.我們想獲得一個良好的架構,這樣在項目的生命周期中便會更容易了解代碼。

2.我們希望獲得快速的運作時性能。

3.我們希望快速完成今天的功能。

我認為一個有趣的地方是這些都是關于某種速度:我們的長期開發速度,遊戲的執行速度,以及我們短期内的開發速度。

這些目标至少部分是相沖突的。好的架構從長遠來看,改進了生産力,但維護一個良好的架構就意味着每一個變化都需要更多的努力來保持代碼的幹淨。

最快編寫的代碼實作卻很少是運作最快的。相反,優化需要消耗工程時間。一旦完成,也會使代碼庫僵化:高度優化過的代碼缺乏靈活性,很難改變。

完成今日的工作并擔心明天的一切總伴随着壓力。但是,如果我們盡可能快的完成功能,我們的代碼庫就會充滿了更新檔、bug和不一緻的混亂,會一點點地消磨掉我們未來的生産力。

這裡沒有簡單的答案,隻有權衡。從我收到的電子郵件中,看得出來,這讓很多人頭疼。特别是對于想做一個遊戲的新手們來說,聽到這樣說挺恐吓人的,“沒有正确答案,隻是錯誤口味不同”。

你絕對沒聽到過某人在挖掘水溝上的卓越事迹。也許你有,我卻沒有研究過這個領域。據我所知,那裡也許有熱衷于水溝挖掘的愛好者,水溝挖掘準則,并且有一個自己的文化圈子。我們憑什麼去評判呢?

但是,對于我而言,這令人興奮!看看人們從事緻力的領域,在這中心,你總能找到一組互相交織的限制。畢竟,如果有一個簡單的答案,每個人都會這麼做。在一周内便可掌握的領域最終是無聊的。你不會接觸到在别人的傑出職業生涯中所挖掘出的東西。

對于我而言,這和遊戲本身有很多共同點。就像國際象棋永遠無法掌握,因為它是如此完美的平衡。這意味着你可以窮盡一生來探索可行的戰略空間。設計不當的遊戲如果用一個穩赢的戰術一遍遍玩,會讓你厭倦并退出。