iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
自我挑戰組

多人連線遊戲背後的原理與實作 系列

玩了好多款線上遊戲卻不知道其背後運行的原理與技術嗎?想寫一款多人連線遊戲跟朋友一起玩嗎?不知道如何處理在開發多人連線遊戲時遇到的困難嗎? 本系列文章將帶大家了解多人連線遊戲的原理,以及如何去實作。

參賽天數 3 天 | 共 30 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 3

Day21 - 程式實作(寄送封包篇一)

我需要創建一個Packet的Script來處理Packet的資訊,在伺服器或是客戶端進行封包傳輸前,需先將所有 Data type 轉成bytes,並將其儲存到...

2022-10-08 ‧ 由 YuSiu 分享
DAY 3

Day22- 程式實作(線程篇)

我們在撰寫多人連線遊戲的Code時,針對程式上的錯誤來源,其實很難去追查,在這裡我們要用到線程的原理,來幫助我們在程式上的除錯更有效率。 線程(Thread)...

2022-10-09 ‧ 由 YuSiu 分享
DAY 3

Day23 - 程式實作(寄送封包篇二)

今天分別要在伺服器端及客戶端,去對封包做發送以及接收的工作,可以先分別在Server以及Client創建Send以及Receive的Script。 一. 發送端...

2022-10-10 ‧ 由 YuSiu 分享
DAY 3

Day24 - 程式實作(寄送封包篇三)

為了確保系統會自動釋放完整資源,呼叫時使用 using 來呼叫對應的方法處理封包,而結束時垃圾收集行程(GC)並不會處置該物件,需呼叫 Dispose 的方法來...

2022-10-11 ‧ 由 YuSiu 分享
DAY 3

Day25 - 程式實作(玩家移動篇一)

假設我們要在連線遊戲中讓玩家能夠操控一隻角色,使他能夠前後左右走動。在客戶端中我們需要一個 "PlayerController" 的腳本,裡...

2022-10-12 ‧ 由 YuSiu 分享
DAY 3

Day26 - 程式實作(玩家移動篇二)

在上一篇文章中,我們以客戶端的角度去寫了玩家移動的Script,那這篇文章就從上篇文章接續下去。在伺服器端,我們在之前建立的 Server 腳本中在玩家連線後把...

2022-10-13 ‧ 由 YuSiu 分享

Day27 - 程式實作(玩家移動篇三)

在上一篇文章中,我們在伺服器端針對客戶端傳來的封包,去做了後續的處理,使伺服器的角色能根據客戶端玩家的指令去做相對應的動作;那在這篇文章中,要來把伺服器運算的結...

2022-10-14 ‧ 由 YuSiu 分享

Day28 - 程式實作(斷線處理篇)

每當玩家中斷連線時,必須將該玩家的 Slot 清除,以便下個玩家做連線時可以使用該 Slot。伺服器跟失去連線的客戶端要把 TCP/UDP 的Socket 關閉...

2022-10-15 ‧ 由 YuSiu 分享

Day29 - 程式實作(遊戲安全篇)

避免玩家在遊戲中作弊是非常重要的,在之前的文章我們有提到如何防止遊戲作弊產生,這篇文章將會說明在程式中如何防止玩家作弊。 1. 權威伺服器計算 在Client-...

2022-10-16 ‧ 由 YuSiu 分享

Day30 - 程式實作(系統優化篇)

良好的遊戲優化,能提升系統的效能,也能提升玩家的遊戲體驗,今天來講講如何優化遊戲內的系統程式。 在封包中我們應該避免傳送冗於的資訊,假設玩家今天玩家收到一個攻擊...

2022-10-17 ‧ 由 YuSiu 分享