Как стать автором
Обновить
23
0
Павел Зинов @mrguardian

Игровой разработчик, техлид

Отправить сообщение

Custom Pod Autoscaler – сверхгибкое автоскалирование в Kubernetes

Время на прочтение8 мин
Количество просмотров4.3K

Преимущества использования системы оркестрации контейнеров — удобство их развертывания, обновления и масштабирования. И одним из наиболее популярных таких инструментов является Kubernetes. 

Многие знают, что Kubernetes имеет встроенный механизм для автоскалирования подов — Horizontal Pod Autoscaling (HPA). Но что, если надо принимать решение с учетом множества факторов: суммы метрик, зависимости от количества готовых контейнеров, процента или доли доступных/недоступных подов или даже времени суток? А если эти показатели важны для нас все вместе? 

Мы в студии Whalekit смогли решить эту задачу. И отличным решением для этого стал Custom Pod Autoscaler (CPA).

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии0

Фантастические формулы и как они работают

Время на прочтение16 мин
Количество просмотров13K

В прошлой статье я рассказывал о том, как мы реализовали на основе Google Sheets собственную диаграмму Ганта для работы над игровыми проектами. Если вам зашла такая реализация или просто интересно глубже понять принципы устройства таблиц и формул, сейчас мы будем разбирать именно эти темы. 

Для начала я подробнее расскажу про визуальную составляющую: какие ячейки для чего нужны. Затем познакомимся с тем, где и какие формулы применяются. Взглянем на примеры условного форматирования. Под конец узнаем, как сделать скрипт для разделения недель на шкале времени.

Читать далее
Всего голосов 23: ↑22 и ↓1+25
Комментарии6

Какое тестовое задание выдать джависту? Лучше просто поговорить

Время на прочтение4 мин
Количество просмотров8.8K

Всем привет, меня зовут Сергей, я руковожу группой серверных программистов студии Whalekit и активно занимаюсь наймом в эту группу. Сервер пишем на Java — соответственно, нанимаем мы тоже джавистов.

В 2016 году мы выдавали кандидатам тестовое задание, успешным кандидатам назначалось техническое собеседование.

В 2018 мы добавили 45-минутный «мотивирующий на выполнение тестового задания» этап, чтобы кандидаты лучше понимали, соответствует ли вакансия их ожиданиям.

В 2021 мы полностью отказались от тестовых заданий.

Но обо всем по порядку.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии13

Облачный гейминг обречен из-за физики? Или подробнее о задержках ввода, откуда они берутся и как с ними бороться

Время на прочтение9 мин
Количество просмотров12K

Многие годы вычислительная мощность ПК зависела от вложенных в него инвестиций: чем дороже он был, тем более высокую производительность имел, а значит — мог запускать более требовательные к железу игры. Но поскольку системные требования игр растут из года в год, то и обесцениваются такие инвестиции в железо тоже быстро. Сейчас, к тому же, и вовсе железа дефицит, который лучше не становится, а когда оно есть, то стоит очень и очень немало.

Но решение есть. Используя облачный гейминг, вам не нужно задумываться над тем, насколько слабый или мощный ваш ПК. Вы просто выбираете игру из сервиса и запускаете ее, и команды от вашего контроллера отправляются на сервер, просчитываются в игре, преобразуются в видео- и аудиопотоки, а затем передаются обратно.

Кажется, слишком много действий, долго и сложно? Давайте разбираться.

Читать далее
Всего голосов 20: ↑19 и ↓1+21
Комментарии35

Как мы придумали свою диаграмму Ганта

Время на прочтение15 мин
Количество просмотров15K

В управлении проектами часто возникает вопрос: как лучше спланировать последовательность работ разных отделов, убедиться в отсутствии оверкапа по капасити, да и вообще понять критический путь будущего релиза? Желательно ещё и визуализировать все эти планы. Ко всему этому, часто бывает, что нужно внезапно и быстро переработать утвержденное ранее.

К нашему счастью, эту проблему решили за нас еще в конце XIX века, придумав диаграмму Ганта. Затем придумали компьютеры, а после — Интернет. И, казалось бы, какие тут еще могут остаться проблемы, но не всё так просто — ведь нельзя просто создать универсальный инструмент, который удовлетворял бы нуждам всех. 

Сегодня я расскажу о том, как мы перебрали множество вариантов диаграммы Ганта, но по итогу пришли к тому, чтобы разработать собственный.

Читать далее
Всего голосов 26: ↑25 и ↓1+26
Комментарии9

Где порешать реальные задачи для кандидатов в Яндекc: тренировка на Codeforces и разбор

Время на прочтение43 мин
Количество просмотров74K
Хабр, это снова я, Алексей Рак (фото не мое). В прошлом году, помимо основной работы, мне довелось стать одним из авторов задач для кандидатов в Яндекс. Сегодня наша команда впервые за долгое время публикует на Хабре реальные задачи для разработчиков, которые устраиваются в компанию. Эти задачи использовались до февраля 2020 года при отборе на стажировку для бэкендеров. Решения проверял компьютер. Сейчас кандидатам достаются похожие задания.

Разборы и код сознательно спрятаны в спойлеры. Если вы готовитесь к собеседованиям в большие IT-компании, попробуйте решить одну или несколько задач, прежде чем смотреть разбор. Отправить решение для проверки можно на Codeforces — ответ придёт сразу же (ссылка на Codeforces и примечание). Код представлен на Python, C++ и Java. Важно: авторский «олимпиадный» код не предназначен для продакшена, он написан исходя из того, что система будет проверять его автоматически.
Читать дальше →
Всего голосов 34: ↑20 и ↓14+26
Комментарии34

Чек-лист начинающего арт-директора: как организовать работу арт-отдела от малых до распределенных команд

Время на прочтение8 мин
Количество просмотров6.1K

Привет! Меня зовут Денис Рычковский. Всю сознательную жизнь я люблю две вещи: арт и игры. С 2015 года я работаю в геймдев-индустрии, а последние 3,5 года — на позициях лида и арт-директора.

Сегодня я хочу поделиться накопившимся опытом и поговорить о самых разных аспектах организации арт-отделов: про особенности и отличие команд в зависимости от их численности, о планировании и коммуникациях, арт-пайплайнах, менеджменте, хантинге и развитии сотрудников — эдакий глоссарий и практические советы, о чем стоит знать каждому арт-лиду.

Итак, начнем
Всего голосов 20: ↑19 и ↓1+21
Комментарии0

Как я решил стать трейдером и проигрался, а потом отыгрался, потому, что я программист. Мой опыт

Время на прочтение10 мин
Количество просмотров161K


Таким я себя видел в своих мечтах. Freepik


Здравствуйте дорогие хабровчане, в этом небольшом посте я хочу рассказать про свой опыт в торговле на бирже. Под катом я написал о том, как я пошёл тем же путём, что и все, и как и все (или как подавляющее большинство) проигрался, затем хорошенько задумался, напрограммировал свои инструменты и отыгрался обратно.


Предупреждение! Статья не является призывом к чему-либо, тем более к торговле на бирже. Скорее всего, будет интересна начинающим трейдерам и всем интересующимся данной темой. Постарался написать простым и доступным языком без сложных терминов и кода.

Читать дальше →
Всего голосов 84: ↑73 и ↓11+82
Комментарии230

План самостоятельного обучения DDD, CQRS, EventSourcing

Время на прочтение7 мин
Количество просмотров42K

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD
Всего голосов 32: ↑31 и ↓1+34
Комментарии4

Создаём единую инфраструктуру для параллельной разработки мобильных игр

Время на прочтение10 мин
Количество просмотров2.3K

Она помогла нам переиспользовать игровые механики в непохожих проектах и увеличила скорость разработки на 25%.

Читать далее
Всего голосов 13: ↑12 и ↓1+12
Комментарии0

Пересаживаем высоконагруженный игровой проект с Photon на кастомные решения

Время на прочтение5 мин
Количество просмотров5.9K


Photon — это целый ворох решений для создания многопользовательских игр. Они позволяют тратить меньше времени на разработку типичных вещей вроде матчмейкинга и балансировки и сосредоточиться на геймплее.

Но, как это часто бывает, с развитием продукта универсальные решения требуют обработки напильником. А ведь War Robots существует уже почти восемь лет — инфраструктура серверов за это время менялась неоднократно по мере масштабирования проекта, который сейчас уже перешагнул через порог 200 млн установок.

В нашем случае такая обработка вылилась в собственные реализации тех или иных компонентов. Матчмейкинг и социальные фичи перекочевали в отдельные сервисы, новые игровые механики реализовывались на сервере для лучшей согласованности. В итоге от Photon остался транспорт, прослойка PUN на стороне клиента и некоторые сопутствующие расходы в виде лицензии, привязки к Windows и .Net Framework и чрезмерных аллокаций на клиенте.

Стало понятно, что затраты на фреймворк превышают его ценность, и надо тiкать.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии3

Таймер в .NET с интервалом 1 мс. Windows

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров24K

Вы пишите код на платформе .NET под Windows и вам нужно выполнять некоторые действия каждую миллисекунду. Возможно ли это? Какие есть варианты и насколько они надёжны? Разберёмся, что можно использовать, и какие есть гарантии по точности срабатывания. Статья сконцентрирована на поиске такого решения, которое работало бы и под .NET Framework, и под .NET Core / .NET, и в разных версиях ОС, и являлось бы механизмом общего назначения (а не только для программ с GUI, например).

Читать далее
Всего голосов 70: ↑70 и ↓0+70
Комментарии83

И всё-таки, возможен ли 1мс таймер в Windows?

Время на прочтение4 мин
Количество просмотров17K

В комментариях к недавней статье оказалось что, во-первых, этот вопрос кому-то да и интересен, и, во-вторых, существует некоторое количество заблуждений на эту тему.

Вводные: нам нужен таймер, на Windows, с точностью порядка 1мс, драйвер при этом мы писать не хотим и решения при исполнении которых процессор попытается радикально ускорить глобальное потепление не приемлем.

Есть ли такое решение? Из коробки - нету, но при помощи нехитрых приспособлений наше досадное недоразумение превращается... в точный таймер, конечно же.

Читать далее
Всего голосов 47: ↑47 и ↓0+47
Комментарии54

Как протащить верблюда сквозь игольное ушко, или обновление компилятора С++ на проекте старше 10 лет

Время на прочтение12 мин
Количество просмотров22K

Привет! Меня зовут Колосов Денис, я являюсь разработчиком клиентской части проекта «Allods Online» в студии IT Territory. Сегодня я расскажу о том, как мы решились обновить среду разработки и заодно компилятор на нашем проекте с Visual C++ 2010 на 2019. 

О чем пойдет речь?

1. Как мы докатились до такой жизни и отважились на этот шаг;
2. О сборке вендерских библиотек и всего окружения, которое у нас есть;
3. С какими кастомными проблемами мы столкнулись;
4. К чему это все привело.

Читать далее
Всего голосов 78: ↑78 и ↓0+78
Комментарии29

Архитектура первой PlayStation: центральный процессор

Время на прочтение9 мин
Количество просмотров16K

Краткое введение


Sony знала, что разработка для 3D-оборудования может становиться очень сложной. Поэтому в дизайне своей первой консоли она стремилась к простоте и практичности… Однако всё имеет свою цену!



CPU


В этом разделе мы проанализируем Sony CXD8530BQ — один из двух больших чипов, содержащихся в консоли. Сегодня мы бы назвали его «System-on-Chip».

Происхождение


Сюжет о создании процессора в виде «X спроектирован компанией Y на основе Z при поддержке W» сложно будет рассказать в нескольких предложениях, поэтому почему бы начать с исторического контекста?
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии1

Unity «Best» Practices

Время на прочтение11 мин
Количество просмотров27K

Эта статья родилась из внутреннего доклада для коллег, которые уже достаточно давно занимаются разработкой игр, но только недавно прикоснулись к Unity. Здесь мы собрали фишки и особенности работы с этим игровым движком разной степени капитанскости, почерпнутые из собственного опыта, которые стоит знать, чтобы эффективно им пользоваться и уже никогда ничему не удивляться.

Что такое AssetPostprocessor и чем Animation отличается от Animator? Почему не стоит доверять OnTriggerExit и зачем вам CanvasGroup? Чем хорош GameObject.Find и как вас спасут Property?

Далее в статье обсудим это, а также другие «особенности» работы с движком Unity.

Читать далее
Всего голосов 33: ↑31 и ↓2+36
Комментарии12

Внутриигровые эмодзи: как мы создаем анимации для Rush Royale

Время на прочтение4 мин
Количество просмотров3.9K

Привет! Я Виталий, ведущий 2D-художник, аниматор и специалист по эффектам в мобильной tower-defence игре Rush Royale студии IT Territory. Сегодня я расскажу об одной довольно важной части нашего проекта — эмодзи. Именно благодаря ним игроки могут выразить эмоции в жарких боях за башни — что, на наш взгляд, очень немаловажно.

Чтобы достичь текущего качества эмодзи, мы проделали большой путь. Но обо всем по порядку.

Читать далее
Всего голосов 20: ↑19 и ↓1+20
Комментарии4

Бесплатный левел-дизайн, или как строить ландшафт в реальном времени на UE4

Время на прочтение16 мин
Количество просмотров11K

Всем привет! Меня зовут Влад Маркелов, и сегодня я расскажу, как можно бесплатно и быстро создавать огромные игровые уровни и как в реальном времени строить ландшафт по информации из Интернета.

Но прежде, чем перейти к сухим техническим деталям, будет небольшое лирическое отступление, о чем вообще эта статья и как я до этого докатился.

Читать далее
Всего голосов 23: ↑22 и ↓1+23
Комментарии10

Сжатые атласы в Unity Runtime

Время на прочтение10 мин
Количество просмотров12K

Привет, меня зовут Юрий Грачев, я программист из студии Whalekit — автора зомби-шутера Left to Survive и мобильного PvP-шутера Warface: Global Operations. Кстати, именно о его технологиях мы и поговорим подробнее далее.

Речь пойдет про получение сжатых атласов в рантайме. Для начала мы выясним, что вообще такое атласы, для чего они нужны и какие требования предъявляются к исходным текстурам. Затем рассмотрим самый простой способ собрать в рантайме атлас и оценим результат с технической точки зрения. После этого я расскажу о наших экспериментах с компрессией в рантайме. Наконец, мы посмотрим, что общего у разных алгоритмов сжатия изображений, и подойдем к тому, ради чего статья и задумывалась: поговорим о нашем альтернативном подходе, при котором вообще не придется заниматься пережиманием пикселей в рантайме для получения сжатого атласа.

Читать далее
Всего голосов 35: ↑35 и ↓0+35
Комментарии30

2022 год для мобильного геймдева (и не только): чего ждать и к чему готовиться

Время на прочтение6 мин
Количество просмотров20K

2021 год подходит к концу. И сегодня хочется о том, какой фундамент он заложил на год грядущий в разрезе разработки мобильных игр и геймдева в целом — какие тенденции начали прослеживаться уже сейчас, которые наверняка возымеют долгоиграющий эффект на происходящее в индустрии.

О дефиците железа, IDFA и 5G, влиянии пандемии и статистике в цифрах — обо всем этом подробнее под катом.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность