1. 程式人生 > >Minecraft(Server+client)構建筆記

Minecraft(Server+client)構建筆記

Minecraft是一款自由度極高的沙盒遊戲,基於JAVA開發,因此遊戲需要JAVA執行環境(JRE),遊戲的世界觀就是everything is block,我們在遊戲裡所做的一切就是通過block認識世界然後改造世界,比如你會發現在不用mod的情況下花費幾個小時平整地面是很常見的事情,看著光滑平整的地面一邊享受這得意的成就感一邊摸著自己僵硬的脖子暗下決心回頭一定要掌握mod的使用技巧(從健康的角度來講絕對不建議長時間玩遊戲)。

遊戲模式大體分為creative(創造)和survival(生存)兩種模式,offical定義如下:

Creative: Unlimited resources, free flying and destroy blocks instantly
Survival: Search for resources, crafting, gain levels, health and hunger.

簡單的來說:1.生存模式裡的monster是aggressive,創造模式裡的monster是friendly。2.生存模式裡的物品如礦石,木頭需要自己去採集以及合成,創造模式裡的物品直接從物品欄裡drag。

如果Minecraft只支援singleplayer的話可能就不會像今日這麼火爆了,在開始multiplayer之前首先網路內要存在一臺遊戲server,該server可以是自建的也可以是官方的(Minecraft Realms),我並不是一個堅實的遊戲愛好者,在玩遊戲娛樂的同時更多的是想體驗下游戲執行背後的技術,因此在單人模式下閒逛了幾天之後,我決定自建一個簡單的server來邀請我身邊的小夥伴跟一起在遊戲裡逛。

一套完整的網路遊戲服務必然包括client和server以及其他若干的優化保障設施, 因為我的需求只是構建一套能讓3~5個人一起小打小鬧的遊戲服務,所以構建方案裡僅僅包括執行環境,client和server的配置和執行。

Running Environment

因為Minecraft基於JAVA語言開發,所以JRE是必不可少的基本軟體,該軟體的安裝並不困難,不過由於現在網路終端型別眾多且系統多樣,在不同平臺JRE的安裝檔案格式和安裝流程稍有區別,具體可參考JAVA official site:
https://www.java.com/en/download/manual.jsp

選擇合適軟體下載並安裝,我手頭僅有一臺安裝win7的系統膝上型電腦,安裝完JRE之後開啟cmd,敲入java -verison

如安裝成功可看到正確的版本資訊。

JAVA version

Minecraft Client

安裝完成之後啟動介面如下

Minecraft Launcher

輸入註冊的賬戶密碼進入啟動器的主介面,啟動器主要用來更新和管理遊戲版本(Version)。

Download Demo
BOOT

因為我並沒有付費購買遊戲,因此只能啟動demo進行試玩,而demo僅能體驗5 game days(about 1 hour and 50 minutes), 所以接下來我會使用非官方啟動器來啟動正式版的遊戲。

note:按照Minecraft官方策略,玩家需付費購買的是客戶端程式,而對應的服務端服務則是免費提供下載,這種策略對該遊戲的推廣具有非常積極的作用。

Download server

從上圖也可以獲知預設game directory位於
C:\Users\EJQIZNG\AppData\Roaming.minecraft

完全純淨的遊戲目錄結構如下:

directory

其中saves資料夾裡存放的是遊戲backup;versions資料夾裡存放的是以遊戲版本命名的資料夾,遊戲版本資料夾裡存放的一般是一個jar包和一個json檔案。

Saves

Version

1.Minecraft non-official launcher

綜上,非官方啟動器的本質就是在無付費的情況下更新和啟動official version以及snapshot,並且附帶別的資源更新功能,如Forge和Mod(optional,因為可以手動配置),本文使用的啟動器是MCLauncherBN 3.5,介面設計簡潔並且無廣告,不過不幸的是該啟動器已經更新到4.0版本,更新後的軟體商業化氣息濃重,不過在當前大環境下已屬難得可貴了,雖然不喜歡但我又不想自己coding,所以還是用之前的3.5版本。

這裡寫圖片描述

2.Minecraft Forge/Mod

Minecraft Forge is the common open source API allowing a broad range of mods to work cooperatively together, it allows many mods to be created without them editing the main Minecraft code.

並不深入的理解,Forge就是Minecraft主程式的一個patch,給版本打上補丁之後,launcher啟動該version時會匯入外部的mod程式碼,在不更改主程式的同時增加了程式的可擴充套件性,對於使用者而言,對某個version安裝Forge後會增加一個xxx-forge-yyy版本資料夾,通過啟動器啟動該帶forge的版本就可以引入mods。

Version

在通過launcher更新相應version的遊戲後,在.minecraft資料夾下會生成純淨的檔案目錄,以版本1.8.9為例,登入forge下載頁面找到1.8.9的下載列表,點選下載1.8.9的installer-win,下載完成後開啟installer。

installer

選擇install client,路徑選至.minecraft資料夾,然後OK,installer會自動配置forge到指定版本(觀察貌似是通過連結library實現forge程式碼匯入的效果),並生成帶forge的指定版本資料夾,至此forge安裝完成。

Forge是mods的載入介面,因此需要在.minecraft資料夾下新建mods資料夾,並在mods資料夾建立以遊戲版本命名的子資料夾,該子資料夾即為mod jar包的存放位置。

mods

mods version

mod files

至此Minecraft的game files,forge和mods就都配置完成了,可以通過launcher啟動對應版本進行遊戲玩耍了。

game

Minecraft Server

如官網介紹,啟動伺服器其實相當簡單,首先下載official server jar包至特定資料夾

Server

在cmd中進入指定資料夾並執行以下命令(因JAVA的跨平臺型以下命令在各平臺通用)

java -Xmx1024M -Xms512M -jar minecraft_server.1.8.9.jar nogui

提示需要同意EULA協議

EULA

更改eula.txt中eula=True

eula

在次執行JAVA命令,回顯成功

Success

此時server資料夾目錄如下,其中world為遊戲backup,properties檔案用來定義server相關屬性。

server-port=25565 #定義伺服器埠
max-players=20 #定義最大線上人數
motd=A Minecraft Server #定義伺服器名字
online-mode=false #線上驗證功能,定義false後非官方launcher才能接入伺服器,該介面為眾多自定義客戶端提供了存活空間。

Server

啟動遊戲進入multiplayer模式,add server

add server

這樣就進入了server的世界裡,應該注意此時的server是不支援forge mod的,關於forge server首先要明確的是並不是所有的mod都需要server的支援,根據forge mod的原理可以嘗試性將mod分為兩類:assistant和extended。assistant mod只起外圍輔助的作用並不改變core的資料結構和行為機制,因此僅客戶端載入即可,例如OptiFine,SmartMoving等;而extended mod會擴充套件core的資料和行為,直觀的來看會增加相應的地圖,物品以及物種,因此需要server的安裝支援,否則客戶端的類mod會失效(無法執行),例如twilightforest,InstantBlocks等。

構建forge server的方法也非常簡單,畢竟forge的開發人員為我們準備傻瓜式的win程式用來一鍵patch。

1.install forge server from scatch

新建一個空資料夾,並在forge installer裡指定,點選OK。

Forge

installer自動下載server,libraries以及forge並配置。

installing
completed

server檔案目錄

forge

開啟cmd執行命令

java -Xmx1024M -Xms512M -jar forge-1.8.9-11.15.1.1902-1.8.9-universal.jar nogui

生成新的目錄結構,包括mods,仍然需要手動agree EULA協議。

new

設定eula=true之後再次執行命令,生成完整的目錄結構。

completed

其中mods資料夾存放extended mods,world資料夾為server backup。

Special:如果已經有完整目錄結構的official server,那麼直接在installer裡指定server目錄,忽略已有檔案的提示,installer會繼續下載所需的libraries和installed forge。

2.kcauldron

FREE (AS IN “FREE SPEECH”) FORGE AND BUKKIT COMPATIBLE MINECRAFT SERVER
KCauldron is minecraft server designed for large public servers that can handle huge amount of players. It supports Forge for in-game modifications and Bukkit for plugins. Combinations of these two lead to awesome result.

除了forge server還有支援外掛的server產品(bukkit, 目前已經式微),然後更有將二者融合起來的combination,確實對於大型的遊戲服武器,除了遊戲處理服務之外,還需要大量的外圍服務程式,例如身份驗證,資訊推送等,因此支援外掛擴充套件的server極大的方便我們的構建過程,當然如果不怕麻煩也可以自己coding,就像官方的realms系統。

在頁面上下載對應release的libraries zip包和cauldron jar包,然後解壓zip,檔案目錄如下

cauldron

執行命令

java -Xmx1G -jar cauldron-1.7.10-1.1388.1.0-server.jar

server啟動完成後目錄結構如下

server

其中plugins資料夾存放外掛,mods資料夾存放模組。

相關推薦

MinecraftServer+client構建筆記

Minecraft是一款自由度極高的沙盒遊戲,基於JAVA開發,因此遊戲需要JAVA執行環境(JRE),遊戲的世界觀就是everything is block,我們在遊戲裡所做的一切就是通過block認識世界然後改造世界,比如你會發現在不用mod的情況下花費幾個

轉:不安裝oracleServer/Client,使用plsql連線oracle

通常企業開發時,資料庫是不會在我們本地安裝的(廢話),所以使用plsql時,沒必要的話,我們儘量不去安裝oracle,太大了;     接下來說一下本人plsql,不安裝oracle的使用步驟;     1.個人本地環境     OS:win10     未安裝ora

工具類Linux筆記之終端日誌記錄工具script

工具類 article 空間 post 令行 有時 可能 關於 edit 在學習Linux時,有時候終端的打印消息對於我們很重要,可是終端顯示也是有一定的緩沖空間的。當信息打印許多時,前面的信息就會被覆蓋掉。所以這裏網上搜索了一下這方面的介紹。現總結例如以下:

數據通信基礎物理層學習筆記

-m 進制 app func 物理 方便 控制 ews 失真 傳輸數據系統 系統組成 收發器: ? 連接發送端的收發器實現將數據轉換成信號的過程 ? 連接接收端的收發器實現將信號還原成數據的過程 信道:信號傳播通道

Deep Learning深度學習學習筆記整理系列三

學習能力 架構 -s 解釋 區別 初始化 filter 大牛 ted Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明

Deep Learning深度學習學習筆記整理系列四

輸入 刪除 encoder 添加 http 標簽 聯系 稀疏 初級 Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也

Deep Learning深度學習學習筆記整理系列七

試圖 能夠 多層 深度學習 註意 理解 pap http 相關 Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也

o'Reill的SVG精髓第二版學習筆記——第四章

使用 還需要 第四章 會有 屬性 輪廓 4.4 www. 進行 第四章:基本形狀 4.1線段 SVG可以使用<line>元素畫出一條直線段。使用時只需要指定線段起止點的x和y坐標即可。指定坐標時可以不帶單位,此時會使用用戶坐標,也可以帶上單位,如em、in等。

《動手學深度學習李沐筆記1

break pre square scatter mage sgd 筆記 init .com 實現一個簡單的線性回歸(mxnet) from mxnet import ndarray as nd from mxnet import autograd import matp

操作主機介紹升級版---學習筆記

操作主機介紹在Window NT 4.0的域環境下,域控制器分為兩類PDC和BDC只有PDC能修改數據庫的內容,而BDC只有讀取數據庫的內容,這種結構被稱作單主復制。自從Windows2000 Server後所有的域控制器都可以自主的 修改AD數據庫的內容,這種結構被稱為多主復制。但是某些歌呢更改不適合使用多

spring (4.0.2)——尚矽谷學習筆記1

aspect 什麽 企業應用 周期 持久層 非侵入 mvc 註入 JD 1、Spring是什麽?   ①Spring 是一個開源框架;   ②Spring 為簡化企業級應用開發而生。使用Spring可以使簡單的JavaBean實現以前只有EJB才能實現的功能。   ③Spr

數據結構java版學習筆記序章

簡單 size com bsp 一個 隊列 我們 程序 http 程序=數據結構+算法 序章做一個簡單的思維導圖,方便理解數據結構這門課的大綱,接下來我們將是按照線性表,棧,隊列,串,樹和圖的順序依次往下學。 數據結構(java版)學習筆記(序章)

HTTP/2 服務器推送Server Push教程HTTP/2 協議的主要目的是提高網頁性能,配置Nginx和Apache

tcp tac 面板 參考 寫入 修改 現實 多個 後端 HTTP/2 協議的主要目的是提高網頁性能。 頭信息(header)原來是直接傳輸文本,現在是壓縮後傳輸。原來是同一個 TCP 連接裏面,上一個回應(response)發送完了,服務器才能發送下一個,現在可以多個回

zabbix部署server

ima use mat ini rec rac 說明 virt col Linux下常用的系統監控軟件有Nagios、Cacti、Zabbix、Monit等,這些開源的軟件,可以幫助我們更好的管理機器,在第一時間內發現,並警告系統維護人員。 今天開始研究下Zabbix,使用

監控服務zabbix部署server

部署 能夠 時也 d3d php-fpm chang ews ace lai zabbix介紹zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管

二.Pyhon_scrapy終端scrapy shell學習筆記

等等 print ins ide 信息 unix xtra rec .net Scrapy shell Scrapy shell是一個交互式shell,您可以非常快速地嘗試調試您的抓取代碼,而無需運行蜘蛛。它用於測試數據提取代碼,但您實際上可以使用它來測試任何類型的代

Apache Shiro安全許可權框架學習筆記

簡介: Apache Shiro 是 Java 的一個安全(許可權)框架。• Shiro 可以非常容易的開發出足夠好的應用,其不僅可以用在JavaSE 環境,也可以用在 JavaEE 環境。• Shiro 可以完成:認證、授權、加密、會話管理、與Web 整合、快取等。• 下載:http://shiro.ap

OSPF網路設計解決方案第二版學習筆記

VLSM和CIDR VLSM是通過將網路劃分為多個子網提供更大的靈活性。 ------------ 設計VLSM的使用幫助指導方針 1、最佳的彙總應該鄰近的塊地址之間 2、如果小的子網被聚合,則路由選擇資訊可以彙總 3、將VLSM子網聚合起來以便路由選擇資訊統一 4、通過將一個子網進一步劃分子網

誰說菜鳥不會資料分析入門篇----- 學習筆記6資料分析報告

1、資料分析報告:三大作用四項基本原則 定義 是根據資料分析原理和方法,運用資料來反映、研究和分析某項事物的現狀、問題、原因、本質和規律,並得出結論,提出解決辦法的一種分析應用文體。 這種文體是決策者認識事物、瞭解事物、

誰說菜鳥不會資料分析入門篇----- 學習筆記5資料展現:圖表

1、圖表作用:表達形象化、突出重點、體現專業化 2、圖示型別: 3、通過關係選擇圖表 4、圖表製作5步法 5、圖表:圖所不能說的話 突出單元格顯示:絕對值 專案選取:相對值 資料條:量綱不同 圖示集:企業運營指標發展態勢監控 迷你圖