遊戲開發入門(一)遊戲開發概述
該視頻圍繞電子遊戲的發展與開發簡單介紹了一些基本常識,同時提出並解決了幾個問題
筆記與總結(請先學習視頻內容):
1.遊戲機發展
20世紀70年×××始 首款主機magnavox odysse
80年代 紅白機
80-90年代 各類非FC主機(PS,NDS等) PC單機遊戲
90年代-2000年 局域網對戰遊戲
2000年後 大型多人遊戲 頁遊 手遊
現在 VR,AR ..
2.遊戲是如何開發出來的,開發流程是什麽?
原始的遊戲比較粗糙,內容也很少,一般就一個人開發,美術與策劃都由自己完成(建議看看《doom啟示錄》)。
隨著遊戲逐漸變得復雜,需要多人去合作完成,分工也變得明顯。簡單的流程如下:
a.首先討論確定遊戲的基本內容,類型等,對遊戲項目立案
b.程序員構建最基本的遊戲框架,單機還是網遊,什麽平臺(在當前,某些非常簡單的遊戲demo也可以跳過編程,直接使用遊戲引擎)
c.策劃對遊戲細節進行設計與構建(包括劇情,玩法,關卡,數值,系統等)
d.美術需要根據當前策劃設想的遊戲世界,提供合適的藝術效果(包括原畫,模型,特效,UI,動畫,場景等)
e.程序,美術,策劃三方不斷的相互溝通完善遊戲內容並不斷的測試調優(這是最為耗時的一個流程) 註意:這裏策劃不僅僅是思考遊戲的玩法,還需要將程序員留出來的接口做各種配置,因為項目的需求變化過於頻繁
f.遊戲內容基本完成後,需要質檢等人員開始測試,程序員修復Bug
3.開發遊戲需要哪些技術?
a.作為一個程序員需要的基本素質:包括掌握基本語言編程,深入了解語言特性,了解計算機相關基礎,設計模式等 其實就這一塊很多人就很難達標,不過我們可以在做遊戲的同時提升自己的功底
b.構建一個遊戲需要了解不同平臺的相關技術,但一般不需要太深入
c.需要有一定的引擎知識,盡可能熟悉引擎各個功能的使用
d.常見的腳本技術(lua等)
e.隨著3D遊戲的發展,需要對圖形圖像知識有一定深度的理解(涉及到數學,非常復雜與龐大的模塊)
f.網絡遊戲需要掌握基本網絡基礎知識(TCP/IP,Socket,Http),了解同步機制
h.了解會使用物理引擎
i.基本的場景管理技術
j. AI相關技術,遊戲中大部分的AI還是比較簡單的,不需要機器學習
3.程序員一般負責的內容是什麽?
a.實現策劃需求(大部分是邏輯需求)
b.提供內部工具,加快開發。比如當前引擎不支持某種NPC對象的高亮顯示,無法拖拽資源到遊戲裏面等功能,需要程序員提供 提高開發效率
c.修復Bug
e.優化體驗,也就是常說的性能優化,提高幀率,減小內存開銷等等
目前規模較大的公司,程序員也分為多種(一般分為邏輯程序員和引擎程序員),所完成的內容也有差別。
邏輯程序一般屬於頻繁與策劃溝通,直接對項目需求進行開發的程序
引擎程序一般是研究引擎功能,優化引擎(提示表現,提高性能等),不過這也並不是絕對的。
4.如何入行遊戲(建議)
a.夯實基礎(語言,數據結構,算法,網絡,操作系統,圖形學等)
b.對遊戲開發有一個基本的認識,建議可以先根據我的文章講解看一遍這個系列的視頻(遇到不懂的名詞就去查,就去研究), 然後通讀一遍遊戲引擎架構
c.實踐!選擇一個遊戲引擎然後動手開發遊戲demo,參考其他遊戲demo,盡可能的應用學過的遊戲知識。多思考,多理解
d.想辦法進入業界,從項目中吸取知識。如果有機會的話(應屆生機會比較多),只要程序基礎夠也是可以加入該行業的
5.新手與真正開發者的差距有哪些?
最多的就是經驗了,前面提到的技術都是概括性的,每個方面深入進去都是無限的坑。新手一般只會用而不懂為什麽這麽用, 真正有經驗的開發者不僅會用,甚至可以模仿出來一套幾乎相同的框架並完善,遇到問題也有更多的解決思路與方案。
遊戲開發入門(一)遊戲開發概述