Skip to content

网络游戏开发 ​

基岩版网络游戏让大量玩家同时在线互动。你可以通过官方 Apollo 框架或第三方服务端(Spigot、Nukkit、Allay)搭建多人服务器,将单机 Mod 升级为网络游戏。

概述 ​

在《我的世界》中国版主页右下方,玩家可以找到网络游戏入口,进入已上线的多人服务器。网络游戏解除了本地联机的人数和地域限制,让玩家随时随地遇到更多伙伴。

你的网络游戏开发选择主要分两类:

  • 官方方案:使用 Apollo SDK 搭建专用服务器集群,功能最完整
  • 第三方方案:使用 Spigot / Nukkit / Allay 等社区服务端,灵活度更高

推荐起步路径

如果你是第一次接触网络游戏开发,建议从 Apollo 简易网络服模板开始。它提供开箱即用的服务器框架,你只需在此基础上添加游戏逻辑。

服务器类型 ​

框架语言特点适用场景
ApolloPython官方框架,全功能支持,内置集群管理和运维正式上线的网络游戏
SpigotJava成熟的 Java 服务端,基岩版客户端通过协议转换接入已有 Java 插件生态的团队
NukkitJava轻量级基岩版协议原生实现小型社区服务器
AllayJava新一代服务端框架,架构更现代追求新技术的开发者

上线要求

在中国版网络游戏大厅上线的服务器,当前仅支持 Apollo 框架接入。第三方框架可用于私有部署或测试。

Apollo 基础 ​

Apollo 是中国版的官方网络游戏开发框架,内置于 MC Studio,集成负载均衡、集群管理、运营指令、多号协作等功能。

核心服务架构 ​

Apollo 采用多进程集群架构,每种进程承担不同职责:

服务说明
Master控制服务器,管理集群调度和协调
Lobby大厅服务器,玩家登录后首先进入
Game游戏服务器,承载实际游戏玩法
Service服务进程,处理数据库、缓存等后端逻辑
Proxy代理服务器,处理网络连接和路由
DB数据库服务,持久化存储玩家数据

架构示例 ​

以一个包含签到、禁言、PvP 匹配功能的网络游戏为例:

玩家登录 → Lobby(签到 / 禁言管理)
    │
    ├─ 点击 PvP → Master 分配 Game 服务器
    │                 │
    │                 └─ Game(PvP 对战逻辑)
    │
    └─ Service(数据持久化、排行榜)

插件系统 ​

Apollo 通过 Python 插件 扩展功能。每个插件是一个独立模块,可以挂载到 Lobby、Game 或 Service 进程上。

python
# 一个最简单的 Game 插件示例
class MyGamePlugin(object):
    def __init__(self):
        pass

    def on_player_join(self, player_id):
        """玩家进入 Game 服务器时触发"""
        print(f"玩家 {player_id} 加入了游戏")

MC Studio 上内置了官方插件库和第三方插件库,覆盖聊天、商城、签到等常用功能。你也可以开发自定义插件,独立更新而不影响核心逻辑。

联机大厅 ​

联机大厅是面向小规模联机场景的另一种方案。它使用远程主机托管游戏,本地玩家加入线上房间进行游戏。

与 Apollo 的区别 ​

维度联机大厅Apollo 网络游戏
玩家规模小规模(通常 2-8 人)大规模(数百人同时在线)
服务器平台托管,无需自建需要申请/管理服务器集群
开发方式与单机 Mod 基本一致需要区分客户端/服务端逻辑
适用类型合作冒险、小游戏MMORPG、大型竞技

联机大厅测试 ​

在 MC Studio 中点击 作品库 → 基岩版组件 → 联机地图,勾选"多人测试"并创建房间。子账号可通过扫码或联机测试分页加入房间。

联机日志

多人测试时,点击房间管理窗口的"服务器日志"按钮,可以同时查看客户端和服务端日志,方便定位问题。

开发流程概览 ​

将单机 Mod 升级为 Apollo 网络游戏的典型流程:

1. 注册与准备 ​

  • 注册开发者账号,申请成为 Apollo 服主
  • 获取测试开发机(小小云)
  • 安装 MC Studio 并熟悉 Apollo 文档

2. 开发 ​

  • 在本地完成 Mod 基础逻辑开发
  • 区分客户端逻辑和服务端逻辑
  • 编写服务器插件(数据持久化、多玩家处理等)
  • 配置部署方案

3. 测试 ​

  • 在开发服务器进行联调测试
  • 使用控制台实时调试 Python 代码
  • 验证多玩家并发、数据库读写、切服等场景

4. 部署上线 ​

  • 提交审核
  • 通过后上线运营
  • 使用 Monitor / Grafana / ELK 进行监控和日志查询

从单机到网络的关键变化 ​

关注点说明
数据持久化本地存档 → 数据库存储(Redis / MySQL)
多玩家处理需要处理并发操作和状态同步
反作弊服务端权威验证更加重要
性能优化关注服务器性能和网络延迟
热更新支持不停服更新函数体代码

运维与监控 ​

Apollo 提供了完整的运维工具链:

功能说明
控制台调试实时执行 Python 代码和原版命令
服务器日志查看和搜索运行日志
热更新不停服更新服务端代码(仅函数体修改)
Monitor自动报警系统
Grafana性能监控面板
ELK生产环境日志查询

资源链接 ​

资源说明
Apollo 详细文档完整的 Apollo SDK API 参考
联机大厅接口联机大厅相关 ModAPI
网络游戏入门教程从零搭建第一个网络游戏
插件开发指南Apollo 插件开发最佳实践

官方支持

官方常态化举办网络服插件开发实战班和插件征集活动,为参与共建的插件开发者提供资金支持、免费测试开发机和专业辅导。