線上遊戲後端系統設計 – 目錄

一、課程簡介

本課程將會對開發線上遊戲的後端系統進行教學,內容為各種線上遊戲皆可以參考的核心骨架系統與各項開發線上遊戲後端程式所需的關鍵技術。 課程分成三階段:基礎、中階、進階,逐步深入。

基礎課程由建立專案開始,學習建立簡單線上遊戲會用到的各項技術,學習後可以著手開發一萬行C#以下的簡單線上遊戲程式。

中階課程會學習如何面對一萬行C#以上的遊戲專案,並提升程式設計的抽象化能力,避免程式出現冗餘的部分,並讓功能擴展性增加,以面對多樣化的遊戲需求。是開發小型遊戲以上的必備能力,並銜接進階課程的內容。中階課程依然以單伺服器為開發對象,目標為開發10萬行C#以內或同時在線1000人以下的線上遊戲。

 

進階課程以多伺服器後端環境切入,並探索專案的切割方式,將各項功能切成許多專案來開發,以供許多人同時進行專案開發,並介紹我的基本兩層式伺服器架構,由1+N個伺服器應用程式組成,可以服務1000人以上。

二、課程數值說明

重要性:

★☆☆☆☆:不會也沒關係

★★☆☆☆:最好要知道

★★★☆☆:最好要會使用

★★★★☆:常常會使用

★★★★★:必須知道

███████:可能致命

難度:

★☆☆☆☆:通識

★★☆☆☆:程式入門程度

★★★☆☆:會寫簡單的遊戲專案的程度

★★★★☆:已經學會設計模式的程度

★★★★★:高度抽象

███████:大概只有我自己知道

學會才能開發的專案規模:

★☆☆☆☆:練習小專案(1000行C#以下)

★★☆☆☆:課堂期末專題(5000行C#以下)

★★★☆☆:完整獨立小型遊戲專案(10000行C#以下)

★★★★☆:多專案分割,完整遊戲專案(100000行C#以下)

★★★★★:大型專案(100000行C#以上)

███████:把世界造出來

三、課程目錄

基礎

專案建立:學習如何建立Visual Studio與Unity遊戲專案。

GitHub使用指南:學習簡單的使用GitHub來做程式開發版本控制。

認識線上遊戲類型:認識線上遊戲類型,並辨識開發難度。

基本線上遊戲架構與伺服器環境:學習線上遊戲後端架構的基礎。

建立與伺服器的連線:學習如何在客戶端與伺服器間建立連線,並執行遊戲操作。

加入新功能到遊戲中:學習如何在已建構出的伺服器環境上加入新遊戲功能。

資料庫存取:學習使用資料庫來存取遊戲資料。

中階

架構切割與專案分離:學習將一個大的遊戲專案依照功能類型切成數個小專案。

抽象世界:學習使用抽象類別來描述遊戲邏輯。

泛型類別:學習使用泛型來減少相似類別內的重複宣告。

分離式通訊骨架:學習建構應用程式級的RMI系統,並消去物件之間的強烈耦合性。

抽象化伺服器環境:將伺服器邏輯與伺服器通訊設備分離,可適應多種伺服器套件。

物件參考分離:摧毀物件間的直接參考,以支援物件實體放在不同伺服器間的運作。

進階

線上遊戲多伺服器架構簡介:介紹大型線上遊戲的伺服器結構。

大型線上遊戲專案切割:介紹大型線上遊戲專案間的分割與繼承。

內部伺服器通訊設施:介紹如何建立多台伺服器間的通訊與使用。

跨伺服器運算:探討如何處理一個需要橫跨多台不同類型的伺服器才能完成的操作。

 

以上規模大小皆由我個人設想,不一定是真實情況。

發表留言