课程大纲
常见服务端简介
服务端目录结构介绍
启动服务器游戏并进入
开发环境安装与搭建
BukiitApi介绍与基础
编写第一个插件
命令模块
监听器与事件
配置文件编写
Inventory界面与ItemStack
VexView界面编写介绍
BukkitRunnable类运行
数据库持久化存储
初识客户端与服务端
服务端
服务器端上是没有像客户端这样的美术资源的,它们只是在运行一些数据,然后向客户端发送一些数据代码,客户端接到数据后从本地机器调出相应的美术资源(各种动作和地图)并在客户端显示出来,由于服务器端没有美术资源,所以程序大小不会太大,但它本身是一个宠大的数据库,而且要响应成百上千个客户端发来的数据,所以对网络和机器性能要求较高。
客户端
Minecraft图形库使用的是lwjgl
客户端指的是是指与服务器相对应,为客户提供本地服务的程序。
除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,
需要与服务端互相配合运行
游戏客户端是将游戏中的很多资源储存起来的软件。
玩家通过客户端输入指令,客户端翻译成数据发送给服务器,
服务器处理完给出结果,然后再由客户端翻译成图形化表现出来告诉玩家。
可以说,客户端是一个玩家和服务器之间中介。
客户端下载与启动
客户端官方网站:https://mcversions.net/
我们使用一个国产启动器:
https://hmcl.huangyuhui.net/download
客户端文件目录介绍
assets 资源
config forge的配置文件
lib 依赖库
mods 存放需要加载mod
resourcepacks 材质贴图
shaderpacks 光影包
versions 版本存储
options.txt 服务器设置
optionsof.txt高清修复设置
servers.dat 服务器存储
服务端与启动
服务端整合地址:https://www.kancloud.cn/yufengqaq888/minecraft/1648214
创建启动bat来启动jar包
启动参数
java -Xmx%ZuiDaNeiCun% -Xms%ZuiXiaoNeiCun% -XX:+AggressiveOpts -jar %Core%
Xmx最大内存 Xms最小内存 AggressiveOpts加快编译
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
方法:新建一个启动.text文件,
输入如下内容后:
@echo off
:S
set Core=spigot-1.12.2.jar
:;请勿乱动此项,服务器核心设置
for /f "tokens=1,* delims==" %%a in (
'findstr "最大内存=" "设置.txt"'
) do (
set ZuiDaNeiCun=%%b
)
for /f "tokens=1,* delims==" %%a in (
'findstr "最小内存=" "设置.txt"'
) do (
set ZuiXiaoNeiCun=%%b
)
for /f "tokens=1,* delims==" %%a in (
'findstr "在服务器关闭后是否重启=" "设置.txt"'
) do (
set R=%%b
)
title MCBBS@AzureHanChen-%Core%-最大内存%ZuiDaNeiCun%-最小内存%ZuiXiaoNeiCun%
java -Xmx%ZuiDaNeiCun% -Xms%ZuiXiaoNeiCun% -XX:+AggressiveOpts -jar %Core%
if "%R%"=="不重启" goto :C
ping 127.0.0.1 -n %R% >nul
goto :S
:C
echo 退出_%R%
exit
将其扩展名改为.bat。
并将其放置于spigot目录下:
服务端目录
以下文件基于 PaperSpigot 1.12.2
最新版进行讲解
服务端文件详解
server.properties文件详解.
https://minecraft-zh.gamepedia.com/index.php?title=Server.properties&variant=zh
bukkit.yml 文件讲解 .
https://www.mcbbs.net/thread-786082-1-1.html
常规游戏通信同步
状态同步:如魔兽世界 冒险岛 (可能会存在 对方看到的和你看的到不太一样,过一会儿又同步了)
帧同步:英雄联盟 我的世界 穿越火线 (早起魔兽争霸 如果一个玩家掉线,其他玩家都会等待)