Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2019 December 24

IL

Ilya Lakhin in RU Rust GameDev — русскоговорящее сообщество
Oleg Morozov
с контроллерами в MVC такого нет
Почему нет? Посмотреть любой MVC фреймворк, там тоже вполне конкретный сундучок инструментов для построения контроллера, и набор best-practices именно для данного фреймворка
источник

IL

Ilya Lakhin in RU Rust GameDev — русскоговорящее сообщество
Причем, в каждом MVC фреймворке он свой
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Oleg Morozov
у систем четкое поведение в возможности вызова конкретного метода, в котором система будет итерировать определенный набор сущностей, совершая любые действия над ними
и открыв любой ецс, вы встретите и фильтры/группирования и итерацию по ним
Да кто у вас источник то?))
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
Adv0cat
Да кто у вас источник то?))
в данном случае реальность

дайте мне хоть что-то называющее себя ECS и не соверщающих этих шаблонных  действий
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
Ilya Lakhin
Почему нет? Посмотреть любой MVC фреймворк, там тоже вполне конкретный сундучок инструментов для построения контроллера, и набор best-practices именно для данного фреймворка
построение и сундучки это как раз из области под капотом

и в ецс в данном случае зоопарк
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
потому что это не касается самой концепции
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Ну у вас своя реальность, у меня своя реальность, у кого-то своя реальность, это не источник - где описано четко и ясно, то что вы пытаетесь преподнести, как "Истинное ECS"
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
кто-то делает ссылочные типы, кто-то вэлью типы, кто-то мешает

отличается и мемори лайутинг, то как укладывают все данные

отличаются и то как хранят сущности в себе айди компонентов

есть разные подходы к фильтрации и группированию

но это всё не меняет концепции
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
Adv0cat
Ну у вас своя реальность, у меня своя реальность, у кого-то своя реальность, это не источник - где описано четко и ясно, то что вы пытаетесь преподнести, как "Истинное ECS"
я предполагал, что у нас один и тот же интернет, один и тот же гитхаб, одна и та же планета
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Мне казалось почти все уже пришли к чанковой модели хранения компноентов
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Потому что локальность, кэши, все дела
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
Roman
Мне казалось почти все уже пришли к чанковой модели хранения компноентов
не, не все так просто
есть реализация с архетипами, где сущности с одинаковыми компонентами укладываются в уникальные бакеты

и эта хрень медленная на добавление и удаление компонентов, но еще быстрее при итерации по одинаковым сущностям
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
и именно подкапотная возня в ецс мире сейчас активная
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Oleg Morozov
я предполагал, что у нас один и тот же интернет, один и тот же гитхаб, одна и та же планета
Ну для меня концепция такая же простая как и у MVC - Entity, Component, System, а дальше наворачивай  абстракций как душе угодно, но всегда Система связана с Компонентом и обрабатывает компонент, а носителем Компонента является Сущность - все!
в MVC тоже красиво - Model, View, Controller, где View - визуальное представление, Model - данные, Controller - логика, все!
Но у обоих подходов есть разнообразные вариации, реализации и прочие непотребства)))
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Не так уж часто надо менять архетип сущности по сравнению с итерацией.
Оптимизировать изменение архетипа ценой медленной итерации - так себе затея
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
Roman
Потому что локальность, кэши, все дела
кто-то акцентируется на перфомансе, кто-то на памяти, кто-то на легкости написания и поддержки
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
А вот это вообще как-то ортогонально
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
Roman
Не так уж часто надо менять архетип сущности по сравнению с итерацией.
Оптимизировать изменение архетипа ценой медленной итерации - так себе затея
это можно решать и другими путями, например кешируя выборки по компонентам в рамках фильтра, но при этом не кучкуя сущности
источник

OM

Oleg Morozov in RU Rust GameDev — русскоговорящее сообщество
пакуя по архетипам возникает проблема со сквозными фильтрами, которые затрагивают несколько архетипов
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Не вижу в этом проблемы
источник