Size: a a a

2020 May 24

А

Андрей in ГОРИ
ну вот я для этого и делал
источник

А

Андрей in ГОРИ
что бы менять рендеры
источник

C

Churchill in ГОРИ
Антон Манко
Новый год уже давно прошёл
Кто б говорил
источник

АМ

Антон Манко... in ГОРИ
Churchill
Кто б говорил
🌚🌚🌚
источник

AM

Aleksey Muravev in ГОРИ
Lee Armstrong
У меня небольшой вопросик по ecs. Кто как реализует систему рендеринга? У меня вот следующие идеи.

1) Запихать api библиотеки рендеринга в сервис (у меня есть сервис локатор) и нарезать все на маленькие системы, которые ходят в сервис.
2) Или зопелить мегажирную систему, которая будет делать все (создание окна, опрос инпута, сам рендер, и всякое такое связанное с рендером) и наружу дать только компоненты.

Собственно, плюсы очевидны, никто кроме системы не будет трогать библиотеку рендеринга, а значит если чо можно будет заменить бэкенд (вначале беру sfml для прототипа, а потом перелезу на bgfx), но минус в жирной системе.

Как думаете?
Заимей абстракцию над api. Сможешь менять в любой момент без боли и вазелина
источник

AM

Aleksey Muravev in ГОРИ
Да и не нужен тебе в рендере ecs. Просто dod по полной. ECS это больше про более высокоуровневые штуки
источник

L

Lee Armstrong in ГОРИ
@i_4_2 а опыт в тайловой 2d topdown c ecs есть?

Получается есть карта (слой). Как оптимизировать получение всех объектов в заданном радиусе от точки? Ведь в ecs у нас один сплошной массив компонентов Position и что бы получить энтитей в заданном радиусе нам придется пробежать весь массив.

Первое что приходит в голову это каждый кадр пробегаться 1 раз по всем компонентам Position и записивыть в 2хмерный массив и уже когда надо получить энтитей в заданной точки с заданным радиусом использовать массив.

Что можете сказать на этот счет?
источник

А

Андрей in ГОРИ
Lee Armstrong
@i_4_2 а опыт в тайловой 2d topdown c ecs есть?

Получается есть карта (слой). Как оптимизировать получение всех объектов в заданном радиусе от точки? Ведь в ecs у нас один сплошной массив компонентов Position и что бы получить энтитей в заданном радиусе нам придется пробежать весь массив.

Первое что приходит в голову это каждый кадр пробегаться 1 раз по всем компонентам Position и записивыть в 2хмерный массив и уже когда надо получить энтитей в заданной точки с заданным радиусом использовать массив.

Что можете сказать на этот счет?
ну у меня ecs нет)
источник

А

Андрей in ГОРИ
но что то похожее решаю в 3д
источник

А

Андрей in ГОРИ
вообще смотри на quad tree
источник

А

Андрей in ГОРИ
для 2д топ
источник

L

Lee Armstrong in ГОРИ
Андрей
вообще смотри на quad tree
А как его обновлять, каждый кадр? Пробегая по всем компонентам Position?
источник

L

Lee Armstrong in ГОРИ
Или есть какой-то лайфхак?
источник

А

Андрей in ГОРИ
не обязательно каждый кадр
источник

А

Андрей in ГОРИ
обычно сцена неподвижна
источник

А

Андрей in ГОРИ
и меняется редко
источник

А

Андрей in ГОРИ
достаточно отслеживать изменения
источник

AM

Aleksey Muravev in ГОРИ
Lee Armstrong
@i_4_2 а опыт в тайловой 2d topdown c ecs есть?

Получается есть карта (слой). Как оптимизировать получение всех объектов в заданном радиусе от точки? Ведь в ecs у нас один сплошной массив компонентов Position и что бы получить энтитей в заданном радиусе нам придется пробежать весь массив.

Первое что приходит в голову это каждый кадр пробегаться 1 раз по всем компонентам Position и записивыть в 2хмерный массив и уже когда надо получить энтитей в заданной точки с заданным радиусом использовать массив.

Что можете сказать на этот счет?
Ситх что-ли? Грид регулярный и брутфорсом. Только уложи всё хорошо
источник

L

Lee Armstrong in ГОРИ
Андрей
достаточно отслеживать изменения
Каким образом? Пробегать по всем компонентам, так?
источник

А

Андрей in ГОРИ
не
источник