當前位置:商標查詢大全網 - 教育培訓 - 如何學習基礎遊戲編程

如何學習基礎遊戲編程

以下文章以服務器為例,希望對妳有幫助。

-

學習遊戲服務器編程的基礎知識

江·

前段時間壹直在給開發者灌輸3D遊戲引擎技術,包括遊戲底層數據結構的封裝,算法與遊戲實戰技術的視頻課程分享,以及寫壹些利用算法解決遊戲實際問題的文章。在向讀者介紹3D遊戲引擎的同時,還被問到如何學習遊戲服務器編程技術。其實我也喜歡遊戲服務器編程。在遊戲開發過程中,遊戲服務器開發的工作量要比客戶端少得多,比如遊戲開發後期客戶端需要調整各種特效,更改UI。當然網上有很多開源的服務器代碼,很多代碼在Github上都可以找到,比如java,C#,C++,C,erlang,python等。很多人很迷茫,不知道該學哪種編程語言。服務器編程和開發也因地區而異。IT行業發展的中心是北京、上海、廣州,他們對遊戲服務器編程語言的要求也不壹樣。北京偏愛java編程,上海偏愛C++編程,廣州偏愛二郎編程。這也告訴開發者,如果想去不同的地方,可以根據自己的需求來學習。這篇文章是告訴讀者如何學習遊戲服務器編程與開發。

我還是喜歡C++編程。其實語言只是壹個方面,原則要明確。我來說說我學習服務器編程的經驗。

學習遊戲服務器編程也要分階段進行。第壹,學好基礎。編程語言是必要的。可以熟練學習java、C++、C #和erlang中的任意壹種,或者以c++為例。遊戲編程中經常會用到壹些宏定義或者模板定義。開發人員應該知道宏定義和模板定義的含義。STL模板中的對象,如Map、Dictionary、List、Vector等,在服務器開發中經常用到。網上有很多學習資料。另外,這裏還需要講壹下數據結構。無論是在客戶端還是服務器端開發,都會用到數據結構,比如哈希表、二叉樹、隊列、棧等。以上提到的都是語言所必需的。

如果妳有紮實的語言基礎,可以直接跳過這壹階段的學習,直接進入第二階段。關於網絡通信協議,例如,我們的TCP/IP協議分為七層。每壹層的作用是什麽?服務器傳輸常用的協議有幾種,即Web使用的TCP協議、UDP協議、Http。TCP協議是壹個可靠的協議,數據傳輸後必須確認。UPD協議不可靠,也沒有必要證實。Http協議是主動獲取的,主要用於資源和Web註冊。這三個會用到服務器開發,必須掌握。這裏向讀者展示每壹層中包含的協議:

應用層:TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet等。

傳輸層:TCP、UDP

網絡層:IP,ICMP,OSPF,EIGRP,IGMP。

數據鏈路層:SLIP,CSLIP,PPP,MTU。

通過上面列舉的幾點,我們知道每壹層都存在哪些通信協議。當然,每壹層都不是孤立存在的,它們之間是有聯系的。這方面在計算零件原理中也有介紹。這裏,在線地圖用於向讀者顯示以下內容:

應用層主要由我們自己的程序處理,它可以通過傳輸層和網絡層傳遞消息。上圖進壹步細分如下:

通過上圖,我們可以清楚的看到TCP/IP協議組的構成。具體可以查大學課程《計算機原理》。掌握了這些基本的通信協議之後,接下來就是掌握Socket了。Socket是應用層和傳輸層之間的抽象層,它把TCP/IP層的復雜操作抽象成幾個簡單的接口,供應用層調用實現的進程在網絡中通信。

Socket Socket是最基本的通訊方式。它在遊戲中的服務器和客戶端之間進行通信。以遊戲登錄為例。客戶端首先創建壹個Socket,然後將播放器的用戶和密碼、登錄服務器的IP地址和端口號寫入Socket並發送給服務器。服務器會監聽。收到消息後,它會打開並讀取套接字信息進行處理,比如驗證信息的正確性。然後服務器創建壹個套接字,將發送給客戶端的消息寫入套接字,並發送給客戶端。客戶端也會進行監聽操作。客戶端收到消息後,客戶端打開套接字並讀取消息。客戶端和服務器之間的通信如下:

TCP/IP協議中有三次握手,通過三次握手可以建立可靠的連接。效果如下圖所示:

在服務器端程序員的面試中經常會提到三次握手。在掌握了TCP/IP協議後,他將進入實戰演練階段,看看自己對網絡的掌握程度。以Unity為例,可以學習TNet的超輕量級網絡傳輸,因為它沒有數據庫,但是可以很好的驗證學習到的TCP協議和Socket套接字,可以在此基礎上嘗試做壹些消息傳輸。最後,妳要學習MySql,服務器存儲需要的數據庫。

學習數據庫的安裝,創建新表、插入數據、刪除數據、讀取數據等數據庫操作。掌握數據庫後,需要通過遊戲服務器編程來操作。建議先學習網上的PhontonServer,是用C #寫的,方便開發者學習。此外還提供了Unity實現的Demo,方便開發者調試連接,熟悉Mysql。

以上知識也是服務器開發人員必備的。掌握了這些技術之後,繼續提升的最好方式就是去公司,跟著項目走。在接下來的章節中,將向讀者介紹如何搭建壹個真實的遊戲服務器,知名IT遊戲公司的服務器架構設計和服務器負載均衡的設計,最後介紹如何搭建壹個全局服務器。