本文就將圍繞三個主題來給大家講述一下網路遊戲的網路互連實現方法
網路遊戲與單機遊戲有乙個很顯著的差別,就是網路遊戲除了乙個供操作遊戲的使用者介面平台(如單機遊戲)外,還需要乙個用於連線所有使用者,並為所有使用者提供資料服務的伺服器,從某些角度來看,遊戲伺服器就像乙個大型的資料庫,提供資料以及資料邏輯互動的功能。讓我們來看看乙個簡單的網路遊戲模型執行流程:
客戶機:
login()// 登入模組
game()// 遊戲迴圈部分
break;
case 其他玩家/npc的移動訊息:
break;
case 新玩家加入遊戲:
break;
case 玩家離開遊戲:
break;
...其它訊息型別處理;
...
default:
break;}}
exit()// 遊戲結束
伺服器:
listen() // 遊戲伺服器等待玩家連線模組
else
}game() // 遊戲伺服器迴圈部分
else
傳送不可移動訊息給客戶機;
}exit() // 遊戲服務=器結束
}以上用簡單的偽**給大家闡述了單機遊戲與網路遊戲的執行流程,大家應該可以清楚看出兩者的差別,以及兩者間相互的關係。我們可以換個角度考慮,網路遊戲就是把單機遊戲的邏輯運算部分搬移到遊戲伺服器中進行處理,然後把處理結果(包括其他玩家資料)通過遊戲伺服器返回給連線的玩家。
網路遊戲通訊模型初探(四)
struct tagmessage 訊息指令 指令相關的玩家標識 char strtalk 256 訊息內容 上面是抽象出來的乙個極為簡單的訊息包結構,我們先來談談其各個資料域的用途 首先,ltype 是訊息指令的型別,這是最為基本的訊息標識,這個標識用來告訴伺服器或客戶端這條指令的具體用途,以便於...
Twisted的網路通訊模型
twisted的網路通訊模型 一 twisted基本模型 twisted網路程式設計框架是一種基於事件的網路程式設計框架,使用者需要繼承特定的類,並過載其中的方法來處理網路通訊中可能出現的各種情況。twisted的網路通訊模型最基本的也要由三部分組成 反應器 reactor 協議 protocol ...
C SOCKET通訊模型(一)select
為了 簡潔,socket上那些函式的返回錯誤值我就不再捕獲了,windows平台 server.cpp define fd setsize 2048 normal.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include i...