【不定期更新】遊戲開發中的一些良好習慣與技術技巧

平時programing時想到和積累的一些小技巧,在這裏寫成一篇日誌,歡迎拍磚。

<技巧一>

使用二進制位移運算來進行乘數是2的冪的簡單整數乘法(除法),因爲所有的數據在計算機中都是以二進制儲存,把一組位元向左或右移動就分別等價於乘法和除法運算.

<技巧二>

不要瘋狂地寫太多的class,也不要把任何東西都overload(重載),說到底,簡單而且直觀的代碼是最好的程序,也最容易調試。

<技巧三>

儘量使用32位變量而不是用8位變量或16位變量,目前的主流系統是32位,這就意味着它們並不喜歡8位或者16位的數據字。實際上,由於高速緩存和其他相關內容存儲器的尋址變得較不規律,較小的數據可能會使執行效率下降。

<技巧四>

經常註釋你的代碼。爲了得到整潔,有良好的註釋代碼,一點點額外的打字絕對是值得的。

<技巧五>

以類似RISC(精簡指令集計算機)的方式來編程,儘量簡化你的代碼。你的程序可以長些,但儘量使用簡單指令,使程序相對編譯器更加簡單些。

<技巧六>

在開始你的遊戲項目之前,應當進行一下組織工作。使用合理的文件名和目錄名。提出一種一致的變量名的約定,儘量對圖形和聲音數據使用分開的目錄,而不是將所有的東西都一股腦兒放到同一個目錄中。

<技巧七>

設計高效率算法,沒有任何一種彙編語言能使複雜度爲O(n2)的算法運行得很快,更好的做法是使用清楚,高效的算法而不是蠻力型和窮舉型的算法。

<技巧八>

不要在編程過程中優化代碼,這通常只是浪費時間。建議你等到主要代碼塊或整個程序都完成後纔開始着手進行繁重的優化工作,這樣做最終會節省你的時間,因爲你不必對一些含義模糊的代碼進行不必要的優化。當遊戲的coding基本完成的時候,纔到了性能測試(profiling)和查找需要優化的問題的時候,另一方面,程序代碼要注意錯落有致,不要寫得雜亂無章。

<技巧九>

不要爲簡單的對象定義太多的複雜的數據結構,鏈表結構很好用,但這並不意味着當你所需要的其實是大約有256個元素的固定數組時候,你也要使用鏈表。這時候,我們只需要爲其靜態的分配內存即可。視頻遊戲編程中90%的部分都是數據操作,所以數據儘可能簡單和可見,這樣才能夠迅速地存取它,隨意操作它,應當確保你的數據結構適合你所真正要解決的問題。

<技巧十>

使用內聯函數,通過使用inline指示符來完全擺脫函數調用,你甚至能夠改進全局變量的使用時機,inline指示符指示編譯器用函數體代碼去替換函數調用,這樣做無疑會使編譯後的程序變得更大,但卻有效地提高了運行速度。

<技巧十一>

如果你知道自己酷酷的跑車將要行駛上一段坎坷的荊棘路,最好的做法是停下來,然後掉頭繞路而行。有很多人沿着一條很差的編程路線走着,直到在糟糕的代碼堆中葬送了自己。能意識到自己所犯的錯誤並重新編寫500行的代碼,比寫一個總是令人不快的代碼結構要好得多。因此,如果在coding中發現問題,就要重新評估並確保你節約的時間是值得的。

<技巧十二>

不要怕使用全局變量,許多視頻遊戲不讓你對時間要求嚴格的函數使用參數,而是使用一些全局變量來專遞參數,巧妙地避開很多未知的問題。

<技巧十三>

經常備份你的工作。在coding遊戲代碼時,需要相當繁瑣地鎖定代碼庫中的代碼,重寫一個排序算法還是比較容易的,但是要重寫角色AI或者重寫碰撞檢測則是困難得多了。

<技巧十四>

多用template模板來減少重複的代碼,這樣可以節省不少的代碼量。

【此文章不定期更新~~~】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章