Size: a a a

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

2020 April 23

ВМ

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

ВМ

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

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Да, покаления проще всего использовать. Ты одновременно и помечаешь что старые сслыки Entity уже все. И можешь сразу реюзать индекс
источник

MS

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

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Тебе в любом случае нужно как-то понимать что вот твоя ссылка прокисла.
источник

ВМ

Виталий Медоваров in RU Rust GameDev — русскоговорящее сообщество
https://specs.amethyst.rs/docs/tutorials/01_intro.html?highlight=Entity,generation#whats-an-ecs надо было сразу это кинуть, тут про поколения сразу сходу есть
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Тебе в любом случае нужно как-то понимать что вот твоя ссылка прокисла.
Ну вот хочется в большинстве случаев не следить за этим, а просто ничего не делать, когда ссылка прокисла
источник

РФ

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

РФ

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

ВМ

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

ВМ

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

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Руслан Фадеев
Как-нибудь так
А что если это сущность с такими же компонентами, но уже другая?
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Ну и в ецс суть в том, что тебе как раз не важно какой у энтити набор компонентов, главное чтоб там были нужные тебе.
источник

РФ

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

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
И вот тогда ничего проверять на существование не надо
источник

MS

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

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Руслан Фадеев
Да. Поэтому кажется, что должен быть способ писать запрос с джойном по id сущности и получать нужные компоненты только в случаях, когда все компоненты есть
Ну спекс так и делает.
источник

РФ

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

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Руслан Фадеев
Да. Поэтому кажется, что должен быть способ писать запрос с джойном по id сущности и получать нужные компоненты только в случаях, когда все компоненты есть
for (entity, transform, velocity) in (&entities, &mut transforms, &velocities).join() {
  ...
источник

РФ

Руслан Фадеев in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Ну спекс так и делает.
Тогда мне нужно прочитать про него, спасибо :)
источник