Unity C# | 遊戲設計 & 自我學習步驟和歷程(#遊戲程式)

閱讀時間約 13 分鐘
發布 :2020.3.6
更新1:2022.8.1

前言

  這篇文章將會講述普通人邁向遊戲設計師的歷程,首先簡單介紹遊戲設計師,再把這段時間的經歷分成五步,從基本認識到入門一步步介紹,如果你對遊戲設計有興趣、摸索如何成為遊戲設計師,那我相信這篇文章會適合你。
  更新1:我還補足了一些知識,並簡單談論了特效跟音樂的認識,補上了我其他努力的成果,這有興趣的可以在結語後面找到。
  我是一位正在學習程式設計師的學生,目前正在經歷大二升三的暑假,並且大多數知識都屬於自學而來,我會用我所經歷的一切跟理解來撰寫這篇文章。
  目前這篇文章經歷過一次更新,我有預感它會越來越長,不過我也擔心修修改改會把最初的想法給刪除掉,所以我更新它的方式是用註解而非刪改,舊文章內容只修改用字遣詞,畢竟我的文筆也在進步嘛。
「遊戲程式」為方向,我會介紹程式相關,美術則簡略帶過。

遊戲製作

  設計一款遊戲,分為企劃、美術、程式,下面簡單介紹他們各自的工作。

企劃

  又稱「遊戲設計師」,遊戲企劃像一款遊戲作品的骨架,有一個好的骨架,會讓之後遊戲製作非常順暢,雖然形容為骨架,不過並不是建立好之後鎖死,而是會頻繁的修改,甚至整個企劃完全打掉重製都有可能發生。
  工作內容相當廣闊,需要發想遊戲、遊戲元素、腳本故事等等遊戲架構,企劃需要了解程式跟美術相關的技能,方便與美術與企劃進行溝通,對於遊戲企劃來說,他必須要了解遊戲製作的完整面貌,也因此很常發生美術或程式轉企劃的狀況。
  因為遊戲企劃需要了解程式跟美術,需要帶領整個遊戲製作的方向,所以擔任遊戲企劃,要有良好的溝通能力,主持一場好的討論,規劃好未來遊戲製作的方向,不只學習硬知識,屬於難度相當高的位置。
  更新1:遊戲企劃有幾個分支,我目前知道遊戲編劇和遊戲設計師,遊戲編劇是往敘事專業前進,遊戲設計師則會細分為關卡設計、數值設計等等,跟遊戲細部內容有關的專業,其中統領一切會稱為首席遊戲設計師。
  更新1:聽說遊戲系出來的學生,最終都會被安排到遊戲企劃的職位上,我如今非常慶幸我有決定走入寫作的行列,這一切都會值得,哪怕我遊戲程式最後不成功,我也能成為企劃。

美術

  遊戲美術就像是一個遊戲的外貌,無論他擁有多麼豐富的遊戲機制、多麼精彩的故事內容,只要美術跟不上,那這款遊戲就很可能默默無名,反過來說,只要有良好的美術,遊戲就有可能被關注。
  美術的工作相當易懂,美術、立繪、海報、概念、介面等等,幾乎所有跟「美術」兩個字相關的都包含在內,在遊戲的範疇內,美術的難度不是重點,風格才是最重要的部分,依據不同的遊戲種類,會有不同的風格需求。
  更新1:美術比較詳細的分支可以參考「繪畫界心聲」的這一篇文章,裡面講述了除了原畫以外的重要職位,想走美術也能從中看到自己未來的工作元素。
  因為遊戲美術注重風格,雖然我不走美術,不過我想擁有自己的風格、並能配合不同風格是走遊戲美術這條路的重點,擁有一本屬於自己的作品集,絕對是其中最重要的事情。
  更新1:結果我最後還是點了美術相關的技能點,我有在一些地方更新粒子特效 ( Particle System )的作品,目前還在繼續更新,我把相關連結放在最後。

程式

  我主要專攻的方向,遊戲程式像一款遊戲作品肌肉跟心臟,在看不見的背後運作,好的程式會帶給玩家極為優秀的體驗,無論玩家因為什麼原因遊玩,玩家的所有操作、體驗都會因為程式的好壞而影響。
  遊戲程式相較於網頁程式、後端程式等等不太一樣,會依據所使用的平台而有不一樣的體驗,譬如容易上手的Unity,內部有許多定義好的函式跟變數,只要沒碰過遊戲程式,這些都必須重新學習。
  因為程式運作於遊戲背後,所以程式員比起撰寫,更重要的是維護與資料蒐集,程式員需要優化程式、減少效能,除了埋頭苦幹以外,參考其他人的程式是相當重要的方法,如果一位程式員只會「抄」,但他抄的剛剛好,那可能也算是一位好的程式員。
  更新1:抄也要抄的精妙,網路上的教學實用但不適用,如果你以為抄的好就沒事了,那你可能會丟了飯碗,要學會如何把程式客製化成專案需要的程式碼內容,會是程式設計師很重要的技能點。
  更新1:程式員有一個很重要的網站,這不限於遊戲程式之外的人參考,那就是 LeetCode ,一個專門給程式員刷題成長的地方,我有聽過在畢業前每一天都有刷大概一個小時,就會超過同年齡許多的說法。

遊戲設計

  製作一款遊戲,一定會經歷上述的三種工作,除非你有一個團隊可以分工合作,不然在學習階段這三個都會碰到,美術可以買素材、企劃可以很簡單,但是程式就沒有,程是沒有就是沒有,要找資料...你也要懂程式才能找啊?所以如果希望自己製作一款遊戲,那先學程式絕對沒有錯。
  更新1:目前 Unreal 有藍圖設計,可以讓遊戲設計師只需要了解程式邏輯就可以製作遊戲,不需要學會任何一款程式語言,當然懂一點是最好的情況。
  美術的部分在Untiy內有Unity Asset Store上面可以購買,我相信其他地方也有類似的網站,買來就可以商用,有些價格為零,只要你能組合、有想法、那美術這部分可以完全不會沒關係,只要清楚如何使用即可。
  更新1:技術美術的職位就是在處理這一塊,外部資料的連結使用,我發現在遊戲設計的業界,對於資料的轉移的職缺非常豐富,雖然聽說要懂的東西非常之多,但如果你懂很多軟體,並了解資料轉移的方式,也是進入遊戲業的一條路,當然溝通能力要有一定水準就是了。
  企劃的部分可以很簡單,向是超級瑪利歐一樣,闖關、跳躍,也可以像市面上充斥廣告的超休閒遊戲一樣,不需要教學,塞滿廣告,簡單易玩無負擔,不過有一點我必須要提到,我不排斥為了賺取被動收入學習製作遊戲,但不支持製作超休閒遊戲,越多人投入無腦遊戲,有品質的遊戲就會越少,不是嗎?
  更新1:但無論再怎麼說,企劃依然是遊戲的靈魂,那怕是超休閒遊戲都需要好的企劃,如今時代更注重手遊金流,要如何運用這龐大的產業鏈也算在企劃的一環。

自我學習歷程和里程碑

  經過了一年多的學習,雖然說課堂上教學的東西只是入門,不過在這段時間的自我學習,我的遊戲程式也有了十足的長進,加上身邊朋友的支持和榜樣,如今我也算有模有樣,我不確定自己到達哪個階段,但我確信我擁有一條能通往專業的學習之路。
  更新1:如今也三年了,應該說正踏入第三年,九月多我就是實打實的大三生了,中途程式也放置一段時間,但如今我也能有一套系統性的學習流程,我相信我能面對各種問題去解決。
  我會用這段時間來,我學習的路程來教學「如何掌握一條持續精進的學習之路」,這五個步驟,我相信你也能擁有一份持續進展的自學方式。

第一步:學習方向

  製作遊戲的第一步,要走進遊戲產業,你要先確定一件事情,遊戲分為2D跟3D,還有結合兩者的2.5D,我是從2D橫向卷軸開始製作,因為2D遊戲是最容易製作的遊戲類型,在美術上也容易製作。
  無論哪一種遊戲類型,最重要的事情是要對它有興趣,所以先從自己喜歡的遊戲中選擇吧!找尋想製作的遊戲,判斷它屬於哪一類,每一種遊戲類型彼此都大同小異,只是學習量的不同而已,所以請認真選擇自己的學習方向,並熱衷所學。
  因為我所學習的遊戲製作,都是使用Unity來進行,所以接下來的部分都會以Unity為主,如果真的打算踏入遊戲製作的行列,先下載「UnityHub」會方便很多,無論你有沒有打算馬上開始學。

第二步:遊戲專案瀏覽與分析

  製作遊戲的第二步,那就是先用Unity玩遊戲,先摸索別人製作完成的作品會比一個人瞎摸還有用,在Unity內有許多教學,也有許多程式包,先從Unity Learn中找尋你要學習的東西,然後載下來體驗。
  我當初學習的是「2D game Kit」,這是一個2D橫向卷軸的遊戲,裡面主要是介紹Unity的使用及運用,不包含程式,但想學習程式也可以點開裡面的程式(Script)來一行一行的讀,它也有註解,如果沒有程式底子,都看過一遍也很有幫助。
  模仿程式包的重點,是學習一款遊戲背後的製作原理,從程式包的套用到美術資源的匯入,都可以藉由一個完整的作品來一窺全貌,不需要動程式,只需要瀏覽別人製作完成的Unity專案。

第三步:改裝專案並摸索遊戲結構

  製作遊戲的第三步,你看過了別人遊戲背後的製作原理,是時候製作一款遊戲了,不懂遊戲程式、遊戲美術沒關係,剛剛的程式包直接拿出來,運用裡面的預製物,還有裡面現成的程式,開始製作。
  在Unity中遊戲擁有許多場景,建立一個新的空場景,然後開始使用專案裡面已完成的預製物,我使用的2D game Kit本身也有如何使用預製物的教學,照著做就可以了。
  在摸索的途中,我建議你買一本筆記本,記錄下來你所摸索的過程,譬如一款遊戲的道具、角色、敵人、陷阱、背景等等,裡面包含什麼?他們自己製作的程式有哪些、Unity內建的組件有哪些,想到什麼就寫下來,不用在呼分類,雜亂也沒關係,未來這就是你的寶貴資產。

第四步:學習程式細節

  製作遊戲的第四部,現在你了解了一款遊戲的整體構造,你也許會覺得自己理解不夠多,也許印象越來越模糊,不過這些過程都為未來打好了基底,現在要進行下一步,你要看懂程式的運作。
  藉由遊戲專案的使用,你了解Unity專案的運作,接下來就是學習一款由戲運作的靈魂,程式,學習程式的過程相當繁瑣,也有各種不同的學習方式,如你所看到的情況,我一段一段剖析我所看到的程式碼,撰寫成文章,我還撰寫了一本屬於我自己的程式集概要,這些是我所進行的方式。
  宣告、變數、函式、資料型態、欄位等等,程式細節慢慢地掌握,吸收來自各種不同文章的知識、學習Youtube上關於C#的教學、整理屬於自己的心得,而這一段路程是無限遠,永遠都有新東西、新細節、新的撰寫架構,這些是一個程式員一輩子的必修課。

第五步:設計程式並撰寫作品

  當你程式學習到一個階段,另一個更好的統整所學的方式,就是運用並製作一個屬於自己的遊戲,如果上面所提到的內容,美術可以買、企劃可以少,無論如何,自己從頭開始設計一份屬於自己的遊戲。
  嘗試不同的撰寫方式,記錄不同的程式(Script)內容,在這個過程中你會完整的體驗到一款遊戲的製作,自行規劃一個又一個階段,一款又一款不同遊戲,當你創作越來越多的內容,你的作品集也會越來越豐富。

更新1:額外聊聊遊戲特效和音樂

  最近在摸遊戲特效,也正考慮要不要碰音樂,不過還是要看精力,畢竟剩下不到一個月的時間,又需要進行企劃與組建團隊,但這一塊也是小有心得。

遊戲特效

  在 Unity 中,粒子特效 (Particle System)可以說是一切特效的起源,它擁有特效該有的觀念和操作空間,也幫未來進入VFX特效奠定了基礎。
  遊戲特效需要幾個概念,它可能會碰程式、可能會碰美術,但更重要的是美感與想像力,這個職位的薪水也很不錯,應該說它的潛力相當高,發展到國外以後更是能翻大概 1.5倍,不過台灣環境好像不太好,所以踏入要三思。

遊戲音樂

  首先,我必須要闡明一件很重要的事情,遊戲音樂跟 Unity 及遊戲製作可以說是完全沒有任何關係,遊戲音樂基本上就是學音樂的去加載更多有關於遊戲製作的知識,但本質上還是音樂人。
  遊戲音樂的學習方法有很多,最重要的是了解各大遊戲音樂,並發展出個人的特色和風格,簡單來說,假如今天要做 8-Bit 音樂,遊戲公司第一眼就想到了你這個人,那你就成功了。  

結語

  原本文章標題要寫遊戲設計師,在簡單搜尋後發現遊戲設計師主要在形容遊戲企劃,於是改成遊戲設計,撰寫的過程中花費了我不少時間,也重溫了一整年來學習的歷程,挺不錯。
  曾經有人問我,什麼時候才可以自稱自己是「程式設計師」,路有太多,範疇太廣,要什麼時候才能稱呼自己為程式員?雖然我回答「當你能自行接下一個案子時,就差不多了」,如今回想起來,時間到了,自己自然而然就說得出口了。
  更新1:我想我現在應該就是一個程式設計師,雖然我還不能自行接下一個案子,但我能自行建立一個專案,有一句話說得很好,「既然你希望自己能專精於這個行業,那你怎麼能沒有一個自己的專案 (Side Project)呢?」。
  感謝你閱讀到這邊,希望這篇文章能告訴你遊戲設計師在做什麼,無論有興趣也好、純粹好奇也好,我相信這一篇文章都能帶給你心的視野,對遊戲產也更加理解。
歡迎來到遊戲開發!遊戲人!

更新1:瓶裝雪

  你對我有興趣了?那太好了,我還有很多的作品跟知識可以讓你看看,無論是我對了抒發情感和鍛鍊文筆的生活與戀愛的文章、還是關於我自己專案的日程紀錄、粒子特效的作品展示,都可以在下面找到我。

程式與設計:

戀愛與生活:

粒子與特效:

遊戲製作:

為什麼會看到廣告
105會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。
本文章主要介紹保護程式的方法及封裝方法的唯讀屬性。
本文章將介紹回傳及無類型回傳在變數與函數中的用法,以及他們比較常使用的方式。
本文章將介紹Unity產品生命週期的一部分,並提供使用範例程式碼。
在Unity中,Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。
這篇文章主要介紹父子關係,以及相關的程式控制代碼列舉。
  這篇文章將介紹public函式應用,回顧保護層級、無類型兩個核心重點,再介紹遊戲製作重點程式(Script),再到控制中心Script製作與方針。
本文章主要介紹保護程式的方法及封裝方法的唯讀屬性。
本文章將介紹回傳及無類型回傳在變數與函數中的用法,以及他們比較常使用的方式。
本文章將介紹Unity產品生命週期的一部分,並提供使用範例程式碼。
在Unity中,Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。
這篇文章主要介紹父子關係,以及相關的程式控制代碼列舉。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
來談一下最近我很感興趣的一個投標,遊戲開發平台 Unity。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
來談一下最近我很感興趣的一個投標,遊戲開發平台 Unity。