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 revision Previous revision
ru:tutorial:side [2022/01/06 22:17]
okeyndell
ru:tutorial:side [2022/02/11 07:57] (current)
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 furnygo