Ru/Engine Structure: Difference between revisions
(Created page with "{{otherlang2 |title= Структура Движка |en=Engine_Structure }} Этот раздел в настоящее время находится в стадии раз...") |
m (obsolete language category) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|title=Структура Движка|Engine Structure}} | ||
|title= Структура Движка | |||
| | |||
}} | |||
Этот раздел в настоящее время находится в стадии разработки. Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом. | Этот раздел в настоящее время находится в стадии разработки. Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом. | ||
Line 12: | Line 9: | ||
Движок Source использует ряд отдельных подсистем с очень стандартизированной структурой. Каждая подсистема определяет абстрактный интерфейс в " .h файле", при типичной реализации и создании глобальной переменной в " .cpp файле". С помощью макросов или просто добавив её в функцию инициализации клиента/сервера, эта глобальная переменная добавляется в список активных систем. После подключения, существующие обработчики позаботятся об инициализации, завершении работы и вызове соответствующих функций обновления по мере необходимости. | Движок Source использует ряд отдельных подсистем с очень стандартизированной структурой. Каждая подсистема определяет абстрактный интерфейс в " .h файле", при типичной реализации и создании глобальной переменной в " .cpp файле". С помощью макросов или просто добавив её в функцию инициализации клиента/сервера, эта глобальная переменная добавляется в список активных систем. После подключения, существующие обработчики позаботятся об инициализации, завершении работы и вызове соответствующих функций обновления по мере необходимости. | ||
Существует два разных, используемых, типа обработки системы. Первый, и более простой, | Существует два разных, используемых, типа обработки системы. Первый, и более простой, {{L|IAppSystem}} используется для системы Клиента. Это не означает, что на них также нельзя ссылаться в серверной библиотеке dll, однако между клиентом и сервером нет никакой информации. Он предлагает только обработку, необходимых для инициализации подсистем с возможными ссылками на другие подсистемы, и выключение в нужное время. Файл, материал, и физические системы все вытекают из этого интерфейса. | ||
Второй это | Второй это {{L|IGameSystem}}. Сравнительно более сложный интерфейс, он предназначен для систем, которые должны иметь функции обновления вызова, и он может быть, при необходимости, синхронизирован между клиентом и сервером. Помимо стандартных обработок инициализации и завершения работы, он также предлагает обработки, которые вызываются для ряда событий, включая загрузку карты, сохранения / восстановления, пред/пост-рендеринг и функцию обновления с прошедшим временем фрейма. | ||
{{L|IAppSystem Derived Systems}} | |||
{{L|IGameSystem Derived Systems}} | |||
== Служебные библиотеки == | == Служебные библиотеки == | ||
Line 24: | Line 21: | ||
=== Tier0 === | === Tier0 === | ||
* | *{{L|Mathlib}} | ||
* | *{{L|VProf}} | ||
*VCR режим, отладка и управление памятью | *VCR режим, отладка и управление памятью | ||
=== Tier1 === | === Tier1 === | ||
STL, консольные команды/переменные от Valve и многое другое; смотрите в | STL, консольные команды/переменные от Valve и многое другое; смотрите в {{L|Tier1}}. | ||
[[Category:Programming]] | [[Category:Programming]] | ||
[[Category:Engine Structure]] | [[Category:Engine Structure]] | ||
{{ACategory|Modding}} | |||
[[Category:Russian]] |
Latest revision as of 03:46, 22 August 2024
Этот раздел в настоящее время находится в стадии разработки. Пожалуйста, не стесняйтесь добавлять любые идеи, которые вы можете отнести к структуре движка Source, которыми вы бы хотели поделиться с сообществом.
Введение
Движок "Source" разработан в необыкновенной, модульной форме. Это было сделано, для обеспечения как легких обновлений, так и засекречивания кода. Это руководство не покажет вам, как получить доступ к этим засекреченным областям, но даст вам представление о том, что представляют собой эти модули, как они взаимодействуют и как их лучше всего расширить.
Подсистема
Движок Source использует ряд отдельных подсистем с очень стандартизированной структурой. Каждая подсистема определяет абстрактный интерфейс в " .h файле", при типичной реализации и создании глобальной переменной в " .cpp файле". С помощью макросов или просто добавив её в функцию инициализации клиента/сервера, эта глобальная переменная добавляется в список активных систем. После подключения, существующие обработчики позаботятся об инициализации, завершении работы и вызове соответствующих функций обновления по мере необходимости.
Существует два разных, используемых, типа обработки системы. Первый, и более простой, IAppSystem используется для системы Клиента. Это не означает, что на них также нельзя ссылаться в серверной библиотеке dll, однако между клиентом и сервером нет никакой информации. Он предлагает только обработку, необходимых для инициализации подсистем с возможными ссылками на другие подсистемы, и выключение в нужное время. Файл, материал, и физические системы все вытекают из этого интерфейса.
Второй это IGameSystem . Сравнительно более сложный интерфейс, он предназначен для систем, которые должны иметь функции обновления вызова, и он может быть, при необходимости, синхронизирован между клиентом и сервером. Помимо стандартных обработок инициализации и завершения работы, он также предлагает обработки, которые вызываются для ряда событий, включая загрузку карты, сохранения / восстановления, пред/пост-рендеринг и функцию обновления с прошедшим временем фрейма.
Служебные библиотеки
Tier0
Tier1
STL, консольные команды/переменные от Valve и многое другое; смотрите в Tier1 .