Size: a a a

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

2020 April 23

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
Это от raylib'овского чела, да?
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Andrey @ozkriff Lesnikov
Это от raylib'овского чела, да?
Да
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Как entity-component системы обрабатывают удаление? Есть хороший способ не проверять при каждом действии, что сущность/компонент всё ещё существует?
источник

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
Ставить в очередь на удаление и удалять не сразу а в самом конце кадра?
источник

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
Либо как определённый логический шаг после отработки определённой системы. У меня в рогалике например так. Но там правда и система пошаговая, есть ход игрока и ход монстров, они жёстко упорядочены
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Я даже не про крайние случаи, когда сущность была удалена одновременно, а вообще. Если между сущностями вообще есть связи, то всегда может оказаться, что сущность была удалена минуту назад, нет?
источник

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
Ну у сущности в айдишнике есть поколение обычно
источник

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
так что когда ты её удалил, поколение уже обновилось, так что старый айдишник просто чекается на удалённость тривиально. А как это ещё можно проверить то?
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
так что когда ты её удалил, поколение уже обновилось, так что старый айдишник просто чекается на удалённость тривиально. А как это ещё можно проверить то?
Эта проблема выглядит как очередная итерация memory management. Можно, например, сделать сборщик мусора: не удалять сущность, пока на неё есть хоть одна ссылка
источник

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
Но она же мёртвая логически
источник

ВМ

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

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
Просто удалять у него компонент alive(либо сетать в нём единственное поле в false) и помещать айдишник в некий фрилист
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
А, точно: список сущностей ведь вообще не нужен, достаточно проверять компоненты
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Но с ними аналогичная проблема: каждый раз проверять, что сущность, на которую есть ссылка, всё ещё имеет все нужные компоненты
источник

ВМ

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

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
Ты всё равно проверишь по итогу что она мёртвая и отцепишься
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Хм. Полагаю, это решилось бы само собой, если получать сущности для обновления через язык запросов, который джойнит главную сущность со всеми нужными в обновлении ссылками
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Если сущность ссылается на сущность с неправильными компонентами, то она не попадет под условие, и ничего не произойдет
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Так бывает? Для EC-систем бывают языки запросов?
источник