Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версияПоследняя версияСледующая версия справа и слева |
ru:toolworks:docs:apparatus:ecs [2021/04/16 15:55] – Ненмого осталось jispar | ru:toolworks:docs:apparatus:ecs [2021/04/21 02:03] – Закончил jispar |
---|
Apparatus берёт более широкое направление, чем обычный ECS, поэтому мы и называем его ECS+. Вводится бóльшая гибкость, имеется поддержка наследования деталей (компонентов), динамические belt-ы (//chunks// и //archetypes//), subject-booting и др. Само понятие ECS+ должно рассматриваться как синоним слову "Apparatus", так как плагин, на самом деле, реализует и полноценно использует именно эту терминологию с самого своего начала. | Apparatus берёт более широкое направление, чем обычный ECS, поэтому мы и называем его ECS+. Вводится бóльшая гибкость, имеется поддержка наследования деталей (компонентов), динамические belt-ы (//chunks// и //archetypes//), subject-booting и др. Само понятие ECS+ должно рассматриваться как синоним слову "Apparatus", так как плагин, на самом деле, реализует и полноценно использует именно эту терминологию с самого своего начала. |
| |
Вообще говоря, в нашей философии разработки, проектирование никогда не должно быть "простым" или "математически корректным", но напротив более применимым и удобным в использовании как для конечного пользователя, так и для программиста. Unreal Engine, конечно, является хорошим примером такого подхода со всеми своими кончепциями и паттернами. Соединяя в себе оба паттерна ООП и ECS, Apparatus включает всё самое лучшее из 3-х миров, считая мир UE-блупринтов. | Вообще говоря, в нашей философии разработки, проектирование никогда не должно быть "простым" или "математически корректным", но напротив более применимым и удобным в использовании как для конечного пользователя, так и для программиста. Unreal Engine, конечно, является хорошим примером такого подхода со всеми своими концепциями и паттернами. Соединяя в себе оба паттерна ООП и ECS, Apparatus включает всё самое лучшее из 3-х миров, считая мир UE-блупринтов. |
| |
==== Встроенные сущности ==== | ==== Встроенные сущности ==== |
| |
На низком уровне, ''Subjective'' - это интерфейс, и любой класс, который его имплементирует, может быть назван сущностью. Есть несколько | На низком уровне, ''Subjective'' - это интерфейс, и любой класс, который его имплементирует, может быть назван сущностью. Есть несколько уже встроенных в плагин subject'ов: |
| |
At a lower level, ''Subjective'' is an interface and any class that implements it may be called a ''Subject''. There are several subjects already implemented in the framework: | * ''SubjectiveActorComponent'' (на базе ''ActorComponent''), |
| * ''SubjectiveUserWidget'' (на базе ''UserWidget''), |
| * ''SubjectiveActor'' (на базе ''Actor''). |
| |
* ''SubjectiveActorComponent'' (based on ''ActorComponent''), | Этого должно хватить в подавляющем большинстве случаев использования, но вы, естественно, можете реализовать свои subject-классы в C++. |
* ''SubjectiveUserWidget'' (based on ''UserWidget''), | |
* ''SubjectiveActor'' (based on ''Actor''). | |
| |
Those should be sufficient for the most cases, but you can easily implement your own additional subject classes in C++. | ==== Встроенные механизмы ==== |
| |
==== Built-in Mechanisms ==== | Класс ''Mechanical'' - это также интерфейс, с уже реализованными основными механизмами: |
| |
The ''Mechanical'' class is also an interface, with the most useful mechanisms already implemented: | * ''MechanicalActor'' (наследованный от ''Actor''), |
| |
* ''MechanicalActor'' (inherited from ''Actor''), | |
* ''MechanicalGameModeBase'' (''GameModeBase''), | * ''MechanicalGameModeBase'' (''GameModeBase''), |
* ''MechanicalGameMode'' (''GameMode''). | * ''MechanicalGameMode'' (''GameMode''). |
| |
You would hardly ever need to implement your own mechanisms. Should you wish to, you can also do it in C++. | Вряд ли вам потребуется дополнять функционал своими механизмами. Если такая потребность возникнет, вы также можете достичь этого при помощи C++. |