Minecraft-HK Community
交流有關 Minecraft 的最新資訊、專業教學、遊戲伺服器、相關資源及心得分享

官方開發者日誌9—概述Hytale的伺服器技術

genius_al

木頭工人
2019-03-01
8
3
原文標題:An overview of Hytale’s server technology
原文連結
原文發佈日期:2019年1月25日
本篇文章由Hytale中文討論區(Discord) 翻譯組翻譯。
轉發請註明作者與出處。
如有翻譯錯誤,歡迎更正。
blog_cover_5c4b5d1ef69b310012f2173d_server_header.jpg

在此文章中,我們將會介紹構成每個Hytale伺服器的技術,包括它們如何運作,以及你會如何與其互動。為此,我們會使用較專門的術語來介紹,但我們希望你在了解到我們為了讓Hytale伺服器運作快速、容易存取和安全所做的工作後會感到興奮。

程式語言和性能
自從我們在12月宣佈Hytale的計劃,我們收到很多關於Hytale的引擎和伺服器技術的問題,我們很高興有很多人有興趣架設自己的Hytale伺服器。在這裡先解答最多人問的問題:Hytale的用戶端是用C#編寫的,而伺服器則在Java上運行。我們會在未來的日誌中講述遊戲內腳本,因為那是個不同的主題。

我們為Hytale的伺服器選擇Java是有種種原因的。首先,我們的幕後團隊對編寫高性能的Java很有信心,而這能讓我們大大完善伺服器的程式碼。不僅如此,我們知道我們的社群對於編寫Java語言很有經驗,讓伺服器服主容易地運行伺服器是很重要的。而為用戶端選擇C#則能提供額外的性能好處,而我們很滿意目前的結果。

伺服器共享原始碼
Hytale的伺服器技術會由共享原始碼提供,這代表任何人都可以看到伺服器編碼。然而,為了為伺服器服主和玩家提供共同的底線,我們不會公佈用戶端的編碼。這讓我們提供安全和可靠的遊戲體驗、防止作弊,並為創作者的創作提供一個共同的基礎。

由於Hytale起初就是為了模組而開發的,伺服器服主可以創建和自定義遊戲的每個部份,包括環境、遊戲機制和介面。我們想讓玩家在我們已完成的基礎上創作,但我們也不希望遊戲社群會替我們做這些事。

事實上,這個共享原始碼系統代表伺服器可以在所有玩家共同的用戶端的基礎上,運行經修改過的遊戲版本。每個伺服器代表了其創作者對遊戲的看法,而因為伺服器服主都在同一平台上創建,玩家可以容易地在不同的遊戲體驗之間轉換。當你連接到一個Hytale伺服器,用戶端會自動下載所有遊玩時需要的內容,包括模型、動畫和聲音等。

(此影片請到原文觀看)
以上影片展示了在玩家連接伺服器時,會自動加載新的和更改了的遊戲資源。

伺服器瀏覽器
好眼力的讀者在閱讀關於介面的那篇日誌時,會在Hytale的主選單上方看到名為「伺服器」的導航標籤。Hytale的伺服器瀏覽器讓玩家可以快速地找尋想遊玩的伺服器。

我們會讓你以想遊玩的遊戲種類,例如冒險模式、小遊戲、多人合作或競技,或語言來排序和篩選伺服器。除了傳統的伺服器列表會有的橫幅和圖像外,標籤系統會讓伺服器指定他們提供的遊戲內容。例如,使用者可以將喜歡的伺服器加到最愛,而你可以以最愛數量來排序,以快速地找到最受歡迎的伺服器。

5c4b5d1ff69b310012f2173e_server_ui_concept.jpg

Hytale伺服器瀏覽器中伺服器列表的概念圖。

Hytale伺服器瀏覽器會由活躍的管理員團隊管理,及所有伺服器服主,從大型小遊戲伺服器到小型社群伺服器,都需要遵守我們不太嚴格的服務條款。將伺服器的資訊放到伺服器瀏覽器上不是必須的,但我們預計它將會是很多玩家尋找伺服器來遊玩的方法。

與朋友遊玩
此外,我們為Hytale引入了一些技術,讓一同遊玩變得輕而易舉。好友列表能讓你進入朋友正在遊玩的伺服器,也讓你連接到他們的冒險模式世界。為了確保過程順暢,我們使用了UPnP(Universal Plug and Play,通用隨插即用)協定來自動處理通訊埠轉發,如果不行,我們會嘗試使用NAT(Network Address Translation,網路位址轉換)衝穿。換句話說,只要你和你的朋友都連接了網路,不管你們的路由器設定是如何,你不需要設立通訊埠轉發就可以通過好友列表來加入朋友的世界。讓你能簡單順利地和朋友遊玩對我們是很重要的。

讓大家建造的平台
我們已將6年多為數以百萬計的玩家運行伺服器的經驗,投放進Hytale的伺服器技術。我們的抱負是對應我們經營Minecraft伺服器多年來遇到的困難,提供解決方法,從而能預計Hytale玩家和服主將會遇到的問題並為此提供答案。我們希望和遊戲社群緊密合作,而我們會通過溝通來確保我們有考慮到你們的要求和想法。
 
  • Like
反饋: Dexmio