Краткая суть игры: вы живете жизнь-книжку в мире меча и магии шпаг, пороха и магии, все вокруг ожидают лавкрафтианский звездец из морских далей, вы делаете выборы и решаете, как это все вас вообще касается :)
В сборку для плейтеста включена вся первая глава игры и треть второй главы (общий геймплей занимает ≈ 4-9 часов).
При разработке мы вдохновляемся игрой "Жизнь и страдания господина Бранте", но создаем свой уникальный проект, густо замешивая творчество Лавкрафта, кельтскую мифологию и дух классических CRPG, где перед игроком открыто множество путей развития. Игра стилизована под художественный биографический роман о главном герое — человеке, известном как Морар. Каждая глава романа посвящена одному из периодов жизни Морара — детству, отрочеству, юности и так далее. От решений игрока по ходу разветвленного сюжета зависит, какие подвиги и низости Морара остались в истории и для кого стал другом или врагом, героем или предателем.
В бета-версии вы проживете первые годы жизни главного героя. Сформируете его характер, найдете его сильные и слабые стороны и познакомитесь с волшебным и мрачным миром, в котором он живет.
Радуйтесь первым победам Морара, переживайте вместе с ним его первые трудности, заводите первых друзей и врагов...
Давно ничего не писал в сообществе, исправляюсь. За это время вышла альфа, прошла презентация и стартанула бета v25 для винды, а сегодня началась бета уже linux-версии.
Зато сразу много контента, можно будет сегодня под чаёк или пивко посмотреть)
Начинаем)
Мини-репортаж с альфы:
Ответы на вопросы пользователей с альфа-тестирования:
И наконец, Официальная презентацияКОМПАС-3D v25:
Хотел ещё материалы от блогеров добавить, но тут и так видео на 2,5 часа, сделаю лучше отдельным постом.
Мне показалось что в последнем посте Logistics_Analyzer "Что если?" и новые функции программы мною не до конца был раскрыт вообще весь смысл анализатора "Что если?", а так же данные были очень корявые и не точные. Сегодня я постараюсь объяснить более детально, наглядно и заодно расскажу о новой функции.
Для начала начнем с данных. Я переработал все данные, создал более грубую но работоспособную модель тестовых значений для программы. Ушел от глобализации на всей карте, в сторону "Меньше объектов, один город, при этом более верные данные".
Новая карта объектов:
Текущая заливка данных, один город и 34 объекта
Сама карта — та же самая, что и была ранее, просто вместо 118 объектов теперь их всего 34, и собраны в одном городе.
Всем объектам была присвоена одинаковая товарная матрица и примерно одинаковые продажи, разница только в том, что один магазин, например, продавал «Сковороды» и у него этот сегмент А, другой продавал холодильники, которые так же попадают в А сегмент, но сковороды у него в С.
Зон доставок я сделал 5 вариантов, т. е. одинаковые зоны будут у 6 объектов, но это не критично, даже хорошо для проведения анализа.
Основной объект который будет разобран в сегодняшнем обзоре
Возьмем за пример объект с кодом ST_MSK_004 (магазин «Таганская»).
У него есть своя зона доставок, которая сложилась исторически.
Историческая зона доставок
Примерно так видит зону доставок логист
Мемом выше можно понять, что зона не оптимизирована. Почему этот 004 магазин доставляет в зоны где тоже есть магазины? Загадка, а впрочем, и нет. Это же тест-данные. Я предположил, что, например, есть один объект, у которого каким-то странным образом падала основная часть доставок, и он отдавал сам курьерку. При этом магазин стал слишком мало приносить прибыли, и аренда взлетела, надо закрыть его.
Переработанное окно анализа "Что если"
Немного переработал интерфейс, дизайн, добавил новые функции и пока что заглушки для будущих умных расчетов.
Выбираем объект 004, ставим учитывать ABC-анализ и анализировать влияние на доставку клиентам и запускаем расчет.
Самое долгое - это влияние на зонирование
Пока грузиться процесс, опишу что такое "Влияние на доставку".
У компании Х есть магазин, который они хотят закрыть, надо понять визуально, какое покрытие и кому отдать кусок от «пирога». Вот это как раз и делает программа. И в этом процессе закрылась основная проблема, с которой я долго боролся, на скрине выше, где показана зона, есть маленькие зеленые точки, это исторические данные, куда были произведены отправки. На их основе программа и строит полигональную сетку для визуализации. А как быть с пустыми местами? Вот она, основная проблема. Чуть позже вернемся к этому.
Как раз расчет завершен, предлагаю посмотреть труды.
Окно товарных запасов
Окно товарных запасов - визуально на табличном примере показываем фактический остаток товара в магазине
Ближайшие объекты
Ближайшие объекты - показывает то куда можно переместить товар, какое расстояние, емкость и доступность
План перераспределения
План перераспределения — это уже предлагаемые распределения остатков с закрываемого объекта на ближайшие по следующей логике:
Проверяем товарную матрицу
Проводим АВС анализ (в будущем добавлю и XYZ)
Проверяем вместимость нового объекта
Если не подошло ни под одно действие, либо проверяем все найденные объекты в зоне, либо отправляем на склад, чуть-чуть логики с логов программы ниже:
Логи наверное скажут все за меня и гораздо больше)
Стоимость доставок
Стоимость доставок - вообще должна считать по объему утилизации трака, сейчас как бы тоже (со скрипом) живой вариант, но есть уже накиданная логика, лежит под фичатоглом, надо проверять в будущем.
Влияние на регион - ничего интересного там нету, кейс без особенностей, программа говорит что все отлично
И вот она, та самая "Вишенка" на торте - влияние на доставку
Рассмотрим два типа карт: общая информация и данные о влиянии на время.
Информация о влиянии на время, как считает программа:
Смотрит 3 точки из текущей зоны доставки по закрываемому объекту:
Самая дальняя точка по километражу
Средняя точка
Ближняя точка 2. Считает время от объекта до каждой из этих точек и берет среднее арифметическое значение
Кластеризует текущую зону на подзоны для новых объектов и делает аналогичное, как в пункте 1+2, добавляя среднее по всем объектам.
Визуализация перераспределения зон доставки
Нажимая на "Синюю" кнопку открывается окно в котором при нажатии на пуск - происходит визуализация перераспределения зоны с учетом объектов и введенных параметров (Учет объектов вне зоны км). Состоит данный процесс из 5ти этапов.
Показываем закрываемый объект
2. Показываем все объекты которые находятся внутри текущей зоны и внешние согласно параметра.
3. Показываем фактическую зону доставок
4. Делим зоны на кластеры. И вот тут самое интересное.
Минимальное приближение
Среднее приближение
Как сказать программе: «Смотри, есть вот такая зона, в ней есть 10, 15 или 20 объектов, подели рисунок на пропорциональные части с учетом оптимальной логистики?» А ведь внутри родительского кластера есть пустые зоны, в которых исторически не было доставок, а мы все равно должны их учесть и распределить.
Долго я думал над этим процессом, множество раз переписывал код, удалял методы. Вроде работают, но программа не понимает, что я хочу от нее. Ну не может она разделить без вершин пустые зоны.
И я придумал. В один вечер я сидел в какой-то компьютерной игре и ставил метки на карте, тут меня и осенило. Добавить больше точек, но не реальных, не исторических, а виртуальные точки для наполнения родительского кластера. Сделать их невидимыми для пользователя, но видимыми для логики программы. Так получается, мы устраняем эти пробелы, и метод начинает определять зоны, при этом делая этот процесс с большей точностью.
Мы находим в начале объекты и рядом с объектами начинаем раскидывать точки с определенной плотностью.
Дальше мы показываем окончательный процесс (распределения кластеров и привязку их к другим объектам).
На примере одного из кластера. Есть магазин на Павелецкой, есть зона которая перейдет к нему.
Отдаляем карту и чисто визуально мы понимаем, да кластеризация прошла успешно.
Красным написано "Маг" т.е. "Магазин" что бы более наглядно было
Внешние магазины рядом с контуром
Да и отдаленные магазины тоже правильно подхватили кластеры.
Какой же экстаз я словил когда руками проверил и убедился в том что да, все работает как и задумано. Как минимум этот процесс автоматизирован. Не надо теперь руками все это считать, собирать карты по крупицам. Работа которая занимает неделю а то и две может быть выполнена за 1 минуту. Это успех.
На моменте первой визуализации я думал: «Это успех», и лучше уже ничего не добавлять. Но потом пришла мысль, маленькая мысль, которая не давала покоя: «А что, если кому-то этого мало, а если надо показать визуально маршруты, точки из расчета?». Имея готовый скрипт JS и логику, мне просто потребовалось скопировать, вставить и дополнить первоначальный код.
Процесс анимирования занимает гораздо больше времени. Программе надо отправить API запрос, получить ответ, так для каждого объекта по 3 раза.
2025-12-15 16:08:02,800 - INFO - STDOUT - 🌍 Построение маршрута через OSRM (карта: yandex)
2025-12-15 16:08:02,800 - INFO - STDOUT - 🌐 OSRM API: попытка 1/2
2025-12-15 16:08:03,675 - INFO - STDOUT - ✅ Маршрут через OSRM: 0.9 км, 2 мин
2025-12-15 16:08:03,675 - INFO - STDOUT - ✅ Зона 21 добавлена: 1 маршрутов, 10 точек полигона
2025-12-15 16:08:03,675 - INFO - STDOUT - 🔍 Обработка зоны 22: facility=True, polygon=9, points=0
2025-12-15 16:08:03,675 - INFO - STDOUT - ⚠️ Зона 22: нет точек доставки, добавляем без маршрутов
2025-12-15 16:08:03,675 - INFO - STDOUT - ✅ Зона 22 добавлена: 0 маршрутов, 9 точек полигона
2025-12-15 16:08:03,675 - INFO - STDOUT - 🔍 Обработка зоны 23: facility=True, polygon=13, points=0
2025-12-15 16:08:03,675 - INFO - STDOUT - ⚠️ Зона 23: нет точек доставки, добавляем без маршрутов
2025-12-15 16:08:03,675 - INFO - STDOUT - ✅ Зона 23 добавлена: 0 маршрутов, 13 точек полигона
2025-12-15 16:08:03,675 - INFO - STDOUT - 🔍 Обработка зоны 24: facility=True, polygon=10, points=5
Лог работы построения маршрута.
Logistics_Analyzer - умеет работать с геодекодированием, но маршруты - извольте, я даже не знаю как их строить. Интересно было бы посмотреть как создается логика построения маршрута под капотом.
Итог:
Мы получаем кластер с тремя ключевыми точками и путями до них, включая полное описание маршрутов.
На третьем этапе программа последовательно демонстрирует каждый новый кластер и прокладывает маршруты (к сожалению, из-за ограничений медиа, я не могу приложить изображения).
Давайте подведем итоги кластеризации и перераспределения зон.
На мой взгляд, это успех. Конечно, есть некоторые недочеты, но они едва заметны и будут быстро исправлены. Логика работы выстроена, отчет динамичен. Теперь остается только проверить все на практике и собрать для него ОС от пользователей.
Есть план развития дальше, плюс устранение мелких недочетов. Первую бету версию планирую компилировать в начале марта 26г. Кому ее предлагать - это уже другой вопрос. Буду решать в момент возникновения.
В интерфейсе произошли некоторые изменения. Например, я перешел от скучной бежевой темы к более темным цветам. Часть стилей выделил в QSS и настроил их подключение в Main_window. Меню дашбордов стало напоминать Power BI с Excel, и были внесены другие мелкие правки.
Работаю над проектом по вечерам, уделяя этому 2-3 часа. Основные алгоритмы визуализации были написаны давно, но я долго не мог понять, в чем проблема. То данные распределялись неверно, то пробелы не учитывались. В начале реализации функции был у меня дата-файл, где зоны были более реалистичными, чем сейчас. При перераспределении их покрытие составляло всего 30%. То что "Ну очевидно можно сделать вот так" она делала "Тебе очевидно, а мне нет. Хочешь - делай сам".
Всем спасибо за прочтение. Пишите комментарии кто и что думает. Задавайте вопросы - отвечу)
Привет всем! Сегодня я хочу поделиться с вами очень интересной новостью — это лаунчер для Minecraft Bedrock. Если вы когда-либо мечтали об удобном способе управления версиями и настройками игры, то вы попали по адресу! Я расскажу, как установить этот лаунчер и настроить его под себя.
Первое, что вам нужно сделать, — это подписаться. Это простое действие позволит вам оставаться в курсе всех новинок. Перейдите по ссылке в описании на сайт Базарок лаунчера, где вы сможете его скачать, а также задонатить разработчикам, если вам понравится.
На сайте все довольно просто: после перехода нажмите на кнопку «Download», чтобы скачать установщик лаунчера. Когда загрузка завершится, откройте установочный файл. Если появится предупреждение от Windows о том, что система защищает ваш компьютер, не переживайте! Я проверял этот лаунчер с помощью антивирусов — он абсолютно безопасен. Просто нажмите «Подробнее» и выберите «Выполнить».
Далее вам будет предложено выбрать язык и подтвердить условия использования. После этого выберите путь установки — вы можете оставить по умолчанию или указать другое место. Если хотите, чтобы ярлык лаунчера появился на рабочем столе, не забудьте поставить галочку.
После установки вы увидите лаунчер в формате, который отличается от обычного Java-лаунчера. Он выглядит немного темнее и имеет похожий интерфейс, что делает его удобным для пользователя. Вы сможете переключаться между разными версиями игры в любое время, а также запускать Minecraft Dungeons, если он у вас есть.
После первого запуска вам потребуется зарегистрироваться через Microsoft, чтобы получить доступ к Minecraft Bedrock. Также вы сможете менять свой никнейм на любой другой, что даёт возможность поиграть под новым именем.
Теперь давайте поговорим о настройках. В лаунчере есть несколько вкладок. Первое — это язык. Другая вкладка отвечает за облик лаунчера — вы можете установить уникальный фон для лаунчера, выбирая из предложенных тем. Например, во время праздников можно менять фон на что-то тематичное.
Если вы любите экспериментировать, можно включить бета-версию лаунчера, чтобы получить доступ к новым функциям раньше остальных. Также вы можете оставить лаунчер открытым во время игры, что некоторых пользователей может устроить.
На этом всё! Теперь вы знаете, как установить и настроить лаунчер Minecraft Bedrock. Будьте уверены, что настройка его под себя принесет вам много удовольствия, а ваш игровой опыт станет намного лучше. Удачи в ваших приключениях в Майнкрафт!
Волна генерации с помощью LumaAI очень долго меня искушала и я таки искусился - попросил Luma оживить обложку своей книги. Ну чо могу сказать, сама идея мне понравилась. Финал только чуточку подкачал, хотя, тоже в тему сюжета произведения получился.
До последнего времени только встроенное приложение "Цифровое благополучие" в Android могло глубоко управлять такими функциями телефона, как: экран, звук, уведомления.
Через цифровое благополучие можно настроить время тишины и спокойствия, когда телефон игнорирует все входящие уведомления, звонки и смс, кроме тех, кто находится в специальном списке.
Также через цифровое благополучие можно было настроить режим спокойствия, когда цвета на экране становились чёрно-белыми, звук отключался и вы могли сосредоточится на выполняемой задаче, не отвлекаясь на постоянные уведомления в телефоне.
А ещё можно было настроить специальный режим сна, что особенно важно в наше неспокойное время.
Функции приложения "Цифровое благополучие"
Это были привилегии встроенного в Android приложения Digital Wellbeing. Никакие иное стороннее приложение не могло внедряться в работу операционной системы, чтобы управлять этими функциями.
Например, это приложение могло отключать функцию Always On Display, отключать звук, уведомления, делать экран чёрно-белым и даже отбирать возможность разблокировать телефон, пока не наступит определённое время.
Но вышла свежая версия Android 15 Developer Preview 2, в которой разработчики внедрили новую команду системного API, который назвали ZenDeviceEffects.
Это значит, что теперь любой разработчик приложения, использовав команды нового API ZenDeviceEffects также получит полный контроль над всеми функциями, которые ранее были доступны только для Digital Wellbeing.
Команды нового API ZenDeviceEffects
Это удобно, потому что многие пользователи отключали, или даже удаляли функцию "Цифровое благополучие" с телефона.
Удаляли, потому что в сети гуляют инструкции по оптимизации работы Android, которые советуют отключить эту функцию, потому что она разряжает батарею.
Уверен, что после выпуска финальной версии Android 15 в магазине приложений появится новый класс программ, которые будут следить за вашим распорядком дня и ограничивать работу телефона в определённы период или если вы оказались в конкретном месте.
А учитывая повсеместное распространение нейросетей и алгоритмов ИИ, эту функцию могут отдать им, чтобы смартфон заботился о вашем самочувствии.
Лично я предпочитаю самостоятельно решать подобные задачи, но многим понравится, что смартфон напоминает им больше спать, отдыхать и меньше работать для сохранения здоровья.
Ждём релиза Android 15 вместе с новыми командами API ZenDeviceEffects.