伺服器
與其他所有使用 Valve Source 引擎的多人線上遊戲一樣,《絕地要塞2》也是客戶端—伺服器的網路連線架構。客戶端是指在玩家的電腦上所運行的那份完整遊戲程式,而伺服器端指的是客戶端遊戲程式所連接的地方。目前全世界有多達上千台屬於《絕地要塞2》的伺服器。
伺服器的功能是處理《絕地要塞2》遊戲進行時發生的每一件事情。它會不斷地接收所有玩家目前位置以及各種狀態的資訊,並對玩家的各種行為做出回應。比方說,當玩家的攻擊對目標造成了傷害後,伺服器會通過播報形式告知玩家,而播報告知的方式也有很多種,例如顯示對目標造成的傷害值...等。此外,伺服器還會處理各種不受玩家控制的事件,例如地圖回合時間、步哨槍的行為等等。
內容
優點
除了加入網路上的伺服器,玩家們也可以架設自己的遊戲伺服器。這使得主機端(又稱 Host 端,即架設伺服器的玩家)可以設定多張地圖的循環方式,選擇特定的地圖與遊戲模式進行遊戲。此外,遊戲的預設設定也能修改,例如重力、職業數目限制、高地模式模式限制等等。主機端也可以安裝自訂模組以提供多種不同的遊戲方式。
伺服器類型
目前 Source 引擎遊戲的伺服器類型有兩種:
個人架構/本機伺服器(Listen/Local server)
個人架構/本機伺服器是在 TF2 遊戲客戶端上運行的基本伺服器。玩家只要在遊戲主選單上點選「建立伺服器」按鈕即可創建。其他玩家亦可連接到此類伺服器中進行遊戲,但是太過頻繁地在同一客戶端上架設伺服器,會加速系統資源的損耗。這類型伺服器適合在進行區域網路連線時使用。
專屬伺服器(Dedicated server)
專屬伺服器是那些不需要透過 Steam 平台運行的獨立伺服器。由於系統資源損耗較低以及其他優勢,專屬伺服器比本機伺服器還常使用。一些專屬伺服器所使用的硬體設備,是在資料中心運行的高級配置伺服器,能為玩家提供比個人伺服器還要好的連線及遊戲體驗。
需求
雖然 GSP(遊戲伺服器提供商)通常會使用有高端配置的專用硬體運行遊戲伺服器,但任何人都可以使用一台電腦來創建伺服器。相關需求如下:
個人架構/本機伺服器
- Mac OS X:作業系統 10.5.8、10.6.3 版本或更高。
- Windows:XP 作業系統或更高。
專屬伺服器
- Linux:x86 或 amd64 系統且裝有 glibc 2.3.2 版或更高版本。
- FreeBSD:x86 或 amd64 系統且裝有 Linux 內核相容代碼以及最新版本的 Linux 基礎型系統。
- Windows:2000 作業系統或更高。
更新記錄
- 釋出 Linux 專屬遊戲伺服器測試版。
- 當主線程未設定指定的專屬伺服器時,會在多核處理器中自動設置多個伺服器線程,但仍舊將 CPU 1 設置成主要處理器。
- 為伺服器移除指令 mp_friendlyfire cvar,原因是如果開啟這個指令,遊戲會因為很多原因而嚴重當機。
- 修正了一個因網絡數據錯誤而造成伺服器當機的罕見錯誤。
- 修正因間諜的電子破壞器而造成的伺服器當機問題。
- 在「建立伺服器」選單選項中新增多個篩選選項。
- 改進了遊戲啟動時網路連線初始化的速度。現在即使伺服器的防火牆突然跳出來,也不會影響速度。
- 修正一些關於地圖 Dustbowl 和 Hydro 在回合中段使伺服器變得沒有玩家的問題。
- 修正有關「honeypot」伺服器的問題。
- 為伺服器增加指令 sv_pure,預設為關閉。請在控制台(console)鍵入這指令以觀看詳細說明。
- 在伺服器日誌紀錄中增加下列標記:Round_Start、Round_Setup_Begin、Round_Setup_End, Round_Overtime、Round_SuddenDeath、Round_Stalemate、Round_Win、Round_Length、Mini_Round_Selected、Mini_Round_Start、Mini_Round_Win 和 Mini_Round_Length。
- 伺服器日誌紀錄中的 Round_Win 標記和更換地圖,現在有了更詳細的紀錄(像是隊伍分數或是玩家人數)。
- 更新關於搶奪情報箱的記錄標記:會更詳細地記錄奪取成功次數等資訊。
- 現在 Windows 專用伺服器在 -console 模式下運行時,移動視窗會使其位於最上層,而不是定在原位置上。
- 修正 Windows 專用伺服器在 -console 模式下運行時,輸入指令很慢且遲緩的問題。
- 修正在 32 人伺服器中,更改玩家名字時會發生的錯誤。
- 現在伺服器可以自由選擇要不要開啟驟死戰模式,預設為關閉。
- 修正一個會導致伺服器當機的控制台指令。
- 修正玩家在被治療時突然離開伺服器,會造成當機的罕見錯誤。
- 為伺服器增加了能夠在 cfg. 資料夾儲存特定 cfg. 地圖檔的功能。
- 為伺服器增加幾個和玩家有關的數據(player_death, player_builtobject, teamplay_flag_event, object_destroyed, teamplay_point_captured, teamplay_capture_blocked)。
- 為伺服器新增了指令 nextlevel。如果設定了一個有效的地圖名稱,伺服器會在回合結束換下張地圖時,切換成指定的地圖。
- 現在伺服器會對工程師引爆自己的建築物的行為做紀錄。
- 現在如果所有連結都出自同一台設備的話,遊戲伺服器會嘗試 32 個端口的連接形式啟動。之前端口上限設定為 10 個。
- 修正將指令 mp_forcecamera 的數值設置為 1 而導致的伺服器當機錯誤(取消上次更新的變更)。
- 玩家現在可以通過輸入相應的標籤內容來篩選伺服器。
- 為伺服器增加了一些可選的自訂設定:禁止爆擊(tf_weapon_criticals)、無重生時間(mp_disable_respawn_times)以及伺服器最大人數超過 24 人
- 改善伺服器端的資料統計方式(不涉及玩家的個人資料)。
- 修正 -maxplayers 啟動指令不能正確地設定伺服器最大玩家數的錯誤。
- sv_alltalk 指令現在不會影響自訂伺服器標籤。
- 修正最大玩家數 maxplayers ≦ 24 且有運行 SourceTV 的伺服器會出現「increased_maxplayers」標籤的問題。
- 修正 Linux 專屬伺服器在某些 Athlon 處理器上面產生的地圖讀取問題。
- 修正 Linux 版本不能正確處理 FCVAR_REPLICATED 以及 FCVAR_NOTIFY 控制台指令的問題。
- 修正一個可從伺服器發送執行代碼到指定客戶端的漏洞。
- 更新指令 mp_stalemate_at_timelimit。現在伺服器管理員可以透過輸入此指令,使非官方地圖在到達設定的時間(mp_timelimit)後進入驟死戰模式。
- 修正一個阻擋專屬伺服器上傳遊戲統計資料的問題。
- 修正 Linux 上的專用伺服器在換圖時當機的問題。
- 修正用戶端可以在伺服器中啟動指令 sv_soundscape_printdebuginfo 的漏洞。
- 修正在 rcon 次要系統中潛在的代號「nuke」漏洞問題。
- 修正控制台指令 _resetgamestats 所導致的伺服器當機問題。
- 改進連線時的程式邏輯,以幫助某些無法自動重新連接至 Steam 的伺服器。
- 修正指令 etinfo 可讓限制使用的控制台指令,在連線至伺服器時輸入的漏洞。
- 修正控制台指令 sensitivity 沒有覆蓋更高的數值,有時因而導致伺服器當機的問題。
- 在客戶/伺服器端新增檢查客戶端連線狀態的機制。
- 修正伺服器創造電腦人出來時,程式運作會陷入無限循環的問題。
- 更新連接到伺服器時的版本檢查,當發現不同時能提醒玩家伺服器的遊戲版本比自己新或是舊。
- 修正由於伺服器不穩定的網絡所引發的漏洞。
- 修正另一個不正常的網絡數據所導致的伺服器當機漏洞。
- [未記載] 修正在伺服器中的交易結果只顯示一項物品的問題。
- 新增防止多人連線伺服器設定最多容納人數為 1 人並跟客戶端連線的檢查機制。
- 修正客戶端能夠在 sv_pure 伺服器裡使用有關粒子效果的漏洞的問題。
- 修正因使用半盲劍俠攻擊沒有持武器的玩家時會發生的伺服器當機問題。
- 修正引起伺服器當機的 nextlevel 投票問題。
- 修正使用電腦人BOT 的伺服器在換地圖時會發生的當機問題。
- 本地 HTTP 模式中的重播發布系統會試圖進行更名動作,但若更名失敗(通常是檔案來源與目的地目錄相異的時候)時會手動複製並刪除檔案。
- 修正在 Linux 系統上會造成嚴重延遲的程式執行緒問題。
- 修正重播資料清除系統(這是個會在回合結束時刪除逾時重播資料的系統)。這項非同期作業可以藉由在伺服器上輸入 replay_docleanup 指令而執行。
- 重播系統:
- 修正資料清除時伺服器會自動鎖定的問題。
- 修正因配對錯誤的物品加入議程而導致的伺服器當機問題。
- 修正一些因重播錄影系統造成的伺服器當機問題。
- 修正一個因投票系統造成的伺服器當機問題。
- 修正一個因重播系統而導致的伺服器當機問題。
- 修正偽裝成間諜時所導致的伺服器當機問題。
- 修正啟動時在控制台寫入指令所導致的伺服器當機問題。
- 修正清除實體模型時所導致的伺服器當機問題。
- 新增當玩家藉由自動配對系統加入遊戲時會出現的伺服器控制台訊息。
- 修正踏板戰靴在 Linux 伺服器的傷害計算設定。更改前踏板戰靴會造成伺服器物理性當機。
- 修正因無效的玩家觀看視角造成伺服器當機的漏洞。
- 修正了當同時使用 SourceTV 及重播工具所造成的伺服器當機問題。
- 修復了一個與封包檔相關所造成伺服器頻繁當機的問題。
2011年10月18日更新 #2
- 修正一個未預先載入模組的伺服器錯誤。
- 將玩家因 Steam 認證失敗而被伺服器踢出的伺服器錯誤訊息改得較明確。
- 部分額外的重要伺服器訊息現在也會記錄至伺服器記錄,而非只有控制台而已了。
- 修正因快樂拳對地圖實體物件擊出爆擊時會使伺服器當機的問題。
- 修正專屬伺服器在更新釋出之時沒有接獲重新啟動消息的錯誤。
- 修正指令
+randommap
在伺服器啟動時沒有正確運作的問題。 - 修正跟重播系統客戶端和視角有關的專屬伺服器控制台問題。
- 修正當伺服器端使用指令
SetCustomModel
更改玩家模型時,所導致的客戶端當機問題。
- 修正伺服器跟物品伺服器斷線後,有時無法重新連線的錯誤。
- 新增伺服器指令
changelevel_next
,可讓伺服器直接將地圖換成循環中的下一張地圖。
- 新增控制台指令
sv_rcon_maxpacketsize
和sv_rcon_maxpacketbans
,可讓伺服器管理員直接控制 RCON 命令數據包的最大值,無論被封禁的玩家有無超過限制皆可控制。預設值會依照伺服器的設定而定。 - 修正以地圖啟動的事件標記無法在專屬伺服器上執行的問題。
- 由專屬伺服器發起的投票,不會再產生投票失敗後的等待時間了。
- 現在於遊戲時使用名稱標籤更名時,會發出通知讓其他的玩家知道。
- 修正可讓假造的 IP 位址跟遊戲伺服器連線的問題。
- 修正重新連線至物品伺服器時會發生的客戶端/伺服器當機問題。
2012年7月20日更新 #1
- 新增指令
sv_namechange_cooldown_seconds
以防止客戶端太常改變他們的暱稱(預設值為 20 秒)。 - 新增指令
sv_netspike_on_reliable_snapshot_overflow
,客戶端因為 "reliable snapshot overflow" 這錯誤產生而自動斷線時,可選擇是否要進行自動丟棄 netspike.txt 檔的程序(預設值是 0,除錯程序不會進行)。 - 新增檢查玩家暱稱有無色彩碼的機制。
- 修正遊戲伺服器沒有正確接收客戶端裝備欄更動的錯誤(這錯誤最常讓玩家收到 "The server you are playing on has lost connection to the item server" 這種錯誤訊息)。
- 修正專屬伺服器無法設定指令
sv_region
的問題。
- 修正在地圖指令之前設定
tf_mm_servermode
指令而發生的伺服器當機錯誤。
2012年8月17日更新 #1
- 修正專屬伺服器會在開始少於 32 人的曼恩對決機器模式遊戲時,會自動關閉的問題。
- 修正指令
mp_timelimit
導致曼恩對決機器模式在防守方失敗時,無法正確重新開始遊戲的問題。 - 更新快速配對的指令
tf_mm_strict
。- 數值設定為 2 的話,會將伺服器隱藏,使瀏覽器無法搜尋到,但是仍舊可以鍵入地址直接連線至伺服器。
2012年8月17日更新 #2
- 修正離開伺服器的玩家,會在瀏覽器的伺服器人數顯示上產生「幽靈」玩家的錯誤。
- 修正發射子彈類武器時會產生的罕見伺服器當機問題。
- 新增指令
kickall
,以立刻踢除除了重播、HLTV、和伺服器端之外的所有連線。
- 修正一個可讓伺服器端惡意對玩家執行部分禁用指令的錯誤。
- 修正一個可讓伺服器端惡意阻擋玩家執行指令的錯誤。
2012年9月21日更新 #1
- 修正與爆破兵機器人的 AI 相關的伺服器當機問題。
- 社群要求:
- 新增伺服器指令
tf_avoidteammates_pushaway
,可決定是否啟用當隊友站在同一個地方時會互相推開的效果。 - 新增伺服器指令
tf_arena_override_team_size
,可令伺服器端設定競技場模式中的最大隊伍人數。
- 新增伺服器指令
- 修正間諜偽裝後如果手持機械槍手,會導致伺服器當機的問題。
- 修正 Linux 專屬伺服器在曼恩對決機器模式時產生的當機問題。
- 修正一個與遊戲統計相關的伺服器當機問題。
- 現在如果玩家透過配對或快速加入遊戲的方式進入伺服器的話,伺服器的每日訊息視窗不會再多次跳出了。
- 改善 Linux 專屬伺服器二進位檔案的效能。
相關文章
外部連結
- 如何搭建 Steam Source 引擎遊戲專用伺服器-Steam 支援網站
- Source Dedicated Server (英語) 來自於 Valve 開發者社群 (英語)