Ru/Engine Structure: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (add category)
m (obsolete language category)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|title=Структура Движка|Engine Structure}}
|title= Структура Движка
|en=Engine_Structure
}}


Этот раздел в настоящее время находится в стадии разработки.  Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом.
Этот раздел в настоящее время находится в стадии разработки.  Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом.
Line 12: Line 9:
Движок Source использует ряд отдельных подсистем с очень стандартизированной структурой.  Каждая подсистема определяет абстрактный интерфейс в " .h файле", при типичной реализации и создании глобальной переменной в " .cpp файле".  С помощью макросов или просто добавив её в функцию инициализации клиента/сервера, эта глобальная переменная добавляется в список активных систем.  После подключения, существующие обработчики позаботятся об инициализации, завершении работы и вызове соответствующих функций обновления по мере необходимости.
Движок Source использует ряд отдельных подсистем с очень стандартизированной структурой.  Каждая подсистема определяет абстрактный интерфейс в " .h файле", при типичной реализации и создании глобальной переменной в " .cpp файле".  С помощью макросов или просто добавив её в функцию инициализации клиента/сервера, эта глобальная переменная добавляется в список активных систем.  После подключения, существующие обработчики позаботятся об инициализации, завершении работы и вызове соответствующих функций обновления по мере необходимости.


Существует два разных, используемых, типа обработки системы.  Первый, и более простой, [[IAppSystem]] используется для системы Клиента. Это не означает, что на них также нельзя ссылаться в серверной библиотеке dll, однако между клиентом и сервером нет никакой информации. Он предлагает только обработку, необходимых для инициализации подсистем с возможными ссылками на другие подсистемы, и выключение в нужное время. Файл, материал, и физические системы все вытекают из этого интерфейса.
Существует два разных, используемых, типа обработки системы.  Первый, и более простой, {{L|IAppSystem}} используется для системы Клиента. Это не означает, что на них также нельзя ссылаться в серверной библиотеке dll, однако между клиентом и сервером нет никакой информации. Он предлагает только обработку, необходимых для инициализации подсистем с возможными ссылками на другие подсистемы, и выключение в нужное время. Файл, материал, и физические системы все вытекают из этого интерфейса.


Второй это [[IGameSystem]].  Сравнительно более сложный интерфейс, он предназначен для систем, которые должны иметь функции обновления вызова, и он может быть, при  необходимости, синхронизирован между клиентом и сервером. Помимо стандартных обработок инициализации и завершения работы, он также предлагает обработки, которые вызываются для ряда событий, включая загрузку карты, сохранения / восстановления, пред/пост-рендеринг и функцию обновления с прошедшим временем фрейма.
Второй это {{L|IGameSystem}}.  Сравнительно более сложный интерфейс, он предназначен для систем, которые должны иметь функции обновления вызова, и он может быть, при  необходимости, синхронизирован между клиентом и сервером. Помимо стандартных обработок инициализации и завершения работы, он также предлагает обработки, которые вызываются для ряда событий, включая загрузку карты, сохранения / восстановления, пред/пост-рендеринг и функцию обновления с прошедшим временем фрейма.


[[IAppSystem Derived Systems]]
{{L|IAppSystem Derived Systems}}


[[IGameSystem Derived Systems]]
{{L|IGameSystem Derived Systems}}


== Служебные библиотеки ==
== Служебные библиотеки ==
Line 24: Line 21:
=== Tier0 ===
=== Tier0 ===


*[[Mathlib]]
*{{L|Mathlib}}
*[[VProf]]
*{{L|VProf}}
*VCR режим, отладка и управление памятью
*VCR режим, отладка и управление памятью


=== Tier1 ===
=== Tier1 ===


STL, консольные команды/переменные от Valve и многое другое; смотрите в [[Tier1]].
STL, консольные команды/переменные от Valve и многое другое; смотрите в {{L|Tier1}}.


[[Category:Programming]]
[[Category:Programming]]
[[Category:Engine Structure]]
[[Category:Engine Structure]]
[[Category:Modding:ru]]
{{ACategory|Modding}}
[[Category:Russian]]
[[Category:Russian]]

Latest revision as of 03:46, 22 August 2024

English (en)Русский (ru)Translate (Translate)

Этот раздел в настоящее время находится в стадии разработки. Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом.

Введение

Движок "Source" разработан в необыкновенной, модульной форме. Это было сделано, для обеспечения как легких обновлений, так и засекречивания кода. Это руководство не покажет вам, как получить доступ к этим засекреченным областям, но даст вам представление о том, что представляют собой эти модули, как они взаимодействуют и как их лучше всего расширить.

Подсистема

Движок Source использует ряд отдельных подсистем с очень стандартизированной структурой. Каждая подсистема определяет абстрактный интерфейс в " .h файле", при типичной реализации и создании глобальной переменной в " .cpp файле". С помощью макросов или просто добавив её в функцию инициализации клиента/сервера, эта глобальная переменная добавляется в список активных систем. После подключения, существующие обработчики позаботятся об инициализации, завершении работы и вызове соответствующих функций обновления по мере необходимости.

Существует два разных, используемых, типа обработки системы. Первый, и более простой, IAppSystem(en) используется для системы Клиента. Это не означает, что на них также нельзя ссылаться в серверной библиотеке dll, однако между клиентом и сервером нет никакой информации. Он предлагает только обработку, необходимых для инициализации подсистем с возможными ссылками на другие подсистемы, и выключение в нужное время. Файл, материал, и физические системы все вытекают из этого интерфейса.

Второй это IGameSystem(en). Сравнительно более сложный интерфейс, он предназначен для систем, которые должны иметь функции обновления вызова, и он может быть, при необходимости, синхронизирован между клиентом и сервером. Помимо стандартных обработок инициализации и завершения работы, он также предлагает обработки, которые вызываются для ряда событий, включая загрузку карты, сохранения / восстановления, пред/пост-рендеринг и функцию обновления с прошедшим временем фрейма.

IAppSystem Derived Systems(en)

IGameSystem Derived Systems(en)

Служебные библиотеки

Tier0

  • Mathlib(en)
  • VProf(en)
  • VCR режим, отладка и управление памятью

Tier1

STL, консольные команды/переменные от Valve и многое другое; смотрите в Tier1(en).