В разгар работы над новым обновлением мы решили немного остановиться и вспомнить, с чего всё начиналось. Вот эти концепты когда-то были нашими первыми шагами к тому, что вы видите сегодня. Простые идеи, наброски, смелые мечты — они стали основой того, чем мы гордимся сейчас.
Каждый пиксель, каждая строчка кода в этих первых версиях напоминали нам: главное — верить в то, что создаёшь, и шаг за шагом двигаться к цели. И вот, мы здесь, строим что-то ещё большее, вдохновляясь тем, как далеко зашли. 🖤
Каждый пиксель, каждая строчка кода в этих первых версиях напоминали нам: главное — верить в то, что создаёшь, и шаг за шагом двигаться к цели. И вот, мы здесь, строим что-то ещё большее, вдохновляясь тем, как далеко зашли. 🖤
👀 Спойлерим грядущий пост о том, как прошел наш новогодний корпоратив.
Все готовы?
Все готовы?
Головоломка недели 💥
У вас есть миллион игровых объектов, которые перемещаются по кругу. Их позиции вычисляются по формулам:
📍 x = R * cos(θ)
📍 y = R * sin(θ)
Вопрос: как оптимизировать эти расчёты, чтобы система оставалась производительной?
Чтобы ответить, участвуйте в опросе ниже и выбирайте лучший подход!
У вас есть миллион игровых объектов, которые перемещаются по кругу. Их позиции вычисляются по формулам:
📍 x = R * cos(θ)
📍 y = R * sin(θ)
Вопрос: как оптимизировать эти расчёты, чтобы система оставалась производительной?
Чтобы ответить, участвуйте в опросе ниже и выбирайте лучший подход!
Как оптимизировать эти расчёты, чтобы система оставалась производительной?
Anonymous Quiz
40%
Предварительно вычислить значения для фиксированного набора углов и использовать их из таблицы.
21%
Вычислять значения sin и cos динамически для каждого объекта.
5%
Использовать кватернионы для работы с вращением.
18%
Сократить число расчётов, обновляя позиции только для объектов, попадающих в область видимости.
7%
Кэшировать вычисления для θ и переиспользовать их между объектами.
2%
Увеличить радиус, чтобы объекты двигались медленнее и обновлялись реже.
4%
Заменить окружности квадратами (зачем сложная математика?).
3%
Расчитать всё заранее и просто анимировать объекты по таймеру.
Правильный ответ — Предварительно вычислить значения sin и cos для фиксированного набора углов и использовать их из таблицы.
Почему?
Предварительное вычисление углов (обычно с шагом в несколько градусов или радиан) позволяет значительно сократить вычислительные затраты.
Таблицу значений можно хранить в массиве, и для каждого объекта достаточно будет просто индексировать массив, что в разы быстрее, чем вычисления через sin и cos для миллиона объектов.
При необходимости можно интерполировать значения из таблицы, чтобы достичь большей точности.
Почему?
Предварительное вычисление углов (обычно с шагом в несколько градусов или радиан) позволяет значительно сократить вычислительные затраты.
Таблицу значений можно хранить в массиве, и для каждого объекта достаточно будет просто индексировать массив, что в разы быстрее, чем вычисления через sin и cos для миллиона объектов.
При необходимости можно интерполировать значения из таблицы, чтобы достичь большей точности.
Дедлайн для подготовки подарка для краша уже на носу, а релизы и бесконечные таски не оставили времени даже на выбор валентинки? Не беспокойтесь — BlackHub Games позаботился о вас!
Мы перевели язык любви на язык программистов и подготовили специальные валентинки, которые точно оценят те, кто понимает, что
Скачивайте, отправляйте любимым и не забывайте делать коммиты не только в коде, но и в отношениях! 😘
Мы перевели язык любви на язык программистов и подготовили специальные валентинки, которые точно оценят те, кто понимает, что
if (love) { return forever; }
🖤Скачивайте, отправляйте любимым и не забывайте делать коммиты не только в коде, но и в отношениях! 😘