玩游戲學編程,游戲軟件開發學什么專業?
游戲軟件開發學計算機專業,軟件工程專業,多媒體軟件工程專業等。
如何學會游戲開發和策劃?
首先,你必須清楚地知道游戲策劃的工作涵蓋了多少內容。打個比方,假設你現在是在玩一款名為游戲策劃的游戲,首先你必須找到你的技能樹,并且看清楚,這課樹的枝椏分向了哪幾個方向,進一步確定你的額技能點到底應該怎么點(我本人做過文案策劃和系統策劃,所以這兩方面講的相對清楚一些)。
1.文案策劃(RPG類游戲均需要的專業性人才)
簡介:只要是RPG類的游戲,不管是mmo還是卡牌,只要這個游戲擁有劇情,它都需要至少一個文案策劃。這一類策劃負責游戲的劇情設計,角色設計、世界觀設計、對白撰寫、文本撰寫、道具描述撰寫、裝備描述撰寫、活動包裝等等等等。簡而言之,就是游戲之中所有與文字及ip相關的事宜,都是由文案策劃負責。
必備技能:
(1)文字表達能力
最起碼要做到邏輯清楚,表達準確。
進階階段就是要語言優美,文筆流暢。
再遞進的階段就是博覽群書,言之有物,不管是引經據典,還是自寫詩詞樣樣精通。燭龍在招收文案策劃的時候一般都會加上一句,中文系畢業最佳。
(2)設計能力
最基礎地是要能夠設計出一個體量較小的完整故事,也就相當于是網絡游戲里的支線任務水平。這其中包含了角色性格設計、情節邏輯設計及最基礎的部分玩法設計。支線任務這種程度,不可能有專門的玩法組來配合,只能依靠自己。
進階階段是要能夠獨立設計出至少100環的主線任務故事。在這一階段,必須要做到設計出的人物不能走形,任務邏輯清楚有趣。但其實它本質上還是人物設計,并沒有想象的那么困難。
再遞進的階段就是ip、世界觀設計。牽扯到游戲歷史、背景,包括游戲世界到底是怎么出現的,是如何一步一步衍化成如今這個面貌,涉及到多少勢力、種族,這些勢力、種族之間的關系如何,每個勢力、種族經歷過什么樣的歷史,有哪些英雄人物等等等等。
(3)看圖說話能力
簡而言之就是包裝,不是所有游戲都能做到文案先行的,很多時候都是其他策劃做好了裝備、道具交給文案策劃包裝,也就是這東西到底叫什么,為什么叫這個。他們會提供的只有這個裝備or道具到底是干什么使的,以及它到底長個啥樣子。也就沒有啥進階能力,反正你只要包得足夠靠譜就ok。
2.系統策劃(是個游戲就需要的專業性人才)
簡介:要了解這個工種,首先要知道什么是游戲系統。用比較學術的說法就是,具有某種功能性的整體,即為系統。用比較玄學的說法就是,你在游戲過程中,能通過感觀體驗到的所有內容都屬于系統。做任務,有任務系統,打副本,有戰斗系統,就算脫離了rpg游戲的殼子,玩兒個王者農藥,你以為就沒有系統了?那個蛋疼的符文,也是系統。不客氣的講,一個合格的系統策劃,構建了游戲的底層邏輯。
在說到必備技能之前,首先必須看清楚一個系統都由哪些部分構成,請看下圖。
這四大塊共同構成了系統。一個完整的系統體驗是什么樣的?以windows窗口來舉例。首先,用戶先點擊窗口右上角的小紅叉,這之后程序后臺在用戶看不見的地方進行代碼運算,最終得出關閉窗口的指令,并切實地在用戶屏幕之上體現出來。這,就算是一個完整的系統操作體驗。接下來我們將以上區塊按部就班地一個個來分析一下。
ui界面,即用戶界面,在游戲當中就是玩家所有可以被操作覆蓋的地方。這項工作并不需要完全由系統策劃負責,畢竟不是所有的系統策劃都擁有一雙美工的手。但我們必須要為之后負責此區塊的人提供思路。例如,當玩家點擊某個按鈕時,是否需要彈出一個新的窗口,彈出的這個新窗口需要顯示什么?;蛘撸斖婕尹c擊商城中的購買按鈕時,是否需要彈出二次確認框,給玩家第二次的反應機會,避免誤觸操作。這都是系統策劃必須考慮的問題。當然,如果你遇到一些過度負責的美工那更痛苦,他or她極有可能會讓你提供靈感圖,那么你還需要用到viso或ps手動給他拼一個。
底層邏輯,即這個系統到底干什么使的。這個問題看似簡單,但其實……
舉個陰陽師最簡單的簽到系統例子。簽到系統到底干什么使的?這還不簡單?不就簽到使的嗎!但是作為一個合格的系統策劃,想問題絕不能這么片面。首先明確一點,什么是簽到?就是玩家每次登陸游戲時,點擊界面某個位置,即將作為簽到的變量加一。同時每次的疊加,會給玩家發放一些獎勵。獎勵是否隨機?這需要系統策劃考慮清楚。當作為簽到的變量累積到一定數值時,是否要再給玩家一份獎勵?這需要系統策劃考慮清楚。這個變量數值是否一直記在游戲服務端上?需不需要定期重置以減輕服務器的計算讀取壓力?這也需要系統策劃考慮清楚。等到問題都考慮清楚了,再把他們整理成程序一眼就能看明白的流程圖,大致如下:
代碼構成,別害怕,一個成熟的游戲工作室一般情況下并不會讓一個系統策劃自己擼胳膊挽袖子親自上前線碼代碼。但你應該清楚你的系統從程序方面如何實現,因為程序隨時有可能在稀奇古怪的地方卡殼,并需要系統策劃給出專業性建議。程序邏輯和運用程序語言畢竟是兩回事,只要思路夠清晰,應付程序暴風驟雨般的提問也是可以應對自如的。
維護管理,自己提的需求,跪著也要自己去維護。這是身為一個策劃的職業操守,尤其是系統策劃。有的是上線的系統被玩家噴得跟坨翔一樣,于是只能回爐重造的。
3.數值策劃(所有網游、RPG類單機,只要不是純玩法類游戲都需要的專業性技術人才)
簡介:是我個人認為的,游戲策劃里最枯燥的一個工種,又累又枯燥。當年我所在的組里,數值組的大佬永遠奮戰在第一線不說,一到版本日,鐵定加班的就是他們了。主要負責游戲投放概率的計算,陰陽師里就是ssr掉落的概率,王者農藥里就是開箱子開出英雄來的概率。還有在mmo里,玩家下副本用不同的裝備要打多長時間,都是數值大佬說了算。每次升級要攢多久,也要看數值大佬的計算結果??偠灾?,就是通過復雜的計算,成功保證游戲的營收與玩家的收獲絕對公正,但絕不成正比。
必備技能:概率論、高斯函數、微積分學的不好還是不要考慮這個工種了。
4.戰斗策劃(有技能的游戲都需要的專業性技術人才)
簡介:主要負責游戲中所有與戰斗相關方面的設計,包括怪物ai編寫,怪物技能設計,玩家角色技能設計,簡言之就是在游戲中戰斗發生以后,除了雙方打對方一下扣多少血,用多少藍是屬于數值策劃的范疇以外,感受到的所有東西,都是戰斗策劃搞定的。所以如果農藥某個角色玩兒的不爽,盡情去罵戰斗策劃吧。
戰斗策劃有時也細分成兩種,一種叫技能策劃,一種叫怪物策劃。前者專門負責技能的設計,需要遍玩天下各路游戲,達到胸中自有技能的境界。而且在設計時必須考慮到技能平衡,完全依賴數值策劃后期靠數值找平,那基本找不平。怪物策劃主要負責怪物行為邏輯設計,簡單來說,怪物行為主要有兩種可能,一種是think,一種是ai。think由程序寫死,怪物策劃只需修改一些數值即可,一般針對一些比較傻的怪物,看到你撲過來就是揍,看不到你就原地站著不動,這就是think。ai控制則相較而言復雜得多,要考慮怪物什么時候撲過來,撲過來用什么技能,撲過來的時候要不要跟你說句話,簡單說,ai控制著所有think無法完成的行動。
必備技能:
(1)起碼要熟悉主流游戲的所有技能、技能成長,能夠設計出足夠合理的技能,并能夠勝任不同個體間的技能平衡。
(2)邏輯思維清楚,能弄明白如何編寫怪物ai。
5.關卡策劃(擁有副本的mmo游戲需要的人才)
簡介:現在市面所見的所有pc端的mmorpg游戲,不管是魔獸、劍網三、最終幻想15、天涯明月刀還是天諭都有副本系統。此系統作為mmo游戲的主要玩法,幾乎決定了一款mmo的勝敗。而決定了這個游戲好不好玩的,除了有些玩家特別講求的打擊感外,還有一個因素,就是各個關卡做得是否獨到、有趣。這就需要關卡策劃來出謀劃策了(有的游戲會用其他策劃來兼職這一工種)。
作為關卡策劃,要對自己游戲的戰斗系統非常了解,要能設計出具備可行性的關卡結構,即負責副本ai的編寫。副本ai控制什么時候放出什么樣的怪物,該怪物死亡會對副本產生什么樣的影響,如果需要出現阻擋玩家進入下一關卡的空氣墻,則該空氣墻在玩家做了什么操作之后會被消除。這些都需要關卡策劃考慮。
必備技能:
(1)起碼要熟悉主流mmo的副本關卡,并能夠設計出足夠合理的副本。
(2)邏輯思維清楚,能夠完美地統和副本系統及戰斗系統。
(3)具備創新性,起碼知道怎樣才能做出現在市面上沒有的副本關卡來,不然怎么吸引玩家留存?
primer是否有能力寫個小游戲?
只會了C++可能還不夠,還需要學習基于C++的游戲引擎,或是直接使用DirectX SDK來編寫游戲。當然這主要跟什么游戲有關。如果是3D類的略為麻煩,如果是2D的話,需要掌握圖片相關的處理技術,比如:怎么縮放圖片?怎么Copy圖片?等等。
一個合格的程序需要什么技能Linux系統
很多人的開發機器是windows,所以平時也基本都是圖形化開發界面。但是,這并不意味著你就不需要基本的Linux技巧。
因為,你開發出來的應用可能部署在一臺Linux機器上,很多時候你要和這臺線上的Linux服務器打交道,所以,Linux系統的安裝、開發環境的搭建、Linux常用命令以及Linux環境下項目的部署啟動和調試等都是必備技能。
否則,一旦線上出點什么問題,你就會束手無策了。
單元測試
我在《單元測試的重要性》中說過,單元測試是很重要的,而且,好的單元測試可以幫助我們節省很多開發時間。單元測試是保證軟件可以更好的持續集成和持續交付的一個基本前提。
單元測試也涉及到很多技巧等,比如使用Mock進行單測、使用內存數據庫進行單測等。
一個開發人員,要有寫單測的習慣,也要掌握基本的單測寫法技巧。這樣可以盡早的發現問題。
版本管理
我相信基本上所有的公司的代碼都會通過版本管理工具進行托管的,不管是Git還是SVN。
而且,現在很多技術都通過GitHub進行開源和共建的,版本管理工具的使用也是一個Java開發必備的基本技能。
版本管理也有很多學問在的,比如到底什么時候應該提交、提交的時候 Commit message 應該如何書寫,如何解決代碼沖突等都需要熟練掌握的。
構建工具
和版本管理一樣,企業級開發的依賴管理也不再是那種原始的進行Jar包的導入導出。而是借助于像maven或者gradle等工具。
構建工具的使用同樣重要,而且一個合格的開發人員,要掌握如何進行依賴沖突的檢查、如何進行依賴仲裁等。
代碼調試
有人調侃程序員,一半的時間在寫bug,另外一半的時間在debug。這句話聽起來挺扎心的,但是也恰恰說明了debug的重要性。
雖然說程序員花費一半的時間在寫bug是有點過分的,但是,任何程序員的代碼也不可能一氣呵成,越大型的項目bug可能就會越多,在線下開發的時候,debug是最有效的問題發現和解決的手段。
代碼調試其實比較簡單,只要設置好端點,跟著程序一步一步的執行看效果就好了。只要學會運用IDE提供的工具就可以了。可以參考《Eclipse的Debug技巧》
問題排查與解決
關于問題排查,這個能力真的是非常非常重要的。
發生問題的時候,就是檢驗程序員能力的時候。這是最能區分程序員的水平的技能了。一個問題往往可能會涉及到很多個方面的知識。
阿里有一個神級人物,花名多隆。在淘寶初期,不管遇到什么問題,他基本都能解決。他之所以被稱之為神,就是因為他的問題排查和解決能力。如果你能在兩天內解決一個組兩周都沒解決的問題,那么你也會被稱之為神。
很多時候,解決問題并不難,難的是定位問題。這會涉及到很多知識,知識儲備很重要,但是,在知識儲備還不夠的情況下,至少可以從以下幾個方面來提升自己的能力。
1、日志的查看
2、分析Java的堆棧信息
3、集群監控指標的查看
非開發技能
還有一類技能,可能就和開發完全沒有關系的,我稱之為非開發技能。這些技能往往決定著一個開發人員到底能夠走多高。
目標導向
我把目標導向稱之為一種能力,是一種一個人應該具備的基本能力。而且,也是可以鍛煉和培養出來的。
目標導向型的人,就是做事之前先明確目標,再尋找實現目標的方法,最后動用一切可以利用的資源通過各種方法來實現目標。
目標導向型的人,目標是明確的。
目標明確的人,做事的時候,不會輕易動搖或者放棄,為了目標能克服困難堅持到最后。
目標明確的人,做事的時候,會去思考、嘗試實現目標的各種方法。
目標明確的人,做事的時候,會去發現、創造、借用一切能夠實現目標的資源。
不斷給自己設定目標,做一個目標導向的程序員吧。如果,你非要把目標導向理解為KPI導向我也不攔著。主要是有目標,為之而努力,我覺得就是OK的。
時間管理
對于任何人來說,時間管理都是很重要的,對于程序員來說,尤其重要,因為我們可支配的時間并不多。
如何正確的管理自己的時間,是一門很深的學問。有些人加班加點,甚至996的工作方式。但是最終還是得不到一個好的結果,這很大程度上是由于時間管理的不夠好,大部分時間都在“瞎忙”。
很多時候,苦勞在功勞面前會略顯滄桑。
一個程序員的一天會有很多事情要忙,在工作上,一天可能排了幾個需求評審、設計評審、交互評審、TC評審等,還要排查問題,還要寫代碼,有的時候還要充當產品、運營、甚至客服的角色。在生活中,還要陪伴家人、充實自己,鍛煉身體等。如何安排好自己的時間是十分重要的。
關于時間管理,我有個建議,那就是把自己的手上的事情排列好,一段時間只做一件事。
快速學習
在這個技術高速發展的時代,每天都有新技術在推出。一個好的開發人員要保證自己永遠不會被淘汰,就需要不斷的去學習。
而學習無疑是要花費很多的時間的。那么,快速的學習能力對于一個時間本就不多的程序員來說也是至關重要的。
英語能力
首先,我們的日常開發的代碼都是基于英文的,目前很多技術也都是外國人發明的。也就是說很多技術剛出來的文檔都是英文的。
拿最近最火的區塊鏈舉例,不管中本聰是不是日本人,他發布的區塊鏈白皮書也是英文的,英語能力好的人可以馬上學習到新的知識,英語能力不好的,可能看到的都是二手翻譯資料了。
英語好的技術人員,靠翻譯書籍也能賺很多錢。而英語不好的程序員,給變量命名都費勁。
科學上網
這一點我覺得對于開發人員來說是至關重要的。就像前面那條英語能力一樣。很多資料都是發布在國外的網站上的。
無論是Google、維基百科這些都需要科學上網。而且很多國外的網站,如StackOverflow、GitHub等科學上網也能更快的訪問到。
項目管理
每一個程序員,都有做PM的那一天,不管負責的是大項目還是小項目。都需要很好的項目管理能力才行。
要知道如何預估風險、如何預估成本、如何保證項目按時上線、如何管理項目團隊,這都是有很多學問在的。
任何一點掌握不好,都有可能導致項目風險甚至項目失敗。
項目管理這種事情,項目如期發布可能并沒有功勞,但是一旦項目delay,那就有罪過了。
不會項目管理的程序員,最多也就是一個高級程序員,無法晉升為專家及以上級別。
協調溝通
在一個項目中,除了項目經理角色外,開發人員之間也并不是獨立的。很多時候都需要跨團隊、跨部門甚至跨公司之間合作。
在項目中,你和其他參與的同學是同一個角色的,大家之間的關系在層級上可以算是平級,那么如何很好的橫向管理會很重要了。
為什么很多人解決一件事情很快,有些人卻要繞很多彎子。因為有些人懂得協調溝通的技巧,說白了就是出去辦事有時候光靠“刷臉”就可以解決問題了。那么,之所以可以“刷臉”,就是因為平時的協調溝通能力強。
理解能力
理解能力不好,就不能很好的理解需求。不能很好的理解需求,就可能浪費很多時間。很多時候,PD給的需求文檔并不都是合理的,這種情況下,如果開發的理解能力再差一些,無法在需求評審階段正確的理解需求,那么這個項目的結果可想而知。
理解能力不好,就沒辦法快速的學習新的知識,同樣也要比別人多花費一些時間。同樣是學習Java 9的Jigsaw,有些人就能很快的理解模塊化的原理,有些人就怎么都想不通。這就是因為理解能力的不同。
表達能力
前面說的幾項能力,都或多或少的要依賴表達能力。如果表達能力不好,協調溝通肯定出問題,更別提項目管理了。
除了日常工作需要表達能力和別人溝通外,很多公司要寫日報、周報或者月報等。表達能力好的就可以很清楚的寫明白自己做了什么,有什么貢獻,這樣領導看的也舒服。工作成果自然不會很差。
還有,就是很多公司的晉升制度是靠答辯的。那么如何很好的把自己過去一段時間的工作成果和收獲表達的清楚很大程度上決定著晉升的結果。
還有些時候,開發人員也要參與演講,無論是團隊內部、公司內部還是參與業內會議。表達能力都至關重要。很多時候,別人了解一個人,首先就是通過他的表達能力。
新木桶理論
前面說了這么多,細數下來,好像一個程序員就是全能了一樣。不過,我想說,程序員就應該是全能的,因為我們是要改變世界的啊。
話說回來了,如果你有能力,最好可以把上面的所以能力都鍛煉出來。但是,如果你就是某方面不是很擅長,那么,你也應該清楚的認識到自己哪里不足。
不知道自己不知道才是最可怕的。這篇文章,有一個小目的,就是先讓你知道你自己不知道。
我們知道的木桶定律——桶裝水的多少,取決于最短的一塊板子。
傳統的木桶定律是把木桶放在平面上來衡量的。但是,如果把木桶放置在一個斜面上的時候,木桶裝水的多少就取決于最長的一塊板子的長度。
當然這要求長與長要正相對,并且長木塊的周圍要有相應長度的木塊作為她的輔助。
也就是說當我們比別人在某一塊短一大節時,不但要選擇合適的斜度。更重要的是把其他木塊合理排列起來,使它們發揮應有的作用。這樣才可以最大限度的利用現有的木塊
那么大學里應該學什么專業?
游戲制作基本分為3個方面的方向 游戲策劃 游戲程序員 游戲美工 簡單的介紹這個三個職業。 1游戲策劃人員:游戲策劃又稱為游戲企劃或游戲設計師,主要職業負責游戲項目的設計以及管理等策劃工作,游戲策劃人員也是整個游戲的靈魂人物。
職業分工:游戲主策劃、 游戲系統策劃、 游戲數值平衡策劃、 游戲關卡任務策劃、 游戲劇情策劃、 游戲腳本策劃。
職業特點:游戲策劃的職業要求很高,要文理兼修,上知天文,下知地理,通達古今中外的歷史,并還有一定的駕御文字的功底。
在工作中還要善于與程序員和美工溝通,能擅于接受他人意見。
職業能力:游戲主策劃要求至少兩年以上的游戲開發經驗,至少制作或參與3款游戲產品。
其他不同策劃人員因工作內容不同而要求不同,總的來說需要一定的程序基礎和美術基礎,這樣才方便和程序員和美工相互交流。
2游戲程序員:游戲程序員是游戲的制造者,是根據游戲策劃人員的游戲文案,將其設想轉換為可執行的程序。
職業分工: 引擎開發工程師、 客戶端開發工程師、 服務器端開發工程師、 工具開發工程師。
職業特點:游戲程序員對其專業技術要求高,要具備一定的數理知識,在不同的環境和特殊要求或者,能隨機應變,與其他部門及時溝通,妥善處理。
職業能力:網絡游戲程序員要求能夠熟練掌握C/C++語言或JAVA語言的程序編寫,同時還要能適應在WINDOWS和LINUX兩種不同系統上進行開發工作。
3,美術設計人員:美術設計人員是根據策劃的構想和要求,制作出游戲人物的造型和其他事物的造型、場景等。
職業分工: 原畫師設計師、 3D場景制作師、 3D角色制作師、 3D動畫師、 3D特效師。
職業特點:美術設計人員要求能完善的把游戲策劃人員描述的事物用美術形式表現出來,并能反過來向游戲策劃人員提出更好的建議。
游戲編程要學多久?
首先興趣是最好的老師,如果你對游戲編程有濃厚的興趣,當你經過簡單的培訓工作之后,在工作中會一直學習。
以上就是關于玩游戲學編程和游戲軟件開發學什么專業的相關問題解答,希望對你有所幫助。