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
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 использует [[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