從零開始的做游戲(一)——用引擎開發(fā)游戲
前言
之前已經有預告過,所以UP這次會教大家入門游戲開發(fā),這里選擇的是unity3D引擎,實際上相關的教程在互聯(lián)網上已經成千上萬了吧,所以也沒有必要再把別人做過的事情重新做一遍,這個教程能教會你如何學習做游戲,但是卻不會教你技術。
UP能做的只有引導如何學習做游戲,接下來你將面臨不斷的失敗、不斷的失敗、再次不斷的失敗,有時候可能會失敗到打擊你的身心,但是請記住,能從跌倒中爬起來并再次面臨下一次跌倒的人,才可以成為強者。
這就是“從零開始的做游戲”,本次并沒有規(guī)劃專欄會寫多少篇,僅僅規(guī)劃了會做一個怎樣的項目,所以或許這是個深坑。
這次的專題,都是以程序技術為主的描述,所以關于如何做策劃、美術和音樂不在探討范圍內。
序
“我有一個很好的腦洞,但是我既不是游戲策劃也不是程序員,我怎么可以實現我的想法”
那么這期文章即會讓你入門游戲制作,這篇應該算是一個門檻非常低的文章了,你只需要擁有如下能力就能上手:
認識簡體中文能看懂UP在說什么
有軟件使用基礎,這里指的是使用過ps或ppt這種開發(fā)類軟件。
自學能力強,懂得如何通過網絡來找到學習資料
“授人予魚不如授人予漁”,學習不是靠別人的,而是靠自己的,學會自學吧,有些知識,你無法找到老師。
不過在干貨之前,UP依然會先科普一點知識
游戲引擎是什么
各位游戲玩家應該經常聽說“引擎”這個詞,比如某個游戲用“虛幻引擎”開發(fā),某個游戲又是“寒霜引擎”,那么引擎到底是什么呢。
可能有些小伙伴想到了UP開頭所說要學會用搜索自己學習,于是就試了試搜索一個叫做unity3D的引擎,百科介紹是這樣的。
Unity3D是由Unity Technologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發(fā)工具,是一個全面整合的專業(yè)游戲引擎。Unity類似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的圖型化開發(fā)環(huán)境為首要方式的軟件。其編輯器運行在Windows 和Mac OS X下,可發(fā)布游戲至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平臺。也可以利用Unity web player插件發(fā)布網頁游戲,支持Mac和Windows的網頁瀏覽。它的網頁播放器也被Mac 所支持。
那么請問可愛的UP,Director,Blender game engine, Virtools ,Torque Game Builder這些都是什么鬼,雖然我也很想自學啊,但是我看著這些專業(yè)術語后我選擇死亡。
所以這里就要提倡一下我的學習方法了,先實踐再理論,因為一開始你所知道的知識并不多,學理論經常會讓你懵在很多專業(yè)詞語上,不如先實踐,等你發(fā)現到了瓶頸的時候,再回來學習理論你會發(fā)現好像當初看不懂的都懂了。
另外則是,UP會以設計游戲的理念來做教程,這里不會一來就塞給你無盡的知識,而是以“將知識隱藏在關卡中”這種方式來讓你一點點的學習,所以UP沒提到的事,可以先不用管它,不用你懂。
所以關于“游戲引擎”到底是個什么玩意,它的原理是什么,此時你只用了解這一點就行了:游戲引擎就是為開發(fā)游戲用的軟件,就像做視頻要用AE,畫圖要用sai,做幻燈片也要用PPT一樣,您只管用就行。
選擇什么引擎
現在是個商業(yè)競爭的時代,對于游戲引擎來說也是一樣,并不是一家獨大的,而同樣的每個游戲引擎也就都有它的優(yōu)點和缺點,所以說也就是沒有絕對“好”的引擎,只有適合你的,實際上現在各家引擎也在互相取長補短,就像手機系統(tǒng)“IOS”和“安卓”一樣,不斷的更新,不斷的做得更好,也不斷的互相借鑒。
UP選擇unity3D引擎(后面簡稱U3D)的原因是因為剛開始學習的那個年代,僅有unity3d引擎免費提供以及文檔齊全、教程多、需要電腦配置低、入門簡單、可以方便的開發(fā)電腦和手機游戲。
實際上最近幾年虛幻等引擎也開始彌補自己的短缺,比如推出UDK免費套件,和U3D一樣的支持游戲跨平臺發(fā)布等,實際上如今UDK開發(fā)的游戲效果會比U3D更好,畢竟虛幻的底子是很厲害的。
UP是個懂得感恩的人,當年是U3D讓我踏入了游戲開發(fā)的領域,所以在未來,只要U3D還在持續(xù)良好的發(fā)展,我則會一直堅守這個引擎的。
當然,還有一些其他的入門門檻更低的開發(fā)工具,比如RPGMAKER,又比如橙光,這些開發(fā)工具的優(yōu)點是可以讓你0代碼做出一款游戲來,缺點是技術限制很嚴重,只能按照它所提供的模板開發(fā),有些工具可以通過改腳本的方式來做一些特別的功能,但想自己編寫里面的腳本也不是很簡單,跟寫程序沒什么區(qū)別。
需要怎樣的程序功底
之前提到的RPGMAKER或橙光等開發(fā)工具不知看這篇文章的小伙伴們有嘗試過嗎,用那種開發(fā)工具可以0代碼開發(fā)游戲,所以也得到了廣大的游戲開發(fā)愛好者參與,但是要用到U3D這種游戲引擎了,那么寫代碼也就是必然需要的事情了。
所以,是不是還得先去看一本代碼書?是的,您先去啃一下名叫《C#入門經典》的這本書吧,然后我們的下一期教程將在3年后繼續(xù)更新,各位小伙伴先加油學習程序哦~。
——要是這樣的話這篇文章可以不寫了
所以需要多少代碼基礎才可以做游戲呢,答案是0基礎。也就是不用先看任何書、也不用對程序有任何入門,就可以開始開發(fā)游戲了。
或許看到此時很多人都覺得UP您在搞笑吧,就算沒有寫過代碼的你也知道“程序員你new一個對象出來啊”這個梗,所以這個new是什么意思,我連這些都不懂怎么寫啊。
是的,你目前完全不用懂得這些,根本不必去考慮或許你道聽途說過的INT、IF是什么,程序沒有那么難,都是一個個小目標積累起來的。
所以現在就開始干干干吧。
安裝一個U3D
如今U3D的版本已經來到了2017版,因為這個引擎每一代更新的時候都會有非常大的變化,所以各位去搜索教程的時候建議以“unity 2017 安裝”這樣的方式去搜索。

所以,具體怎么裝一個引擎UP就不再說明了,網上教程有億千萬,也不必由我來寫。
不過這里UP想呼吁一下:
unity3D的官網是unity3d.com,請務必記得去官網下載,不要偷懶到網盤或使用迅雷等軟件,因為曾經有發(fā)生過下圖所說的事情,不排除U3D也會發(fā)生,所以即使下載速度慢也要走官網(況且U3D下載速度很快),再次強調說明,走官網點的連接并通過迅雷下載的也有風險。
當年Xcode的問題教育我們一定要從官網下載 U3D免費版和破解版的區(qū)別目前主要在于破解版可以去掉啟動畫面的U3D的LOGO,以及少了一個黑色的界面皮膚,強烈呼吁有能力購買正版(850元/月),否則使用免費版,一個是破解有可能帶來不安全因素(類似上圖問題),另一點是尊重U3D的開發(fā)公司,別人都已經免費給你無限期使用了,并且功能方面幾乎和付費沒有區(qū)別,為何還要去破解它呢。
呼吁使用英文版,不要去找什么漢化補丁,一開始或許會看著頭疼,實際也不需要能立即看懂,記得什么字母大概是什么意思就行,畢竟現在寫代碼也基本上是使用英文的(當然現在也有使用漢字編程的工具了),多看看英文還能提高英語水平,不是還要考四級嗎,學程序順帶還能把英語學了,多好啊。
接下來,各位去裝好您的U3D吧,裝好后我們接著來。
第一個代碼HELLO WORLD
可能很多人不解,為何程序學習總要從HELLO WORLD開始,跟著UP的步伐,等你成功的說出“你好 世界”后我就會告訴你。
UP計劃利用教程時間設計一款簡單的小游戲,不過在此之前我們先不考慮游戲做什么,我們先執(zhí)行項目創(chuàng)建


之后你會看見這樣的界面,不過很多小伙伴可能都會遇到項目啟動就報錯,反正這個報錯不影響開發(fā),總之可以無視。

可能上面的界面還和有些小伙伴的不一樣,比如界面的順序不同、又或者截圖中多出了一個窗口(即Console),這個窗口只需點擊一下底部紅色的文字就能彈出來了。
關于界面的每一塊是做什么的,各位也可以先不用去管,現在僅需按照這樣的步驟做。

在界面中找到“Project”的窗口(如上圖),然后在“點右鍵”提示處點右鍵
之后選擇Create - Floder,創(chuàng)建一個文件夾,為文件夾起名為Script(這里提示一下,點擊文件夾按F2可重命名)

這里建立文件夾的目的是為了將不同資源區(qū)分開,其作用就跟整理房間類似,把相同的東西收納到一個地方,避免內容亂七八糟,到時候看著自己都頭疼。
接下來,跟著下圖繼續(xù)點右鍵

Create - C# Script,然后你可以創(chuàng)建一個C#(讀作:C sharp)腳本,我們起名叫HelloWorld,各位需要注意一點,創(chuàng)建腳本的時候,第一次起名就定好,不要重命名,不然你可能會遇到問題。

題外話:U3D支持C#和JS格式的腳本,其基本上都相同,甚至可以在一個項目里又用C#又用JS混搭,兩種腳本各有優(yōu)缺點,不過UP推薦全部使用C#,因為C#對插件的兼容性更好
接下來雙擊HelloWorld,就像打開你的電腦一樣,接下來你會打開一個這樣的窗口。

或許有些小伙伴發(fā)現,我也打開窗口了,我怎么不是VS.NET呢,我是一個叫MONO什么的。
實際上在U3D開發(fā)中,你可以更換編譯器,用什么都差不多,只是UP喜歡VS.NET,至于具體怎么換,這里就不教學了,如果想學習,自己去搜索吧。
建議寫代碼用深色皮膚,自行搜索如何用吧,因為相對來說對眼睛好一點。
如果你有兩個顯示器,可以一橫一豎擺放成雙屏(UP沒有,所以就不展示了),堅屏放代碼,又顯得比格又增加開發(fā)效率。
大家都注意到嗎,下圖圈里的名字和C#文件名是一樣的,創(chuàng)建C#文件時命名后里面會自動生成這個名字,所以為什么之前有說到,“創(chuàng)建腳本的時候,第一次起名就定好,不要重命名”,以后一定要注意這點,否則就會莫名報錯了。

圖中,自動生成了一些代碼,這些代碼也可以不用管,首先你按照下圖中的方式寫出這樣的代碼,注意其位置在Start下面的兩個大括號里,以及代碼的最后有個分號;

實際上,很多程序員的入門代碼就是抄,UP一向不反對技術抄襲,因為技術是死的,不存在抄襲問題,而創(chuàng)意才是活的,沒有誰會關心你的代碼寫得怎么樣,除非BUG太多了。
這個print的意思就是打印括號里的字,寫好后Ctrl+S保存。
保存后返回U3D,返回的時候你會發(fā)現U3D右下角有個Loading一樣的轉圈圈動畫

接下來按照圖里的箭頭,把文件拖動到其位置里



接下來我們來運行下程序

如果你此時點擊一下下面的文字,則會彈出“控制臺”窗口,該窗口就是用來看一些問題的,比如游戲有BUG,報錯就會在那顯示。
好的至此你已經U3D入門了,就是這么簡單,這時候UP可以解答下為何要用Hello World來做教程的原因了。
好的程序員通常擁有一個技能叫做找問題,也被稱為“DEBUG”,即可以快速的找到問題并修復它,所以之后你會發(fā)現print是你做項目時會從頭用到尾的功能,你需要靠輸出來查找問題,甚至驗證游戲中的隱藏數據是否正確。
預告
UP會隨心所欲的通過教程并做一款玩數值的類掛機手游,考慮到流行趨勢等因素,可能會做一些類似氪金系統(tǒng)的功能開發(fā),甚至還會教學如何通過植入廣告賺些零花錢,由于平時很忙,所以只會在不能現充的周末寫一寫,更新速度或許比較慢,但是通過這一套教程,希望可以讓各位一點點的了解到U3D里的常用功能,讓各位也可以開發(fā)出游戲來。
因為是第一期,為了不把各位嚇跑,所以教程還算做得很詳細,不過逐漸的UP會增加入門的門檻,加大教程難度,減少細節(jié)說明,讓各位小伙伴更多的需要靠自學和查資料才可以了解,因為UP希望教會的是學習方法。
你想成為游戲程序員嗎?