检测到手机访问,点击可直接唤醒 App,体验更流畅。
返回 / 社区 / 经验分享 / 1.20.1 Forge模组开发教程(0) ——端(Side)的理解
经验分享

1.20.1 Forge模组开发教程(0) ——端(Side)的理解

zzv
2026-08-24 16:08:34 · 更新于 2026-09-09 01:29:17 · 46 浏览 · 0 回复
在进行 Minecraft 模组制作时,理解客户端和服务端这两个概念至关重要。关于客户端和服务端的划分,存在许多常见的误解和错误,这些误解和错误可能会导致一些不会导致游戏崩溃的 bug,但会产生一些意想不到且难以预料的后果。

代码路径,对应三类运行逻辑:

专用服务端逻辑即独立的 minecraft_server.jar,拥有完整的权威游戏规则计算能力,负责多人联机下的世界状态判定、实体 AI、方块更新等所有核心玩法,是唯一的权威来源。

单人游戏客户端逻辑单人模式下,游戏逻辑和渲染渲染完全耦合在客户端进程内,没有独立的服务端线程。客户端自己直接运行全部世界计算、生物 AI、红石逻辑,同时负责画面渲染和玩家输入,相当于 “自己算、自己显示”。这套逻辑和专用服务端的逻辑是分开维护的两套代码。

多人游戏客户端逻辑当客户端连接外部服务器时,自身不运行完整游戏规则,只负责采集玩家输入、发送给服务端、接收服务端同步的世界状态、渲染画面。它有独立的网络同步、状态插值、输入处理代码,和单人模式的本地逻辑并不通用。

从开发维护的角度看,新增一个核心玩法特性,需要分别适配:服务端写一遍权威逻辑、单人客户端写一遍本地逻辑、多人客户端写一遍同步与表现逻辑,维护三套代码分支。

12w18a是Java版1.3.1的第4个快照,Mojang 把单人模式彻底重构为「后台启动集成服务端 + 客户端本地连接」的模式,同时加入了 “对局域网开放” 功能。至此,单人、局域网、专用服务器三者运行的是完全同一套游戏逻辑,架构彻底统一,从根源上消除了 “单人与多人行为不一致” 的问题,同时实现多人存档和单人存档可相互迁移。

为什么这么说呢,也就是从这个版本开始,单人游戏相当于你在玩只有你一个玩家的服务器,局域网联机相当于“房主”担当了服务器的角色,这样与专用服务器联机就一样了。

当然客户端内置服务器的游戏不仅仅有我的世界,如泰拉瑞亚、饥荒、星露谷都采用了相同的架构,这也是为什么这些游戏可以进行局域网联机。

此外并非所有可局域网联机的游戏都采用这种架构,一些老游戏如红色警戒采用帧同步 P2P 架构,这种架构没有中心服务端的概念。每个玩家的客户端都运行完整的游戏逻辑,地位完全平等,不存在 “谁是服务端、谁是客户端” 的固定职能划分。网络上只传输玩家的操作指令(比如 “选中单位 A 攻击单位 B”),不会同步整个世界的状态。因为所有客户端的逻辑代码完全一致,相同输入 + 相同初始状态就会得到完全相同的结果,从而保持全局同步,这种机制也叫 Lockstep(锁步)。单人模式只是少了网络输入同步的步骤,不需要额外 “内嵌一个服务端”—— 因为客户端本身就拥有全部逻辑。

评论 (0)

分享帖子
或复制链接

使用微信扫描二维码分享给好友

打赏支持

选择打赏积分
5
积分
10
积分
20
积分
50
积分
100
积分
我的积分余额 -

打赏记录

加载中...

举报内容

确认下载
平台-
消耗积分0
当前积分-

编辑版本