Minecraft(Server+client)构建笔记

来源:互联网 发布:南华模拟交易软件 编辑:程序博客网 时间:2024/04/29 08:29

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客户端命名为Minecraft Launcher,中文一般翻译为启动器,download地址是:
https://minecraft.net/en-us/download/?ref=m

安装完成之后启动界面如下

Minecraft Launcher

输入注册的账户密码进入启动器的主界面,启动器主要用来更新和管理游戏版本(Version)。

Download Demo
BOOT

因为我并没有付费购买游戏,因此只能启动demo进行试玩,而demo仅能体验5 game days(about 1 hour and 50 minutes), 所以接下来我会使用非官方启动器来启动正式版的游戏。

note:按照Minecraft官方策略,玩家需付费购买的是客户端程序,而对应的服务端服务则是免费提供下载,这种策略对该游戏的推广具有非常积极的作用。

Download server

Minecraft Server download page:
https://minecraft.net/en-us/download/?ref=m

从上图也可以获知默认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

Minecraft Forge download page
https://files.minecraftforge.net/

在通过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 download page:
https://minecraft.net/en-us/download/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系统。

KCAULDRON official site:
https://prok.pw/

另外在sourceforges上存在一个所谓unofficial的cauldron项目,下面以1.7.10为例构建cauldron server。
https://sourceforge.net/projects/cauldron-unofficial/files/

在页面上下载对应release的libraries zip包和cauldron jar包,然后解压zip,文件目录如下

cauldron

执行命令

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

server启动完成后目录结构如下

server

其中plugins文件夹存放插件,mods文件夹存放模块。

0 0
原创粉丝点击