-
1 # Microphone吳
-
2 # 會敲程式碼的闊耐
1. 如何系統地自學遊戲開發?
我的建議是先學習使用成熟的遊戲引擎, 自己或者組隊製作幾款小遊戲, 把遊戲開發所涉及的各種知識有個概念上的瞭解, 再選擇自己感興趣的深入學習. 當然, 主修遊戲玩法也可以, 在不斷地最佳化和提升的過程中, 肯定會遇到技術瓶頸, 那時候就有學習和改進的動力了.
2. 自學遊戲開發應該自上而下還是自下而上?
雖然我自己是自下而上的, 但是我更建議自上而下. 因為自下而上的話, 更多的是在學習底層技術, 卻與遊戲相關性不大. 很多人可能很想做遊戲引擎, 但是不瞭解遊戲的人做出來的引擎是沒人用的, 建議還是先對遊戲製作的各方面做一下了解, 再去學習會少走很多彎路.
3. 建立在有足夠的耐心逐步學習的基礎上,應該先打好圖形學基礎再開始遊戲開發嗎?
圖形只是遊戲的一部分, 不是遊戲的全部, 而決定遊戲畫面好壞更多的是美術而不是程式. 而且圖形做到後來會極大地依賴數學, 我個人就是因為這個限制住了提升空間. 不只是圖形, 計算機的各科課程在遊戲開發中都會用到, 理論基礎都很重要, 這決定了你之後能夠達到的高度。
嘗試過directx加win32程式設計的。
1.先學習基礎的程式演算法和原理,然後學習dx的2d程式設計,寫個小程式,包含一些簡單的影象處理的函式,從放大縮小到旋轉到色相處理等等,能將多個影象系統的組合處理的。例如控制一個小人在螢幕上移動,能發射直線的子彈,子彈打到牆上會消失等等。
2.找一個小遊戲,例如網上各種flash小遊戲(因為可以直接反編譯裡面的資源出來用,方便),防照一個寫出來。寫的時候可以先用暴力方法寫,然後再轉換成面向物件的寫。例如我當時就抄了一款打地鼠遊戲來練手了,裡面有20多個關卡,有不同ai的地鼠和boss,還有道具商店和秘籍等等,都全部完完整整的寫了一遍。簡單點的話不妨寫一個flappy bird也不錯啊。
途中還需要補充學習一些音訊和輸入裝置的處理方式。
3.最後咯,就開始進軍3d了,當年有兩本很出名的書的,不過名字我忘記了,叫什麼windows遊戲程式設計啥的,一本是2d一本是3d的,其中3d那本是從3d影象基礎原理開始教起的,挺有意思的,現在很多3d開發教程都只是直接教你用api。
之後同樣也是自己動手寫一個遊戲,不過這次可以自己去想一個簡單的遊戲去寫了。途中可以考慮一下某些遊戲的玩法是怎麼寫的,因為我當時寫的是一個很挫的格鬥遊戲,但裡面思考怎樣去寫兩個技能碰撞的,寫拳王式的搓技能,dnf式的技能中斷,都是很有趣的事情啊。
那麼接下來介紹一些相關知識:
1. 玩法程式設計師: 這類程式設計師更加接近遊戲的本質: 好玩.。
用途: 需要對遊戲玩法本身有深刻了解. 平時工作與策劃(遊戲設計師)緊密相關。
你需要看懂最基本的遊戲需求。
遊戲設計是一個不斷打磨最佳化的過程, 所以玩法需求會經常變動, 導致程式也要不斷地除錯重構甚至重寫. 另外, 不同遊戲玩法在程式實現上的差異巨大, 所以針對不同需求進行建模的程式設計能力是需要長時間的積累和學習的, 所以建議儘量主修一種玩法.
2. 引擎程式設計師: 這類程式設計師更加喜歡技術, 而遊戲引擎涉及的計算機技術非常廣泛, 幾乎能覆蓋所有你能接觸到計算機學科. 所以說, 這方面對於理論基礎要求非常高, 需要不斷地去學習. 圖形, AI, 動畫, 物理, 特效, 互動, 網路等, 每一部分能精通已是不易, 所以一個人寫一個引擎是不現實的。卡馬克都說了, 造火箭比寫引擎容易多了,但是這些技術能夠掌握一兩種, 就可以成為遊戲程式設計師的核心競爭力, 所以看個人興趣選擇性的深入學習是一個比較好的方式.
3. 後臺程式設計師: 國內的遊戲都是以網路多人遊戲為主, 所以遊戲伺服器技術說是世界領先也不為過. 由於很多網路遊戲的開發分工比較專業化, 通常會分化為前臺程式設計師和後臺程式設計師. 後臺服務員通常都是命令列式的工作介面, 以linux, 資料庫, 網路, 分散式, AI, 安全等做為技術基礎, 技術的更新沒有前端變化快, 可以不斷地積累經驗, 但是與遊戲製作的關聯相對少一些.
4. 工具程式設計師: 其實就是把遊戲開發過程中的各種浪費時間的, 重複性的勞動工具化, 提高製作和開發的效率. 很多工具是遊戲引擎的一部分, 但是引擎提供的功能一般是通用的, 針對特定遊戲玩法會有特性的工具. 這類程式設計師需要對遊戲的製作流水管線比較瞭解, 善於發現製作瓶頸, 並使用程式製作工具來最佳化製作流程.
5. 技術美術: 其實一般會把TA(Technical Artist)劃入美術分類中, 但我也見過一些喜歡圖形和美術的程式設計師轉職成技術美術. 這個角色在3D遊戲專案中非常重要, 因為很多玩法程式設計師對美術製作和3D引擎並不是很熟悉, TA相當於兩者之間的橋樑, 能夠在理性與感性之間做出平衡. 所以技術美術不但需要了解圖形渲染和引擎技術, 更需要掌握製作流水線, 動畫特效, 概念設計等, 基本上算是綜合能力的一種體現 .
6. 主程式: 一般會把主程式視為所有遊戲程式設計師的Leader, 都是經驗豐富的程式設計師擔任. 通常會設計程式的架構, 併兼一定量的專案管理。
希望可以幫助到你吧!
回覆列表
遊戲開發觸及很多畛域的,籌劃,美術,順序,音樂等。如今先不探討你要往哪一個畛域開展,咱們先說說在高中期間能夠做些什麼預備。你在讀高中,要以考上好大學為指標。不倡議你在高中期間花少量工夫去鑽研程式設計。你在這個期間能夠去預備的,一是英語,二是數學,三是語文。英語有多重要?我較量爭論機的教師曾這樣說,但凡華人寫的較量爭論機書籍一概不要買。當然這有點誇大了,但也闡清楚明瞭國際的較量爭論機讀物的確水準不高,遊戲方面的書籍愈加是如此。學會英語,你能夠接觸到一些國外遊戲的遊戲開發技術以及設計理念,國際的遊戲是什麼樣子就不說了,甚至能夠說中國壓根就沒有遊戲行業。數學有多重要?首先學數學能夠晉升邏輯思想才能,這對程式設計很重要。假如你想本人做出各種炫酷的畫面,就要去了解圖形學,瞭解Shader,這些都離不開數學。數學基礎底細好學這些是很好了解的,懊悔現在我沒有好好學數學。《太吾繪卷》曉得嗎?華人制造的獨立遊戲,最近在Steam大火。這遊戲有極端優良的文明底蘊,多去讀一些文學名作,進步本人的敘事程度以及表白才能。其實,高中你學的那些課程對遊戲開發大可能是有協助的。除了下面舉例的三大科,理科中的天文,歷史,政治(哲學)這些一定是有協助的(籌劃,劇本方面的)。物理關於瞭解遊戲物理引擎有協助。遊戲開發,就是雜學。所以,好好上課讀書吧,一箭雙鵰。