Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет nancygold ([info]nancygold)
@ 2024-05-24 15:53:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Музыка:VNV Nation - When is the Future?
Entry tags:computing

Entity Relations
Apparently the right way to implement relations is the by creating a relation table dynamically and adding there all ids satisfying the relation:

https://ajmmertens.medium.com/building-games-in-ecs-with-entity-relationships-657275ba2c6c

Basically we do

  ComponentTables["[Relation] [What]"].[EntityId] != NULL


For example
  ComponentTables["is mortal"].[Socrates] != NULL


In SQL people usually introduce secondary keys for that.

But yeah, that requires very efficient and adaptive hash table implementation, since we can have millions of relations, having just a few elements each. I.e. doing unordered_map<int,int> won't cut it.


(Добавить комментарий)


[info]ololo
2024-05-24 17:16 (ссылка)
Да что ты черт побери такое несешь?

(Ответить) (Ветвь дискуссии)


[info]nancygold
2024-05-24 17:54 (ссылка)
(define-relation 'is 'mortal 'socrates)

(Ответить) (Уровень выше)


[info]remedie
2024-05-25 04:35 (ссылка)
Тсс, не мешай человеку думать. Изобретение всего заново - это вполне годный (хоть и медленный) способ изучения computer science

(Ответить) (Уровень выше)