Ну вот Google и опубликовал постмортем недавнего падения сервисов. В итоге всё свелось к человеческому фактору.
Выкатили кривое обновление сервиса проверки квот/пермишенов, раскатали на все регионы. Фиче-флага не было, на кодревью проморгали.
Как по мне, сразу куча проблем вскрылось:
- Не было фиче-флага
- Это прошло ревью
- Прошло тесты (или их вовсе не было? 🤔)
- Fail fast подход тут не подошёл. Ключевая программа по проверке квот и пермишенов уходила в постоянный рестарт, что не давало принимать другие запросы
Обещают, что разобьют на модули, будут по дефолту фиче-флаги в false ставить и т. д.
Выкатили кривое обновление сервиса проверки квот/пермишенов, раскатали на все регионы. Фиче-флага не было, на кодревью проморгали.
Как по мне, сразу куча проблем вскрылось:
- Не было фиче-флага
- Это прошло ревью
- Прошло тесты (или их вовсе не было? 🤔)
- Fail fast подход тут не подошёл. Ключевая программа по проверке квот и пермишенов уходила в постоянный рестарт, что не давало принимать другие запросы
Обещают, что разобьют на модули, будут по дефолту фиче-флаги в false ставить и т. д.
🫡17👍3
This media is not supported in your browser
VIEW IN TELEGRAM
А вот это прям прикольно выглядит. Создание музыки, по сути, через код. Сайт девушки.
Делает это всё, как я понимаю, на Штруделе или чём-то похожем.
Делает это всё, как я понимаю, на Штруделе или чём-то похожем.
🤯39🔥16👍8
Forwarded from Disgusting Men
Третьесортные приезжие. Кипр: разработка, бизнес и жизнь в 2025. Подкаст «Отвратительные мужики» 254-1
«Отвратительные мужики» на полтора дня слетали на остров, посетили конференцию GDCy FEST, пригласили нескольких интересных гостей и докладывают из местной студии в двух частях. В первой части Пётр Сальников беседует с Андреем Ивашенцевым (GDCy), Андреем Апанасиком (Balancy) и Георгием Бронским (Nutaku).
— На чем зарабатывают нынешние многочисленные конференции, и зачем они нужны?
— Хайп и страх перед AI, который затмил все остальное.
— Раздутые бюджеты, перегретые разработчики и причины выхода сырых игр.
— Сколько можно держать игроков за идиотов?
— Adult-игры: последняя сфера, куда разработчики до сих пор идут по зову сердца.
YouTube | VK | Аудио | Дзен
Реклама. ООО «Яндекс Музыка». ИНН 9705121040. erid: 2Vtzqv5XnQv
«Отвратительные мужики» на полтора дня слетали на остров, посетили конференцию GDCy FEST, пригласили нескольких интересных гостей и докладывают из местной студии в двух частях. В первой части Пётр Сальников беседует с Андреем Ивашенцевым (GDCy), Андреем Апанасиком (Balancy) и Георгием Бронским (Nutaku).
— На чем зарабатывают нынешние многочисленные конференции, и зачем они нужны?
— Хайп и страх перед AI, который затмил все остальное.
— Раздутые бюджеты, перегретые разработчики и причины выхода сырых игр.
— Сколько можно держать игроков за идиотов?
— Adult-игры: последняя сфера, куда разработчики до сих пор идут по зову сердца.
YouTube | VK | Аудио | Дзен
Реклама. ООО «Яндекс Музыка». ИНН 9705121040. erid: 2Vtzqv5XnQv
YouTube
Третьесортные приезжие. Кипр: разработка, бизнес и жизнь в 2025. Подкаст Отвратительные мужики 254-1
«Отвратительные мужики» на полтора дня слетали на остров, посетили конференцию GDCy FEST, пригласили нескольких интересных гостей и докладывают из местной студии в двух частях.
Наша полка в Яндекс Книгах: https://clck.ru/3EojAH&erid=2Vtzqv5XnQv
В первой…
Наша полка в Яндекс Книгах: https://clck.ru/3EojAH&erid=2Vtzqv5XnQv
В первой…
🔥32🌚5❤🔥2🤮1
Крис Авеллон постепенно камбечится после тех недоказанных обвинений в домогательствах. Присоединился к студии Republic Games, которую основал ведущий сценарист Detroit: Become Human.
Работают над дарк-фентези RPG. Обещают глубокий сюжет, разветвления в истории и несколько концовок.
Интересный моментик: игроки смогут присоединяться к разным фракциям и выстраивать собственный путь героя или антигероя. Мне сразу Dying Light 2 вспоминается, с разработки которой его выпнули, а потом даже не извинились. Может хоть в новом проекте получится реализовать фракции нормально😅
Работают над дарк-фентези RPG. Обещают глубокий сюжет, разветвления в истории и несколько концовок.
Интересный моментик: игроки смогут присоединяться к разным фракциям и выстраивать собственный путь героя или антигероя. Мне сразу Dying Light 2 вспоминается, с разработки которой его выпнули, а потом даже не извинились. Может хоть в новом проекте получится реализовать фракции нормально
Please open Telegram to view this post
VIEW IN TELEGRAM
Eurogamer.net
Chris Avellone joins former Quantic Dream writer at Republic Games to work on ambitious project inspired by "golden-age of RPGs"
Games writer and designer Chris Avellone has joined Republic Games o work on the studio's upcoming release.
🔥37👍9🤔2
О как. Cloudflare прям отдельным постом написали, что РКН блочит их.
Помимо этого:
- Официальных обращений к ним вообще не было
- Hetzner, DigitalOcean и OVH столкнулись с теми же проблемами
Мы в Balancy тоже с проблемками столкнулись, т. к. CDN там. Но сегодня выкатим новую версию SDK, которая будет фолбечить к Клаудфронту в случае проблем с Клаудфларей.
Помимо этого:
- Официальных обращений к ним вообще не было
- Hetzner, DigitalOcean и OVH столкнулись с теми же проблемами
Мы в Balancy тоже с проблемками столкнулись, т. к. CDN там. Но сегодня выкатим новую версию SDK, которая будет фолбечить к Клаудфронту в случае проблем с Клаудфларей.
🫡49😡7😢2😱1🎉1
Я тут в небольшом отпуске, наконец-то есть время попилить свою игрульку. И для моей задумки мне нужно получать инфу об активных окнах в системе. Не спрашивайте зачем это игре нужно, когда будет демка, покажу.
Не знаю как на Маке и Линуксах, но на Винде нужно WinAPI использовать. И, такое ощущение, что за все эти годы его осознанно не делают юзер-френдли.
До этого последний раз тыкал во времена универа, тогда это делал ещё на плюсах. Сейчас надо на C#. Проблем, само собой, меньше. Например, не нужно думать над дескрипторами, типами данных и т. п.
Но концептуальные проблемы остались те же:
- Куча разных методов на каждый чих.
- Нету удобных методов для получения полной инфы по объектам.
- Документация не всегда чёткая. Что очень удивительно для MSDN!
Одна из задач: получить текущие активные окна с их z-индексом.
И тут уже куча проблем:
1. В WinAPI нет в принципе такого понятия как "порядок окон".
2. Можно получить верхнее окно с
3. Можно прям готовый энумератор использовать. Но там нет z-индекса. Везде вижу, как люди пишут, что оно прогоняет от верхнего окна к нижнему. Но в доке про это ничего не сказано.
4. Если окно свёрнуто, то его позиция будет с координатами -32000. Чтоб получить предполагаемый размер и позицию, нужно использовать GetWindowPlacement, который тоже не всегда даёт гарантию.
В общем, довольно много приключений. А это я ещё АПИшку того же Мака не курил, для которого придётся нативный плагин на Свифте писать!
Не знаю как на Маке и Линуксах, но на Винде нужно WinAPI использовать. И, такое ощущение, что за все эти годы его осознанно не делают юзер-френдли.
До этого последний раз тыкал во времена универа, тогда это делал ещё на плюсах. Сейчас надо на C#. Проблем, само собой, меньше. Например, не нужно думать над дескрипторами, типами данных и т. п.
[DllImport("user32.dll")]
static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);
[DllImport("user32.dll")]
private static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
Но концептуальные проблемы остались те же:
- Куча разных методов на каждый чих.
- Нету удобных методов для получения полной инфы по объектам.
- Документация не всегда чёткая. Что очень удивительно для MSDN!
Одна из задач: получить текущие активные окна с их z-индексом.
И тут уже куча проблем:
1. В WinAPI нет в принципе такого понятия как "порядок окон".
2. Можно получить верхнее окно с
GW_HWNDNEXT
, а потом итерировать, пока не закончим. Но если в этот момент будут появляться/исчезать окна, то можно в бесконечный цикл уйти.3. Можно прям готовый энумератор использовать. Но там нет z-индекса. Везде вижу, как люди пишут, что оно прогоняет от верхнего окна к нижнему. Но в доке про это ничего не сказано.
4. Если окно свёрнуто, то его позиция будет с координатами -32000. Чтоб получить предполагаемый размер и позицию, нужно использовать GetWindowPlacement, который тоже не всегда даёт гарантию.
В общем, довольно много приключений. А это я ещё АПИшку того же Мака не курил, для которого придётся нативный плагин на Свифте писать!
🤯21🤣7🔥3🫡2🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
Приключения продолжаются. Следующая задача была в том, чтоб обновлять объекты в игре на основании ивентов системы об изменениях окон. Для этого есть удобный хук SetWinEventHook, хотел бы я сказать, но...
1. Там может прилететь множество событий различных. Есть частично схожие события (
2. Прилетает это всё в другом потоке. Но эт ладно, синхроним через очередь.
3. Не все окна уничтожаются при закрытии. Например, всеми используемый File explorer не вызывает событие
4. Когда происходят действия с окном, то там прилетает указатель. И это может быть как корневое окно, так и дочернее. Окно состоит из нескольких мини-окон под капотом, у каждой свой дескриптор. Поле для поиска, например, это подокно (лол). Приходится GetAncestor'ом брать родителя.
5. Но и это с нюансами. Например, когда тот же File explorer закрывается, то вызывается событие
В итоге, почти всё победил. Остался только баг с меню Пуск. По ивентам не могу отловить его закрытие, поэтому объект в мире игры продолжает висеть. Возможно просто отфильтрую его, чтоб вообще не появлялся.
1. Там может прилететь множество событий различных. Есть частично схожие события (
EVENT_OBJECT_HIDE
, EVENT_SYSTEM_DIALOGEND
, EVENT_OBJECT_DESTROY
, EVENT_SYSTEM_FOREGROUND
). Часть из которых прокает одновременно порой.2. Прилетает это всё в другом потоке. Но эт ладно, синхроним через очередь.
3. Не все окна уничтожаются при закрытии. Например, всеми используемый File explorer не вызывает событие
EVENT_OBJECT_DESTROY
. Чтоб не тратить ресурсы на пересоздания, шелл это окно скрывает, а не убивает, вызывая событие EVENT_OBJECT_CLOAKED
.4. Когда происходят действия с окном, то там прилетает указатель. И это может быть как корневое окно, так и дочернее. Окно состоит из нескольких мини-окон под капотом, у каждой свой дескриптор. Поле для поиска, например, это подокно (лол). Приходится GetAncestor'ом брать родителя.
5. Но и это с нюансами. Например, когда тот же File explorer закрывается, то вызывается событие
EVENT_SYSTEM_FOREGROUND
. При этом там id всегда не тот, который был для события появления окна. Приходится запоминать локально id из последнего такого события. И с ним сравнивать. Если отличается (значит, что новое окно всплыло), тогда старый объект можно уничтожить в мире, т. к. предполагается, что старое окно скрылось.В итоге, почти всё победил. Остался только баг с меню Пуск. По ивентам не могу отловить его закрытие, поэтому объект в мире игры продолжает висеть. Возможно просто отфильтрую его, чтоб вообще не появлялся.
3🔥17😱4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
И к хорошим новостям: на моей 5080 наконец-то нормально завёлся pytorch и aseprite c Retro Diffusion.
- Генерит быстро. Быстрее того же ChatGPT или Джемини.
- Генерить может много сразу, с различными промптами.
Буду на выходных играться. Интересно, сможет ли он нормально спрайтшиты генерить, хотя бы совсем простенькие🤔
В том виде, в котором оно генерит, много мусора, конечно. Для релиза такое не годится, но для прототипа и первых скринов для Стора вполне может подойти.
- Генерит быстро. Быстрее того же ChatGPT или Джемини.
- Генерить может много сразу, с различными промптами.
Буду на выходных играться. Интересно, сможет ли он нормально спрайтшиты генерить, хотя бы совсем простенькие
В том виде, в котором оно генерит, много мусора, конечно. Для релиза такое не годится, но для прототипа и первых скринов для Стора вполне может подойти.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25💩3👍2
Штош. Не получилось засесть. Вместо этого сам пытался нарисовать свою последнюю кошку. Часы только на 1 спрайты. А их нужно десятки для анимации...
- На глаза слишком мало пикселей.
- Тяжело передать порой окраску. К примеру, лапки у кошки белые. Но если так делать, то плохо смотреться будет. Приходится, всё же, носочки дорисовывать.
- Что с носом и ртом делать...вообще не пойму.
Ну и отдельная тема, что приходится идти на допущения в угоду арт-вижена. Обратите внимание на глаза и уши, когда кошка стоит боком.
Я посмотрел рефы по другим играм, там часто глаза и уши нарисованы так, что это не бьётся с реальностью.
В общем, интересно, но сложно. Буду набивать руку😅
- На глаза слишком мало пикселей.
- Тяжело передать порой окраску. К примеру, лапки у кошки белые. Но если так делать, то плохо смотреться будет. Приходится, всё же, носочки дорисовывать.
- Что с носом и ртом делать...вообще не пойму.
Ну и отдельная тема, что приходится идти на допущения в угоду арт-вижена. Обратите внимание на глаза и уши, когда кошка стоит боком.
Я посмотрел рефы по другим играм, там часто глаза и уши нарисованы так, что это не бьётся с реальностью.
В общем, интересно, но сложно. Буду набивать руку
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥36🔥7👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
Рисую UI'ку сам для разнообразия. И тыканье в Aseprite занимательный, я бы сказал, медитативный процесс. А вот настройка префабов интерфейса в Unity всё также отторжение вызывает =/
В этом плане самое приятное время — начало проекта и препродакшн. Почти ничего нет, много чего нужно сделать. Если какой-то аспект надоел, то ты всегда сможешь найти другой момент, который тебе точно понравится.
Есть поле для манёвра. Давненько такого не испытывал😅
В этом плане самое приятное время — начало проекта и препродакшн. Почти ничего нет, много чего нужно сделать. Если какой-то аспект надоел, то ты всегда сможешь найти другой момент, который тебе точно понравится.
Есть поле для манёвра. Давненько такого не испытывал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥31🌭8 4👍1