User Tools

Site Tools


ru:tutorial:side

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
ru:tutorial:side [2022/01/06 22:17] okeyndellru:tutorial:side [2022/02/11 07:57] – грамматика furnygo
Line 1: Line 1:
-====== Модель подключения minecraft ====== +====== Терминология серверной и клиентской сторон ====== 
-Minecraft использует [[https://en.wikipedia.org/wiki/Client-server_model|модель клиент-сервер]], то есть пользователи устанавливают игровой клиент и подключаются к серверу, чтобы играть в игру. Fabric позволяет модам работать либо на клиенте Minecraft, либо на сервере Minecraft, а также на обоих одновременно.+Minecraft использует [[https://en.wikipedia.org/wiki/Client-server_model|модель клиент-сервер]], то есть пользователи устанавливают игровой клиент и подключаются к серверу, чтобы играть. Fabric позволяет модам работать либо на клиенте Minecraft, либо на сервере Minecraft, а также на обоих одновременно.
  
 Понятие клиент/сервер в Minecraft неоднозначно и может относиться как к физической, так и к логической сторонам. Термины клиент/сервер могут использоваться для различения различных дистрибутивов Minecraft (клиент Minecraft и выделенный сервер Minecraft), которые называются **«физическими»** сторонами. Однако клиент Minecraft содержит собственный интегрированный сервер для одиночной игры и сеансов локальной сети, а это означает, что клиент Minecraft также содержит логику сервера. Следовательно, **клиент/сервер также может использоваться для различения частей игровой логики**, которые называются «логическими» сторонами. Понятие клиент/сервер в Minecraft неоднозначно и может относиться как к физической, так и к логической сторонам. Термины клиент/сервер могут использоваться для различения различных дистрибутивов Minecraft (клиент Minecraft и выделенный сервер Minecraft), которые называются **«физическими»** сторонами. Однако клиент Minecraft содержит собственный интегрированный сервер для одиночной игры и сеансов локальной сети, а это означает, что клиент Minecraft также содержит логику сервера. Следовательно, **клиент/сервер также может использоваться для различения частей игровой логики**, которые называются «логическими» сторонами.
Line 14: Line 14:
 В Fabric часто можно увидеть такие аннотации, как ''@Environment(EnvType.CLIENT)''. Это указывает на то, что некоторый код присутствует только в одной среде; в этом примере - клиент. В Fabric часто можно увидеть такие аннотации, как ''@Environment(EnvType.CLIENT)''. Это указывает на то, что некоторый код присутствует только в одной среде; в этом примере - клиент.
  
-В Fabric Fabric.mod.json и конфигурации миксина клиент/сервер относится к среде.+В Fabric fabric.mod.json и конфигурации миксина клиент/сервер относится к среде.
  
 Каждая физическая сторона поставляет классы, используемые ее точкой входа, и классы дата-генераторы с точкой входа «net.minecraft.data.Main». Каждая физическая сторона поставляет классы, используемые ее точкой входа, и классы дата-генераторы с точкой входа «net.minecraft.data.Main».
Line 28: Line 28:
 net.minecraft.block.entity.BlockEntity net.minecraft.block.entity.BlockEntity
 </code> </code>
-Эти реплицированные объекты позволяют клиентам и серверам выполнять некоторую общую игровую логику. Клиент может взаимодействовать с этими объектами, в то время как сервер отвечает за их синхронизацию. Обычно, чтобы отличить объекты на логических клиентах от объектов на логическом сервере, вы обращаетесь к миру объекта и проверяете его поле ''isClient''. Это можно использовать для выполнения авторитетных действий на сервере, таких как порождение сущностей, и для имитации действий на клиенте. Этот метод необходим, чтобы избежать десинхронизации между двумя логическими сторонами.+Эти реплицированные объекты позволяют клиентам и серверам выполнять некоторую общую игровую логику. Клиент может взаимодействовать с этими объектами, в то время как сервер отвечает за их синхронизацию. Обычно, чтобы отличить объекты на логических клиентах от объектов на логическом сервере, вы обращаетесь к миру объекта и проверяете его поле ''isClient''. Это можно использовать для выполнения авторитетных действий на сервере, таких как размещение сущностей, и для имитации действий на клиенте. Этот метод необходим, чтобы избежать десинхронизации между двумя логическими сторонами.
 ===== Подробный обзор со всех сторон ===== ===== Подробный обзор со всех сторон =====
  
Line 38: Line 38:
 Физический клиент может загружать несколько разных миров, каждый в пределах отдельного логического сервера, но только по одному за раз. Физический клиент может загружать несколько разных миров, каждый в пределах отдельного логического сервера, но только по одному за раз.
  
-По сравнению с логическим сервером физического сервера (выделенный сервер), логический сервер физического клиента (интегрированный сервер) может управляться логическим клиентом на физическом клиенте (например, F3+T перезагружает пакеты данных и выключает клиент). также отключает интегрированный сервер). Он также может загружать пакеты ресурсов, связанные с миром, на логическом клиенте на физическом клиенте.+По сравнению с логическим сервером физического сервера (выделенный сервер), логический сервер физического клиента (интегрированный сервер) может управляться логическим клиентом на физическом клиенте (например, F3+T перезагружает пакеты данных, а выключение клиента вместе в этим отключает интегрированный сервер). Он также может загружать пакеты ресурсов, связанные с миром, на логическом клиенте на физическом клиенте.
  
 Весь логический клиентский контент является эксклюзивным для физического клиента, поэтому вы видите множество аннотаций среды для рендеринга, звука и другого логического клиентского кода. Весь логический клиентский контент является эксклюзивным для физического клиента, поэтому вы видите множество аннотаций среды для рендеринга, звука и другого логического клиентского кода.
Line 56: Line 56:
 Некоторые моды нацелены исключительно на физический сервер. Например, Bukkit и его производные (Spigot, Paper, Cauldron, гибриды Xxx-Bukkit) всегда работают на физическом сервере. Некоторые моды нацелены исключительно на физический сервер. Например, Bukkit и его производные (Spigot, Paper, Cauldron, гибриды Xxx-Bukkit) всегда работают на физическом сервере.
  
-1,275 / 5,000 
-Translation results 
 ==== Логический клиент ==== ==== Логический клиент ====
-Логический клиент — это интерфейс к проигрывателю. Рендеринг (LWJGL), пакет ресурсов, обработка ввода игрока и звуки выполняются на логическом клиенте. Его нет на физическом сервере.+Логический клиент — это интерфейс для игрока. Рендеринг (LWJGL), пакет ресурсов, обработка ввода игрока и звуки выполняются на логическом клиенте. Его нет на физическом сервере.
  
 ==== Логический сервер ==== ==== Логический сервер ====
Line 74: Line 72:
 Единственно правильный способ обмена данными между логическими клиентами и серверами путем обмена пакетами. Пакеты (как описано на [[https://wiki.vg]]) отправляются между логическими клиентами и логическими серверами, а не между физическими сторонами. Моды могут добавлять пакеты для передачи пользовательской информации между двумя логическими сторонами. Обмен пакетами происходит в памяти для логического клиента, подключенного к его собственному интегрированному серверу, в противном случае обмен осуществляется по сетевому протоколу. Единственно правильный способ обмена данными между логическими клиентами и серверами путем обмена пакетами. Пакеты (как описано на [[https://wiki.vg]]) отправляются между логическими клиентами и логическими серверами, а не между физическими сторонами. Моды могут добавлять пакеты для передачи пользовательской информации между двумя логическими сторонами. Обмен пакетами происходит в памяти для логического клиента, подключенного к его собственному интегрированному серверу, в противном случае обмен осуществляется по сетевому протоколу.
  
-Логические клиенты отправляют пакеты C2S (клиент-на-сервер) на логический сервер.+Логические клиенты отправляют пакеты C2S (Client-To-Server) на логический сервер.
 Логический сервер отправляет пакеты S2C (Server-To-Client) логическим клиентам. Логический сервер отправляет пакеты S2C (Server-To-Client) логическим клиентам.
 Пакеты отправляются методом записи в сетевом потоке и принимаются вызовом метода чтения в сетевом потоке. Пакеты отправляются методом записи в сетевом потоке и принимаются вызовом метода чтения в сетевом потоке.
  
-Подробнее о работе с сетью см. в [[tutorial:networking|this article]].+Подробнее о работе с сетью описано [[tutorial:networking|здесь]].
  
 ===== Распространенные заблуждения о логических серверах ===== ===== Распространенные заблуждения о логических серверах =====
Line 93: Line 91:
 | ^ Логический клиент ^ Логический сервер ^ | ^ Логический клиент ^ Логический сервер ^
 ^ Физический клиент | Синглтон всегда существует | Существует при локальном сохранении; новый экземпляр для каждой игры | ^ Физический клиент | Синглтон всегда существует | Существует при локальном сохранении; новый экземпляр для каждой игры |
-^ Физический сервер | не существует | Синглтон всегда существует |+^ Физический сервер | Не существует | Синглтон всегда существует |
  
 **В конечном счете, основная путаница возникает из-за того, что логические серверы существуют на физических клиентах. **В конечном счете, основная путаница возникает из-за того, что логические серверы существуют на физических клиентах.
ru/tutorial/side.txt · Last modified: 2022/02/11 07:57 by 127.0.0.1