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
如安装成功可看到正确的版本信息。
Minecraft Client
官方将Minecraft客户端命名为Minecraft Launcher,中文一般翻译为启动器,download地址是:
https://minecraft.net/en-us/download/?ref=m
安装完成之后启动界面如下
输入注册的账户密码进入启动器的主界面,启动器主要用来更新和管理游戏版本(Version)。
因为我并没有付费购买游戏,因此只能启动demo进行试玩,而demo仅能体验5 game days(about 1 hour and 50 minutes), 所以接下来我会使用非官方启动器来启动正式版的游戏。
note:按照Minecraft官方策略,玩家需付费购买的是客户端程序,而对应的服务端服务则是免费提供下载,这种策略对该游戏的推广具有非常积极的作用。
Minecraft Server download page:
https://minecraft.net/en-us/download/?ref=m
从上图也可以获知默认game directory位于
C:\Users\EJQIZNG\AppData\Roaming.minecraft
完全纯净的游戏目录结构如下:
其中saves文件夹里存放的是游戏backup;versions文件夹里存放的是以游戏版本命名的文件夹,游戏版本文件夹里存放的一般是一个jar包和一个json文件。
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。
Minecraft Forge download page
https://files.minecraftforge.net/
在通过launcher更新相应version的游戏后,在.minecraft
文件夹下会生成纯净的文件目录,以版本1.8.9为例,登录forge下载页面找到1.8.9的下载列表,点击下载1.8.9的installer-win,下载完成后打开installer。
选择install client,路径选至.minecraft
文件夹,然后OK,installer会自动配置forge到指定版本(观察貌似是通过链接library实现forge代码导入的效果),并生成带forge的指定版本文件夹,至此forge安装完成。
Forge是mods的加载接口,因此需要在.minecraft
文件夹下新建mods
文件夹,并在mods
文件夹建立以游戏版本命名的子文件夹,该子文件夹即为mod jar包的存放位置。
至此Minecraft的game files,forge和mods就都配置完成了,可以通过launcher启动对应版本进行游戏玩耍了。
Minecraft Server
official server download page:
https://minecraft.net/en-us/download/server
如官网介绍,启动服务器其实相当简单,首先下载official server jar包至特定文件夹
在cmd中进入指定文件夹并执行以下命令(因JAVA的跨平台型以下命令在各平台通用)
java -Xmx1024M -Xms512M -jar minecraft_server.1.8.9.jar nogui
提示需要同意EULA协议
更改eula.txt中eula=True
在次执行JAVA命令,回显成功
此时server文件夹目录如下,其中world为游戏backup,properties文件用来定义server相关属性。
server-port=25565 #定义服务器端口
max-players=20 #定义最大在线人数
motd=A Minecraft Server #定义服务器名字
online-mode=false #在线验证功能,定义false后非官方launcher才能接入服务器,该接口为众多自定义客户端提供了存活空间。
启动游戏进入multiplayer模式,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。
installer自动下载server,libraries以及forge并配置。
server文件目录
打开cmd执行命令
java -Xmx1024M -Xms512M -jar forge-1.8.9-11.15.1.1902-1.8.9-universal.jar nogui
生成新的目录结构,包括mods,仍然需要手动agree EULA协议。
设置eula=true
之后再次执行命令,生成完整的目录结构。
其中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,文件目录如下
执行命令
java -Xmx1G -jar cauldron-1.7.10-1.1388.1.0-server.jar
server启动完成后目录结构如下
其中plugins
文件夹存放插件,mods
文件夹存放模块。
- Minecraft(Server+client)构建笔记
- NBUT Minecraft Server Bug
- Minecraft 搭建 Server
- Minecraft 编程 学习笔记
- 【笔记】NodeMcu做为Client与Server通信(未整理)
- NBUT 1552 Minecraft Server Bug
- [noj 1552] Minecraft Server Bug
- Java MyEclipse 构建 webService Server, client 入门案例
- 利用jdk 工具构建webservice 的server 和 client
- Minecraft
- Minecraft
- Thrift Server nodejs Client C# ---学习笔记
- Client/Server
- server&&client
- client server
- 用vfp与sql server构建Client/Server应用程序(远程视图)(1)
- 用vfp与sql server构建Client/Server应用程序(远程视图)(2)
- 类Minecraft方块游戏unity开发笔记1-地形(mesh合并)
- 安卓图标功能
- 在idea使用jetty
- Android使用开源框架实现文件的上传 asyncHttpClient
- 从Java中的length和length()开始探究Java进阶话题
- eclipse/intellij Idea集成jetty
- Minecraft(Server+client)构建笔记
- leecode 解题总结:304. Range Sum Query 2D
- Unity5+Vuforia实现一个AR小Demo (2)
- 关于韩顺平老师java se视频中的学生管理系统
- Duplicate Net Names Wire解决办法
- Leetcode日记(11)
- Linux LVM简明教程
- C语言操作EXCEL文件(读写)
- JavaSE_33th_Collection接口