Активность
- 13 января 2025
- 12 января 2025
-
-
ant0n ·прокомментировал топик CyberGrad 2033 Архитектура: EcsЯ наоборот не читал ничего, делал понаитию
А у тебя наоборот — итерация вроде эффективная, но добавление компонента или фильтра требует обновлять кеш
Добаление компонентов не так часто происходит, а вот итерация каждый божий кадр -
ant0n ·прокомментировал топик CyberGrad 2033 Архитектура: EcsТо, что у компонента есть ссылка на свою энтити, не делает его умным )
К тому же я кажется эту возможность еще нигде не использовал -
ant0n ·прокомментировал топик CyberGrad 2033 Архитектура: Ecs1. Пока не проверял, вроде должен занулять (у меня пока с этим проблем не было). На крайний случай можно использовать IsInstanceValid() (примерно как-то так называется метод в годо)
2. Делать так, что у тебя компонент одной сущности ссылается на компонент другой — странно
Максимум у меня компонент одной сущности может ссылаться на другую сущность в целом
3. Про урон, как ты сделаешь так и будет. Ты можешь прежде чем добавить новый компонент DamageReceive, проверить есть ли он уже и если есть просто инкрементировать его значение
4. Расскладывать по смыслу в ecs я точно не буду, я не представляю как и зачем.
К примеру MoveSystem использует компоненты MoveComponent и TransformComponent, но эти же компоненты используют еще куча других систем, как ты будешь группировать?
Ну и во-вторых, это репозиторий не проекта, а фреймворка. Сюда я выношу код, который можно будет испльзовать в других проектах. Я например могу потом заюзать компонент MoveComponent, но систему не брать, а написать другую.
В проекте я уже группирую скрипты внутри компонентов/систем
- 11 января 2025
-
ant0n ·прокомментировал топик CyberGrad 2033 Архитектура: Ecs1. Не совсем понял про удаление. Например у компонента есть ссылка но ноду и эта нода удалилась, так?
Если да, то все nullable типы нужно проверять на null, поэтому я их помечаю так:
И там где идет обращение к таким полям, нужна проверка[Export] public Node? Target = null;
2. Два одинаковых компонента нельзя. Точнее ты физически можешь, но добавиться только последний.
Код в энтити:
public T AddComponent<T>(T component, bool attach = true) where T : EcsComponent { if (HasComponent<T>()) RemoveComponent<T>();
Я даже не представляю как организовывать потом системы если можно будет добавлять несколько одинаковых компонентов. Вижу только минусы -
ant0n ·добавил новый топик CyberGrad 2033 Архитектура: Ecs
- 8 января 2025
-
ant0n ·прокомментировал топик CyberGrad 2033Планируется кооперативный режим, да. Попробую на серверах стима сделать. Но это будет не скоро, первым делом отполирую кор механики
Про архитектуру в следующей статье напишу -
ant0n ·добавил новый топик CyberGrad 2033
- 22 ноября 2024
-
ant0n ·оценил топик Я тут решил сделать топик
- 15 ноября 2024
-
ant0n ·прокомментировал топик #1. Devlog вводныйу меня почти всегда браузер развернут только на пол экрана, вторую половину занимает другое приложение.
- 13 ноября 2024
-
ant0n ·прокомментировал топик #1. Devlog вводный
Аватары у сообщений крупнее
Протестую! Сейчас в самый раз, зачем больше? Место съедать впустую? - 12 ноября 2024
-
ant0n ·оценил комментарий к топику #1. Devlog вводный
- 11 ноября 2024
-
ant0n ·прокомментировал топик #1. Devlog вводныйесли будете дизайнить, только без белых гифок, пожалуйста 🙏
-
-
-
ant0n ·оценил комментарий к топику #1. Devlog вводный
-
ant0n ·прокомментировал топик Бесконченый тред со смешными картинкамигодот стал уже в 2 раза популярнее юнити
-
ant0n ·оценил комментарий к топику #1. Devlog вводный
-
Подгрузить еще (1]