Discovering-Minecraft

几个版本的原版客户端运行日志分析

为什么要看懂日志

在解决Minecraft运行故障时,除崩溃报告外,运行日志是另一个分析Minecraft故障原因的有效途径。通过运行日志,我们可以得出故障发生的时机从而初步判断可能的故障原因。有时,日志中的报错能直接告诉我们故障的准确原因。

在哪里找到日志

通常,日志文件被储存在游戏目录下的logs文件夹中,最近一次运行日志为latest.log,更早的日志可在名称类似于2022-12-17-7.log.gz的压缩包中找到。

如果游戏在本体启动前就发生了致命错误,那么此次运行很可能不会产生任何日志文件,而且有些严重的报错并不会出现在日志中文件中,但这两种情况下一些关键运行输出仍可在控制台输出和启动器中显示的日志中被找到。此时,我们应格外注意日志文件夹中的日志中显示的崩溃时机和修改时间与当前的运行是否匹配,因为不匹配的运行日志会对故障检修造成极大的误导。

怎样看懂日志

随便选其日志中的一行,如下

[14:25:44] [Render thread/INFO]: Backend library: LWJGL version 3.2.2 build 10

可以将这样一行分为以下几个部分

[时间] [线程/日志类型]: 正文

其中,常见的线程有以下几种

常见的日志类型有以下几种:

一般而言,日志中很大的篇幅是可以忽略的,我们只需要关注少量的重点内容:

  1. 日志文件是否真正存在?
  2. 日志是不是空白的?
  3. Minecraft本体类是否能被正常加载?
  4. 本地库加载是否正常?
  5. 资源包是否能被正常加载?
  6. 内置服务端是否能正常启动?
  7. 玩家是否能正常地加入游戏?
  8. 玩家退出游戏的过程是否正常?
  9. 是否出现表明异常的日志类型?
  10. 如果发生了崩溃或卡死,那么它发生前游戏正在做什么?有无报错?(最为重要)

如果添加了Mod,还应尤其关注如下内容:

  1. Mod的类是否加载失败?
  2. 是否检出了Mod兼容性问题?
  3. Mixin注入是否正常?
  4. 如果崩溃或卡死,这发生前是否有Mod报出错误?

当然,如果没有相关的经验,这些建议也许并没有什么实际帮助,下面让我们在具体的情境下分析几个常见的原版Minecraft的运行日志(对安装有Mod的Minecraft的分析在另一节)。

1.12.2

[21:56:40] [Client thread/INFO]: LWJGL Version: 2.9.4
[21:56:43] [Client thread/INFO]: Reloading ResourceManager: Default
[21:56:44] [Sound Library Loader/INFO]: Starting up SoundSystem...
[21:56:45] [Thread-3/INFO]: Initializing LWJGL OpenAL
[21:56:45] [Thread-3/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[21:56:47] [Thread-3/INFO]: OpenAL initialized.
[21:56:47] [Sound Library Loader/INFO]: Sound engine started
[21:56:49] [Client thread/INFO]: Created: 1024x512 textures-atlas
[21:56:52] [Client thread/INFO]: Narrator library for x64 successfully loaded
[21:57:54] [Server thread/INFO]: Starting integrated minecraft server version 1.12.2
[21:57:54] [Server thread/INFO]: Generating keypair
[21:57:55] [Server thread/INFO]: Loaded 488 advancements
[21:57:56] [Server thread/INFO]: Preparing start region for level 0
[21:57:57] [Server thread/INFO]: Preparing spawn area: 7%
[21:57:58] [Server thread/INFO]: Preparing spawn area: 14%
[21:57:59] [Server thread/INFO]: Preparing spawn area: 22%
[21:58:00] [Server thread/INFO]: Preparing spawn area: 29%
[21:58:01] [Server thread/INFO]: Preparing spawn area: 38%
[21:58:02] [Server thread/INFO]: Preparing spawn area: 44%
[21:58:03] [Server thread/INFO]: Preparing spawn area: 52%
[21:58:04] [Server thread/INFO]: Preparing spawn area: 61%
[21:58:05] [Server thread/INFO]: Preparing spawn area: 69%
[21:58:06] [Server thread/INFO]: Preparing spawn area: 80%
[21:58:07] [Server thread/INFO]: Preparing spawn area: 89%
[21:58:11] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 2269ms behind, skipping 45 tick(s)
[21:58:12] [Server thread/INFO]: lovexyn0827[local:E:e164c517] logged in with entity id 1927 at (222.5, 68.0, 259.5)
[21:58:12] [Server thread/INFO]: lovexyn0827加入了游戏
[21:58:17] [Server thread/INFO]: Saving and pausing game...
[21:58:17] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/overworld
[21:58:19] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_nether
[21:58:19] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_end
[21:58:31] [Server thread/INFO]: Stopping server
[21:58:31] [Server thread/INFO]: Saving players
[21:58:31] [Server thread/INFO]: lovexyn0827 lost connection: 连接中止
[21:58:31] [Server thread/INFO]: lovexyn0827退出了游戏
[21:58:32] [Server thread/INFO]: Stopping singleplayer server as player logged out
[21:58:32] [Server thread/INFO]: Saving worlds
[21:58:32] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/overworld
[21:58:32] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_nether
[21:58:32] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_end
[21:58:33] [Client thread/INFO]: Stopping!
[21:58:33] [Client thread/INFO]: SoundSystem shutting down...
[21:58:34] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com

下面开始具体分析。

[21:56:40] [Client thread/INFO]: LWJGL Version: 2.9.4

开始准备渲染系统和输入设备。这是游戏启动过程中的一大鬼门关,很多游戏崩溃就发生在这里,如LWJGL本地库链接异常,发现不支持的显卡和一些难以解释的JVM崩溃。

[21:56:43] [Client thread/INFO]: Reloading ResourceManager: Default
[21:56:44] [Sound Library Loader/INFO]: Starting up SoundSystem...
[21:56:45] [Thread-3/INFO]: Initializing LWJGL OpenAL
[21:56:45] [Thread-3/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[21:56:47] [Thread-3/INFO]: OpenAL initialized.
[21:56:47] [Sound Library Loader/INFO]: Sound engine started

开始加载资源包,顺便初始化一下声音系统(OpenAL)。

[21:56:49] [Client thread/INFO]: Created: 1024x512 textures-atlas

继续加载资源包,这次是加载贴图。

[21:56:52] [Client thread/INFO]: Narrator library for x64 successfully loaded

复述功能初始化完成

[21:57:54] [Server thread/INFO]: Starting integrated minecraft server version 1.12.2
[21:57:54] [Server thread/INFO]: Generating keypair
[21:57:55] [Server thread/INFO]: Loaded 488 advancements
[21:57:56] [Server thread/INFO]: Preparing start region for level 0
[21:57:57] [Server thread/INFO]: Preparing spawn area: 7%
[21:57:58] [Server thread/INFO]: Preparing spawn area: 14%
[21:57:59] [Server thread/INFO]: Preparing spawn area: 22%
[21:58:00] [Server thread/INFO]: Preparing spawn area: 29%
[21:58:01] [Server thread/INFO]: Preparing spawn area: 38%
[21:58:02] [Server thread/INFO]: Preparing spawn area: 44%
[21:58:03] [Server thread/INFO]: Preparing spawn area: 52%
[21:58:04] [Server thread/INFO]: Preparing spawn area: 61%
[21:58:05] [Server thread/INFO]: Preparing spawn area: 69%
[21:58:06] [Server thread/INFO]: Preparing spawn area: 80%
[21:58:07] [Server thread/INFO]: Preparing spawn area: 89%

内置服务端的启动,日志中体现出的是启动开始、生成通讯加密密钥、加载成就和生成出生点区块四个过程。

[21:58:11] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 2269ms behind, skipping 45 tick(s)

这是服务端卡顿的标志,倒数第二句为卡顿时长。

[21:58:12] [Server thread/INFO]: lovexyn0827[local:E:e164c517] logged in with entity id 1927 at (222.5, 68.0, 259.5)

客户端成功地连接到了内置服务端。

[21:58:12] [Server thread/INFO]: lovexyn0827加入了游戏

玩家加入游戏。这段时间前后如果因为某些原因导致连接断开,那么客户端可能会卡在加入世界的界面下。

[21:58:17] [Server thread/INFO]: Saving and pausing game...
[21:58:17] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/overworld
[21:58:19] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_nether
[21:58:19] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_end

暂停时内置服务端会进行自动保存。

[21:58:31] [Server thread/INFO]: Stopping server
[21:58:31] [Server thread/INFO]: Saving players
[21:58:31] [Server thread/INFO]: lovexyn0827 lost connection: 连接中止
[21:58:31] [Server thread/INFO]: lovexyn0827退出了游戏
[21:58:32] [Server thread/INFO]: Stopping singleplayer server as player logged out
[21:58:32] [Server thread/INFO]: Saving worlds
[21:58:32] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/overworld
[21:58:32] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_nether
[21:58:32] [Server thread/INFO]: Saving chunks for level '新的世界_1.12'/the_end

玩家退出时关闭内置服务端并保存世界。如果服务端因为某些原因被卡在某一游戏刻,那么当那一游戏刻结束后(有时可能需要数分钟)这几条日志才会被输出,服务端才会开始关闭,期间游戏会被卡在保存世界画面中。

[21:58:33] [Client thread/INFO]: Stopping!
[21:58:33] [Client thread/INFO]: SoundSystem shutting down...
[21:58:34] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com

客户端关闭。

1.16.4

[14:25:43] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[14:25:44] [Render thread/ERROR]: Failed to verify authentication
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:125) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilSocialInteractionsService.checkPrivileges(YggdrasilSocialInteractionsService.java:94) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilSocialInteractionsService.<init>(YggdrasilSocialInteractionsService.java:40) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.createSocialInteractionsService(YggdrasilAuthenticationService.java:152) ~[authlib-2.1.28.jar:?]
    at djz.a(SourceFile:625) [1.16.4%20Pure.jar:?]
    at djz.<init>(SourceFile:409) [1.16.4%20Pure.jar:?]
    at net.minecraft.client.main.Main.main(SourceFile:177) [1.16.4%20Pure.jar:?]
Caused by: java.net.UnknownHostException: api.minecraftservices.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[?:1.8.0_221]
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[?:1.8.0_221]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_221]
    at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_221]
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666) ~[?:1.8.0_221]
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175) ~[?:1.8.0_221]
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[?:1.8.0_221]
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1205) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268) ~[?:1.8.0_221]
    at com.mojang.authlib.HttpAuthenticationService.performGetRequest(HttpAuthenticationService.java:140) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:104) ~[authlib-2.1.28.jar:?]
    ... 6 more
[14:25:44] [Render thread/INFO]: Setting user: 用户名
[14:25:44] [Render thread/INFO]: Backend library: LWJGL version 3.2.2 build 10
[14:25:46] [Render thread/INFO]: Narrator library for x64 successfully loaded
[14:25:46] [Render thread/INFO]: Reloading ResourceManager: Default
[14:25:57] [Render thread/INFO]: OpenAL initialized.
[14:25:57] [Render thread/INFO]: Sound engine started
[14:25:57] [Render thread/INFO]: Created: 1024x1024x4 minecraft:textures/atlas/blocks.png-atlas
[14:25:57] [Render thread/INFO]: Created: 256x128x4 minecraft:textures/atlas/signs.png-atlas
[14:25:57] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/banner_patterns.png-atlas
[14:25:57] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/shield_patterns.png-atlas
[14:25:57] [Render thread/INFO]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas
[14:25:57] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas
[14:25:57] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas
[14:25:59] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas
[14:25:59] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas
[14:25:59] [Render thread/INFO]: Created: 256x128x0 minecraft:textures/atlas/mob_effects.png-atlas
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[14:26:25] [Render thread/INFO]: Reloading ResourceManager: Default
[14:26:27] [Render thread/INFO]: Loaded 7 recipes
[14:26:28] [Render thread/INFO]: Loaded 927 advancements
[14:26:30] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[14:26:31] [Server thread/INFO]: Starting integrated minecraft server version 1.16.4
[14:26:31] [Server thread/INFO]: Generating keypair
[14:26:33] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:38] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:38] [Render thread/INFO]: Preparing spawn area: 83%
[14:26:39] [Render thread/INFO]: Time elapsed: 6431 ms
[14:26:40] [Server thread/INFO]: Changing view distance to 11, from 10
[14:26:42] [Server thread/INFO]: 用户名[local:E:7418ae32] logged in with entity id 11 at (-226.72908945804855, 40.651285253780195, -131.3296786500503)
[14:26:42] [Server thread/INFO]: 用户名 joined the game
[14:26:43] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2246ms or 44 ticks behind
[14:26:43] [Server thread/INFO]: Saving and pausing game...
[14:26:44] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:overworld
[14:26:44] [Worker-Main-10/WARN]: Couldn't look up profile properties for com.mojang.authlib.GameProfile@361197db[id=5627dd98-e6be-3c21-b8a8-e92344183641,name=用户名,properties={},legacy=false]
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:125) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:99) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillGameProfile(YggdrasilMinecraftSessionService.java:186) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:61) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:58) ~[authlib-2.1.28.jar:?]
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[guava-21.0.jar:?]
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5153) ~[guava-21.0.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillProfileProperties(YggdrasilMinecraftSessionService.java:176) ~[authlib-2.1.28.jar:?]
    at djz.K(SourceFile:2405) ~[1.16.4%20Pure.jar:?]
    at eks.a(SourceFile:98) ~[1.16.4%20Pure.jar:?]
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) [?:1.8.0_221]
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_221]
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_221]
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_221]
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_221]
Caused by: java.net.UnknownHostException: sessionserver.mojang.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[?:1.8.0_221]
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[?:1.8.0_221]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_221]
    at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_221]
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666) ~[?:1.8.0_221]
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175) ~[?:1.8.0_221]
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[?:1.8.0_221]
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1205) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570) ~[?:1.8.0_221]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) ~[?:1.8.0_221]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268) ~[?:1.8.0_221]
    at com.mojang.authlib.HttpAuthenticationService.performGetRequest(HttpAuthenticationService.java:140) ~[authlib-2.1.28.jar:?]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:104) ~[authlib-2.1.28.jar:?]
    ... 20 more
[14:26:44] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_nether
[14:26:45] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_end
[14:26:48] [Render thread/INFO]: Loaded 404 advancements
[14:27:11] [Render thread/WARN]: Received passengers for unknown entity
[14:27:11] [Render thread/WARN]: Received passengers for unknown entity
[14:27:33] [Sound engine/WARN]: Maximum sound pool size 247 reached
[14:27:33] [Render thread/WARN]: Failed to create new sound handle
[14:27:45] [Server thread/INFO]: 用户名 lost connection: Disconnected
[14:27:45] [Server thread/INFO]: 用户名 left the game
[14:27:45] [Server thread/INFO]: Stopping singleplayer server as player logged out
[14:27:45] [Server thread/INFO]: Stopping server
[14:27:45] [Server thread/INFO]: Saving players
[14:27:45] [Server thread/INFO]: Saving worlds
[14:27:45] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:overworld
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (Entity): All chunks are saved
[14:27:46] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_nether
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[14:27:46] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_end
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (Entity): All chunks are saved
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[14:27:48] [Render thread/INFO]: Stopping!

接下来我们来逐段分析整个日志

[14:25:43] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[14:25:44] [Render thread/ERROR]: Failed to verify authentication
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
略略略...

由于没有网络连接,正版验证报错,联网后不会出现。能走到这一步,Java版本过低的问题就基本上可以被排除了。

[14:25:44] [Render thread/INFO]: Setting user: 用户名

正版验证过程结束的标志。

[14:25:44] [Render thread/INFO]: Backend library: LWJGL version 3.2.2 build 10

开始准备渲染系统和输入设备。这是游戏启动过程中的一大鬼门关,很多游戏崩溃就发生在这里,如LWJGL本地库链接异常,发现不支持的显卡和一些难以解释的JVM崩溃。

[14:25:46] [Render thread/INFO]: Narrator library for x64 successfully loaded

复述功能初始化完成。这条日志具体输出位置出现的很隐蔽,应该是打开进度条界面时(MinecraftClient:855, openScreen())NarratorManager类被加载进而引发了复述功能初始化。

[14:25:46] [Render thread/INFO]: Reloading ResourceManager: Default

加载资源包,此时开始出现启动画面。

[14:25:57] [Render thread/INFO]: OpenAL initialized.
[14:25:57] [Render thread/INFO]: Sound engine started

声音引擎初始化,属于资源包加载的一部分。

[14:25:57] [Render thread/INFO]: Created: 1024x1024x4 minecraft:textures/atlas/blocks.png-atlas
[14:25:57] [Render thread/INFO]: Created: 256x128x4 minecraft:textures/atlas/signs.png-atlas
[14:25:57] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/banner_patterns.png-atlas
[14:25:57] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/shield_patterns.png-atlas
[14:25:57] [Render thread/INFO]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas
[14:25:57] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas
[14:25:57] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas
[14:25:59] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas
[14:25:59] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas
[14:25:59] [Render thread/INFO]: Created: 256x128x0 minecraft:textures/atlas/mob_effects.png-atlas

创建可用于渲染过程的贴图,还是资源包加载的一部分。至此,标题画面出现。接下来是加载世界的过程。

[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[14:26:25] [Render thread/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]

此处加载了服务端相关类。日志表明指令的定义存在一些问题,应该是一个无害的原版Bug,不必过多在意。

[14:26:25] [Render thread/INFO]: Reloading ResourceManager: Default
[14:26:27] [Render thread/INFO]: Loaded 7 recipes
[14:26:28] [Render thread/INFO]: Loaded 927 advancements

加载适用于服务端的数据包。

[14:26:30] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'

准备正版验证相关。

[14:26:31] [Server thread/INFO]: Starting integrated minecraft server version 1.16.4

内置服务端构建完成,正式开始服务端线程上的启动,确切来说是MinecraftServer.runServer()方法开始执行。

[14:26:31] [Server thread/INFO]: Generating keypair

生成通讯加密密钥。

[14:26:33] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:37] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:38] [Render thread/INFO]: Preparing spawn area: 0%
[14:26:38] [Render thread/INFO]: Preparing spawn area: 83%
[14:26:39] [Render thread/INFO]: Time elapsed: 6431 ms

加载或生成出生点区块(MinecraftServer.prepareStartRegion()),这一阶段的完成可标志内置服务端的启动基本完成。此时开始显示世界生成动画。

[14:26:40] [Server thread/INFO]: Changing view distance to 11, from 10

按照配置更新渲染距离,此时内置服务端的第一游戏刻的运算已经完成。

[14:26:42] [Server thread/INFO]: 用户名[local:E:7418ae32] logged in with entity id 11 at (-226.72908945804855, 40.651285253780195, -131.3296786500503)

表明客户端与内置服务端成功取得联系,之后服务端会下发配方书、计分版、指令列表等一系列数据。

[14:26:42] [Server thread/INFO]: 用户名 joined the game

玩家正式加入游戏。这段时间前后如果因为某些原因导致连接断开,那么客户端可能会卡在加入世界的界面下。

[14:26:43] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2246ms or 44 ticks behind
[14:27:26] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 3514ms or 70 ticks behind

服务端卡顿的标志,后面的数字为卡顿发生的游戏刻所消耗的时间。

[14:26:44] [Worker-Main-10/WARN]: Couldn't look up profile properties for com.mojang.authlib.GameProfile@361197db[id=5627dd98-e6be-3c21-b8a8-e92344183641,name=用户名,properties={},legacy=false]
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:125) ~[authlib-2.1.28.jar:?]
    略略略...

由于没有连接网络,玩家皮肤加载异常,可以忽略。

[14:26:43] [Server thread/INFO]: Saving and pausing game...
[14:26:44] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:overworld
[14:26:44] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_nether
[14:26:45] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_end

暂停游戏时内置服务端会进行一次自动保存。

[14:26:48] [Render thread/INFO]: Loaded 404 advancements

客户端接受到服务端发送过来的成就更新。

[14:27:11] [Render thread/WARN]: Received passengers for unknown entity
[14:27:11] [Render thread/WARN]: Received passengers for unknown entity

客户端常见的无害报错之一,一般而言没什么价值。

[14:27:33] [Sound engine/WARN]: Maximum sound pool size 247 reached
[14:27:33] [Render thread/WARN]: Failed to create new sound handle

由于声音太多导致声音播放失败,通常是一个没有太多价值但是有害的报错,一般而言这一报错会被成千上万次地输出,这会极大地加重卡顿甚至卡死游戏。

[14:27:45] [Server thread/INFO]: 用户名 lost connection: Disconnected
[14:27:45] [Server thread/INFO]: 用户名 left the game
[14:27:45] [Server thread/INFO]: Stopping singleplayer server as player logged out

玩家退出游戏,内置服务端准备关闭。如果服务端因为某些原因被卡在某一游戏刻,那么当那一游戏刻结束后(有时可能需要数分钟)这几条日志才会被输出,服务端才会开始关闭,期间游戏会被卡在保存世界画面中。

[14:27:45] [Server thread/INFO]: Stopping server
[14:27:45] [Server thread/INFO]: Saving players
[14:27:45] [Server thread/INFO]: Saving worlds
[14:27:45] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:overworld
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (Entity): All chunks are saved
[14:27:46] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_nether
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[14:27:46] [Server thread/INFO]: Saving chunks for level 'ServerLevel[珍珠炮研究档(原Entity)]'/minecraft:the_end
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (Entity): All chunks are saved
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[14:27:46] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved

保存世界,关闭内置服务端。

[14:27:48] [Render thread/INFO]: Stopping!

客户端退出。

1.19.3

[05:58:32] [main/INFO]: Building optimized datafixer
[05:58:39] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[05:58:42] [Render thread/INFO]: Setting user: lovexyn0827
[05:58:42] [Render thread/INFO]: Backend library: LWJGL version 3.3.1 build 7
[05:58:48] [Render thread/INFO]: Narrator library for x64 successfully loaded
[05:58:49] [Render thread/INFO]: Reloading ResourceManager: vanilla
[05:58:59] [Render thread/WARN]: Missing sound for event: minecraft:item.goat_horn.play
[05:58:59] [Render thread/WARN]: Missing sound for event: minecraft:entity.goat.screaming.horn_break
[05:58:59] [Render thread/INFO]: OpenAL initialized on device OpenAL Soft on 扬声器 (High Definition Audio 设备)
[05:58:59] [Render thread/INFO]: Sound engine started
[05:58:59] [Render thread/INFO]: Created: 1024x1024x4 minecraft:textures/atlas/blocks.png-atlas
[05:58:59] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/signs.png-atlas
[05:58:59] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/shield_patterns.png-atlas
[05:58:59] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/banner_patterns.png-atlas
[05:58:59] [Render thread/INFO]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas
[05:58:59] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas
[05:58:59] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas
[05:59:00] [Render thread/WARN]: Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program.
[05:59:01] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/particles.png-atlas
[05:59:01] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas
[05:59:01] [Render thread/INFO]: Created: 256x128x0 minecraft:textures/atlas/mob_effects.png-atlas
[05:59:54] [Render thread/INFO]: Loaded 7 recipes
[05:59:55] [Render thread/INFO]: Loaded 1179 advancements
[06:00:02] [Server thread/INFO]: Starting integrated minecraft server version 1.19.3
[06:00:02] [Server thread/INFO]: Generating keypair
[06:00:24] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[06:00:28] [Render thread/INFO]: 准备生成区域中:0%
[06:02:01] [Render thread/INFO]: 准备生成区域中:0%
[06:02:01] [Render thread/INFO]: 准备生成区域中:0%
[06:02:02] [Render thread/INFO]: 准备生成区域中:25%
[06:02:02] [Render thread/INFO]: 准备生成区域中:25%
[06:02:09] [Render thread/INFO]: 准备生成区域中:31%
[06:02:09] [Render thread/INFO]: 准备生成区域中:42%
[06:02:10] [Render thread/INFO]: 准备生成区域中:79%
[06:02:10] [Render thread/INFO]: 准备生成区域中:79%
[06:02:12] [Render thread/INFO]: 准备生成区域中:84%
[06:02:12] [Render thread/INFO]: 准备生成区域中:84%
[06:02:12] [Render thread/INFO]: 准备生成区域中:84%
[06:02:13] [Render thread/INFO]: 准备生成区域中:91%
[06:02:13] [Render thread/INFO]: 准备生成区域中:91%
[06:02:17] [Render thread/INFO]: Time elapsed: 113422 ms
[06:02:18] [Server thread/INFO]: Changing view distance to 12, from 10
[06:02:18] [Server thread/INFO]: Changing simulation distance to 12, from 0
[06:02:20] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2210ms or 44 ticks behind
[06:02:28] [Server thread/INFO]: lovexyn0827[local:E:a3e558d5] logged in with entity id 289 at (30.5, 66.0, 17.5)
[06:02:29] [Server thread/INFO]: lovexyn0827加入了游戏
[06:02:36] [Render thread/INFO]: Loaded 0 advancements
[06:02:54] [Server thread/INFO]: Saving and pausing game...
[06:02:54] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:overworld
[06:02:56] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_end
[06:02:56] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_nether
[06:06:36] [Worker-Bootstrap-1/INFO]: 4445 Datafixer optimizations took 483878 milliseconds
[06:10:53] [Server thread/INFO]: lovexyn0827 lost connection: 连接中断
[06:10:53] [Server thread/INFO]: lovexyn0827退出了游戏
[06:10:53] [Server thread/INFO]: Stopping singleplayer server as player logged out
[06:10:53] [Server thread/INFO]: Stopping server
[06:10:54] [Server thread/INFO]: Saving players
[06:10:54] [Server thread/INFO]: Saving worlds
[06:10:59] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:overworld
[06:11:08] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_end
[06:11:08] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_nether
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage (新的世界 (1)): All chunks are saved
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
[06:11:21] [Render thread/INFO]: Stopping!

具体分析如下

[05:58:32] [main/INFO]: Building optimized datafixer

优化DataFixer,与加载旧版本存档有关。

[05:58:39] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[05:58:42] [Render thread/INFO]: Setting user: lovexyn0827

正版验证

[05:58:42] [Render thread/INFO]: Backend library: LWJGL version 3.3.1 build 7

初始化LWJGL本地库,包括OpenGL(渲染)、OpenAL(声音)、GLFW(输入和窗口)等。此处容易发生崩溃。

[05:58:48] [Render thread/INFO]: Narrator library for x64 successfully loaded

复述功能初始化完成。

[05:58:49] [Render thread/INFO]: Reloading ResourceManager: vanilla
[05:58:59] [Render thread/WARN]: Missing sound for event: minecraft:item.goat_horn.play
[05:58:59] [Render thread/WARN]: Missing sound for event: minecraft:entity.goat.screaming.horn_break
[05:58:59] [Render thread/INFO]: OpenAL initialized on device OpenAL Soft on 扬声器 (High Definition Audio 设备)
[05:58:59] [Render thread/INFO]: Sound engine started

加载资源包,顺便初始化声音系统。此处开始出现启动进度条界面。

[05:58:59] [Render thread/INFO]: Created: 1024x1024x4 minecraft:textures/atlas/blocks.png-atlas
[05:58:59] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/signs.png-atlas
[05:58:59] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/shield_patterns.png-atlas
[05:58:59] [Render thread/INFO]: Created: 1024x512x4 minecraft:textures/atlas/banner_patterns.png-atlas
[05:58:59] [Render thread/INFO]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas
[05:58:59] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas
[05:58:59] [Render thread/INFO]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas
[05:59:00] [Render thread/WARN]: Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program.
[05:59:01] [Render thread/INFO]: Created: 512x256x0 minecraft:textures/atlas/particles.png-atlas
[05:59:01] [Render thread/INFO]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas
[05:59:01] [Render thread/INFO]: Created: 256x128x0 minecraft:textures/atlas/mob_effects.png-atlas

加载贴图,还是属于加载资源包的一部分,这一步完成后出现主菜单。

[05:59:54] [Render thread/INFO]: Loaded 7 recipes
[05:59:55] [Render thread/INFO]: Loaded 1179 advancements

点击打开存档按钮后加载合成配方和成就,是数据包加载的两个部分(当然不止两个)。此处实际上在构造内置服务端,还有很多任务,但在日志中没有得到体现。

[06:00:02] [Server thread/INFO]: Starting integrated minecraft server version 1.19.3
[06:00:02] [Server thread/INFO]: Generating keypair

在服务端线程上启动内置服务端并声称用于通讯加密的密钥。

[06:00:24] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[06:00:28] [Render thread/INFO]: 准备生成区域中:0%
[06:02:01] [Render thread/INFO]: 准备生成区域中:0%
[06:02:01] [Render thread/INFO]: 准备生成区域中:0%
[06:02:02] [Render thread/INFO]: 准备生成区域中:25%
[06:02:02] [Render thread/INFO]: 准备生成区域中:25%
[06:02:09] [Render thread/INFO]: 准备生成区域中:31%
[06:02:09] [Render thread/INFO]: 准备生成区域中:42%
[06:02:10] [Render thread/INFO]: 准备生成区域中:79%
[06:02:10] [Render thread/INFO]: 准备生成区域中:79%
[06:02:12] [Render thread/INFO]: 准备生成区域中:84%
[06:02:12] [Render thread/INFO]: 准备生成区域中:84%
[06:02:12] [Render thread/INFO]: 准备生成区域中:84%
[06:02:13] [Render thread/INFO]: 准备生成区域中:91%
[06:02:13] [Render thread/INFO]: 准备生成区域中:91%
[06:02:17] [Render thread/INFO]: Time elapsed: 113422 ms

生成出生点区块,此时开始显示世界生成动画。这一阶段完成后,内置服务端的启动基本完成。

[06:02:18] [Server thread/INFO]: Changing view distance to 12, from 10
[06:02:18] [Server thread/INFO]: Changing simulation distance to 12, from 0

调整渲染与模拟距离,这时服务端已经完成启动并运行一个游戏刻。

[06:02:20] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2210ms or 44 ticks behind

服务端启动时上来就卡(可能与类加载有关)。

[06:02:28] [Server thread/INFO]: lovexyn0827[local:E:a3e558d5] logged in with entity id 289 at (30.5, 66.0, 17.5)
[06:02:29] [Server thread/INFO]: lovexyn0827加入了游戏

客户端与服务端取得连接,在发送一些初始数据(如配方书、指令列表、记分板等)后玩家加入游戏。此时如果连接因为某些原因断开,玩家可能会卡在加入世界界面。

[06:02:36] [Render thread/INFO]: Loaded 0 advancements

客户端接收到服务端发送的成就信息。

[06:02:54] [Server thread/INFO]: Saving and pausing game...
[06:02:54] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:overworld
[06:02:56] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_end
[06:02:56] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_nether

暂停时的自动保存。

[06:06:36] [Worker-Bootstrap-1/INFO]: 4445 Datafixer optimizations took 483878 milliseconds

DataFixer优化完成(耗时有点长)。

[06:10:53] [Server thread/INFO]: lovexyn0827 lost connection: 连接中断
[06:10:53] [Server thread/INFO]: lovexyn0827退出了游戏
[06:10:53] [Server thread/INFO]: Stopping singleplayer server as player logged out
[06:10:53] [Server thread/INFO]: Stopping server
[06:10:54] [Server thread/INFO]: Saving players
[06:10:54] [Server thread/INFO]: Saving worlds
[06:10:59] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:overworld
[06:11:08] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_end
[06:11:08] [Server thread/INFO]: Saving chunks for level 'ServerLevel[新的世界]'/minecraft:the_nether

玩家退出,内置服务端保存世界并关闭。只有在最后一个游戏刻运算完毕后这一过程才会开始,意味着如果那个游戏刻因为一些原因运算了很长时间,客户端在那些时间里就会被卡在保存世界界面中。

[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage (新的世界 (1)): All chunks are saved
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[06:11:08] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved

世界保存完毕,内置服务端关闭。

[06:11:21] [Render thread/INFO]: Stopping!

退出游戏。