Обновить

Геймдев

Сначала показывать
Порог рейтинга

Команда Mandragora представила ретро-игру ReStory по починке гаджетов в токийской мастерской по ремонту электроники в середине 2000-х, включая тамагочи, телефоны Nokia, PSP и Walkman. Проект доступен для тестирования перед запланированным релизом в 2026 году.

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Exodus - Эпизод 5: писатель наносит ответный удар

В следующем году должен выйти Exodus - одиночный sci-fi RPG экшен от третьего лица.
Для меня это заочно один из номинантов на игру года, когда бы она не вышла (новые переносы никто не отменял). И дело не в геймплее, дизайне или каких-то эфемерных вещах. Базой для любой RPG всегда являются персонажи, происходящие истории, и мир с его наполнением.

Почему я жду?

  1. Сценарист проекта Дрю Карпишин - человек, который был автором сценария «Рыцарей Старой Республики» во вселенной «Звездных войн». В соавторстве с другими авторами он создал и расширил эту подвселенную. Фанаты и сейчас борются за то, чтобы Disney вернул KOTOR в канон.
    Далее он прописал вселенную и лор для Mass Effect. Что он делает для нового проекта, уже можно догадаться - переизобретает велосипед. И Дрю умеет это делать.

  2. Питер Гамильтон в соавторах. А этот дядька куда опытнее Карпишина в плане написания историй. Первую книгу выпустил в 93-ем, и немало произведений написал циклами, а значит, умеет думать наперед и связывать сюжеты, что и нужно для новой истории. К тому же в прошлом году он уже выпустил книгу-приквел для обсуждаемой игры, а в следующем году ожидается еще одна. Плюс уже есть настолка по вселенной. То есть мир прописан и расширяется. Это хороший показатель.

  3. Деньги на все это веселье идут от Hasbro. Она хочет использовать студию для врыва на рынок видеоигр. Если кто не в теме, это одни из самых старых и богатых производителей игр: Magic: The Gathering, D&D, «Монополия» и многие другие игры под ними. Не считая лицензирования у других правообладателей разрешений на выпуск игр и фигурок. Еще они снимают кино за сотни лямов зеленых.

    Были слухи, что игра должна была выйти в 24-25 году, но она все еще в разработке. Книги выходят. Это придает мне уверенности, что студии позволяют пилить проект до состояния, в котором не стыдно его будет зарелизить и хайпануть на новой интеллектуальной собственности. И вот тут непонятен слабый маркетинг: даже в европейских странах мои знакомые фаны ME пропустили информацию про игру. Либо игру могут перенести еще на год. Думаю, Hasbro начнет маркетинговую кампанию перед релизом, чтобы поднять ажиотаж.

  4. По игровым материалам на сайте разработчиков, слухам, вырезкам из интервью и игровому трейлеру у меня сложилось впечатление, что игра будет гибридом Mass effect и Jedi survivor. Первое и так очевидно - с учетом автора сценария и других ребят в студии (часть людей работала над первым Mass effect и Dragon age). А вторая игра - как референс, потому что разработчики, вероятно, метят на «метроидванию» (а еще крюк-кошка из трейлера словно из игры утащена). Будем честны - сделать совсем неиграбельно - можно, но сложно.

Что стоит ожидать?

Хорошая игра с неплохо прописанной фантастикой. Для меня это нормальная Андромеда, или Mass effect 5, сделанный человеческими руками. И знаете что? Это более чем хорошо, и в такую игру я залечу на несколько десятков часов, несомненно. Надеюсь получить игровой опыт на уровне Киберпанка (когда его поправили) или Экспедиции 33 (когда поборол проблемы движка на своем компе и отклик в бою стал приемлемым  для парирования). 

То есть я не ожидаю лучшую игру на свете, а лишь просто хочу получить хорошую историю и нормальный геймплей с фишечками. И если это будет так, с учетом последних лет в индустрии, крепко-хорошей игры достаточно, чтобы стать лучшей (как бы это не было печально). Но на этот проект у меня ожидания повыше.

Я верю в эту игру, и сами издатели и разработчики верят, ведь в 23-ем году игру презентовал актер Мэттью МакКонахи («Настоящий детектив», «Интерстеллар», «Джентльмены»). Выбор актера интересен с учетом заявленных фишек сюжета (не хочу спойлерить, но концепт описан в интервью Карпишина).

Возможно, и вам пришло время поверить?
Просто сохранить в памяти название проекта, чтобы когда он выйдет, не пропустить один из самых интересных проектов любого сезона. Уверен, новостей игра породит немало.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Печатный журнал «Игромания» выпустит новый номер 12 декабря на Comic Con «Игромир» в Москве. 127 страниц ностальгии и любви к прошлому от любимых авторов. Выпускать бумажный вариант планируют раз в три месяца. Предзаказы и продажи доступны на сайте проекта. Предыдущий номер журнала в бумажном виде вышел в 2018 году.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

Геймеры нашли способы играть в Doom на самых разных устройствах, но замена экрана на термопринтер Epson, который с максимальной скоростью печатает кадры на бумаге для чеков, может оказаться худшим вариантом. По данным Bringus Studios, отображение каждого кадра на распечатке может занять до четырёх секунд.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

В игре Escape from Tarkov на магазине P90 долгое время висела надпись «Потом будет прозрачный» — после релиза её поменяли на «По ходу не будет». Игру делали девять лет, включая восемь лет и три месяца тестирования.

Теги:
Всего голосов 8: ↑8 и ↓0+10
Комментарии2

Оптимизация игр: работа со строками

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

Поэтому приглашаем вас на второй вебинар!

Поговорим о работе со строками с экспертами из индустрии:

  • поделимся удачными (и не очень) историями развития собственных решений

  • расскажем о пулах строк и способах экономии памяти

  • разберём, как ускорить поиск подстроки в строке и почему одна реализация может быть быстрее другой

📅4 декабря
⏰ 15:00

Подробная программа и регистрация доступны по ссылке. Присоединяйтесь и приглашайте коллег!

Теги:
Рейтинг0
Комментарии0

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

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Определение типа fullscreen

Понадобилось мне как‑то определять тип fullscreen для вывода подходящего типа уведомления (звуковое/системное/окном) во время запущенных игр и родился такой код:

    public enum WindowFullscreenState
    {
        None,
        Emulated,
        Shared,
        Exclusive,
        ExclusiveGdi,
        NotOwned
    }

    public static WindowFullscreenState GetForegroundWindowFullscreenType()
    {
        var result = WindowFullscreenState.None;   
        uint dwProcessId;
        D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP query = new D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP
        {
            hWindow = GetForegroundWindow()
        };

        GetWindowThreadProcessId(query.hWindow, out dwProcessId);

        query.hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, false, dwProcessId);
        if (query.hProcess != IntPtr.Zero)
        {
            D3DKMTQueryVidPnExclusiveOwnership(ref query);
            CloseHandle(query.hProcess);

            result = query.OwnerType switch
            {
                D3DKMT_VIDPNSOURCEOWNER_TYPE.D3DKMT_VIDPNSOURCEOWNER_UNOWNED => WindowFullscreenState.NotOwned,
                D3DKMT_VIDPNSOURCEOWNER_TYPE.D3DKMT_VIDPNSOURCEOWNER_SHARED => WindowFullscreenState.Shared,
                D3DKMT_VIDPNSOURCEOWNER_TYPE.D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE => WindowFullscreenState.Exclusive,
                D3DKMT_VIDPNSOURCEOWNER_TYPE.D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVEGDI => WindowFullscreenState.ExclusiveGdi,
                D3DKMT_VIDPNSOURCEOWNER_TYPE.D3DKMT_VIDPNSOURCEOWNER_EMULATED => WindowFullscreenState.Emulated,
                _ =>WindowFullscreenState.None
            };
        }

        return result;
    }

    public enum D3DKMT_VIDPNSOURCEOWNER_TYPE
    {
        D3DKMT_VIDPNSOURCEOWNER_UNOWNED = 0,
        D3DKMT_VIDPNSOURCEOWNER_SHARED = 1,
        D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE = 2,
        D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVEGDI = 3,
        D3DKMT_VIDPNSOURCEOWNER_EMULATED = 4
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct LUID
    {
        public uint LowPart;
        public int HighPart;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP
    {
        public IntPtr hProcess;
        public IntPtr hWindow;
        public uint VidPnSourceId;
        public LUID AdapterLuid;
        public D3DKMT_VIDPNSOURCEOWNER_TYPE OwnerType;
    }

    [DllImport("user32.dll", SetLastError = true)]
    private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

    [DllImport("kernel32.dll", SetLastError = true)]
    private static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId);

    [DllImport("kernel32.dll", SetLastError = true)]
    private static extern bool CloseHandle(IntPtr hObject);

    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    private static extern int MessageBoxW(IntPtr hWnd, string lpText, string lpCaption, uint uType);

    private const uint PROCESS_QUERY_LIMITED_INFORMATION = 0x1000;

    [DllImport("gdi32.dll", EntryPoint = "D3DKMTQueryVidPnExclusiveOwnership")]
    private static extern int D3DKMTQueryVidPnExclusiveOwnership(ref D3DKMT_QUERYVIDPNEXCLUSIVEOWNERSHIP data);
    
    [DllImport("user32.dll")]
    public static extern IntPtr GetForegroundWindow();

Схема использования с типами уведомлений:

WindowFullscreenState.Exclusive -> SendVoiceNotification
WindowFullscreenState.ExclusiveGdi -> SendVoiceNotification
WindowFullscreenState.Emulated -> ShowSystemNotification
WindowFullscreenState.Shared -> ShowSystemNotification
WindowFullscreenState.NotOwned || WindowFullscreenState.None -> IsForegroundWindowSmallerThanScreen ? ShowCustomWindow : ShowSystemNotification

Подробнее можно прочитать про виды захвата экрана тут и тут.

P.S. Некоторые игры (ExclusiveGdi) можно заставить (Emulated) получать системные уведомления через режим совместимости.

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Valve анонсировала сразу три устройства — всё на базе SteamOS, продажи стартуют в начале 2026 года. Цены пока не раскрывают:

  • Steam Frame: это полностью автономная VR-гарнитура весом 440 грамм, которая не требует подключения к ПК или Steam Deck. Здесь можно играть, писать код, смотреть фильмы в браузере с облачными сохранениями. Разрешение на линзу — 2160×2160 пикселей при частоте 144 Гц.

  • Steam Machine: мини-ПК, мощнее PS5 и в 6 раз производительнее Steam Deck. На базе процессора AMD Zen 4 и видеокарты AMD RDNA 3 28CU с 8 ГБ памяти, с 16 ГБ ОЗУ и возможностью запускать игры в 4K/60 FPS. Корпус сделали в стиле Xbox. + Можно кастомизировать внешний вид.

  • Steam Controller: гибрид геймпадов Xbox и PlayStation, но с сенсорными панелями под стиками, как у Steam Deck, для точной стрельбы в шутерах.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Почему сейчас стоит поиграть в Hitman?

В следующем году у студии IO interactive выходит 007 First light, и для меня это стало причиной вернуться в серию Hitman. World of assassination наконец-то можно считать законченным, весь контент доступен. Рекомендую и вам облачиться в костюм и забриться налысо, ниже я объясню почему.

Чем хорош Hitman?

Сами игры про серийного киллера - это квест-головоломка на базе шутера, где перестрелки чаще всего - следствие ошибок игрока или ловушек от разработчиков. Я уже три месяца марафоню разные части, и одинаковая геймплейная база не наскучивает благодаря уникальному игровому опыту на стыке жанров. Да, в играх серии хватает условностей, скриптов и спорных решений (а в оригинале нет хилок и сохранений на уровне). Но, несмотря на слабые моменты, процесс затягивает.
При этом разработчики стараются создавать разнообразные ситуации и условия миссии, чтобы мы меняли тактику. Только с лета время в играх приближается к полутора сотням часов, а сколько этого времени проведено ранее в детстве - не сосчитать.

Лично для меня момент откровения - джунгли в первой части. Ранее я всегда проходил этот этап с читами. Смена обстановки, ситуации и штурмовая винтовка в руках заставляли играть в Hitman как в шутер, за что я постоянно попадал в передряги. И в рамках марафона я решил закрыть гештальт и превозмочь. Пробовал разные тактики, начиная от партизанской войны и заканчивая тайным проникновением на базу картеля. В середине или под конец уровня все равно ждал провал. Но когда после многих часов неудачных попыток выдохнул, изучил территорию, нашел на предыдущих этапах полезное снаряжение и решил эту загадку - вот тогда я максимально проникся главной идеей. Мы - дерзкий хищник, который выслеживает жертв, планирует, маскируется, использует окружение и убивает цели нетривиальными способами, и так выходит из ловушек победителем. Даже если охота ведется на нас - добыча не может превзойти 47-ого. И игроки за это любят серию и ее лысое лицо.

Почему стоит ознакомиться сейчас?

Приключения киллера ставятся на паузу. Когда перезапуск только выходил, я запустил первые два уровня, и мне их хватило с лихвой чтобы насытиться. А уровней было 6, плюс пролог. Сейчас сюжет окончен. Помимо этого много другого контента: цели недели, где ты имеешь одну попытку на устранение цели; миссии обострения - аналог сетевой игры из Absolution, в который я когда-то тоже залипал; особые цели и цепочки миссий для опытных игроков. Хватит надолго. Так что рекомендую тем, кто забросил серию, все же вернуться в нее.

А что же новая игра? Молодой Джеймс Бонд - идейный продолжатель (недаром одной из целей 47-ого был Лё Шиффр из «Казино рояль»). И ознакомившись с Hitman можно оценить, чего ожидать от будущего проекта.

На сладкое, для незнакомых с серией

У Hitman есть free starter. Миссия Сапиеца доступна всем бесплатно. Этого достаточно, чтобы покайфовать и поиграться в плане «а если я попробую сделать вот так?» И если вам понравится, а вернее когда, вы можете взять уже полную версию, или попробовать поиграть в прошлые части. В Steam сейчас скидка до 17 ноября, но сама игра недоступна для РФ (при этом стартер пак доступен). Сейчас игроки чаще всего решают это через сторонние площадки типо Plati.market.

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

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

Попробуйте, а потом напишите в комментариях - какая часть или миссия вам запомнилась и чем. А может вам интересно узнать, как 47- ой связан с матрицей, thief и корейским кинематографом?

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

Сборник эмуляторов под консоли для ПК — теперь можно, без преувеличения, запускать многие игры, не покупая приставки, диски и картриджи.

PlayStation:

PS1 — DuckStation

PS2 — PCSX2 (ARMSX2 на Android)

PS3 — RPCS3 (aPS3e на Android) PS4 — ShadPS4

Xbox:

Xbox — XEMU

Xbox 360 — Xenia

Nintendo:

NES — Mesen

SNES — Snes9x (EX+ на Android) 64 — RMG Gamecube и Wii — Dolphin

3DS — Azahar

WiiU — Cemu

Switch — Ryujinx и Eden

Sega:

Mega Drive — BlastEm

Saturn — Yaba Sanshiro

Dreamcast — Flycast

Ретро-игры:

RetroArch — огромный выбор олдскульных тайтлов для различных консолей.

OpenEmu — сборник игр для таких легенд как Atari 2600, Sega 32X, GameBoy и прочих.

Ares — также полезный эмулятор различных олдовых консолей.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии2

В игровом чате EA теперь нельзя писать сокращение «GG» (Good game) и за это пользователь получает наказание в виде бана аккаунта на 72 часа. Это сообщение подразумевает «хорошую игру», однако у проигравшей команды могла быть плохая игра, и сообщение для них могло быть обидным.

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии4

Блогер показа самый иммерсивный рабочий стол по Minecraft. Ярлыки программ и игр красивенько размещены в слотах персонажа — можно даже открывать «инвентарь» персонажа. Для такого модного сетапа понадобятся три вещи — Windows 11, Rainmeter Skins и Wallpaper Engine. Последние две программы позволяют создать обои на любую тематику.

Теги:
Всего голосов 2: ↑0 и ↓2-2
Комментарии2

Ближайшие события

Представлен симулятор тимлида, который управляет командой горе-программистов и должен успеть сдать проект в срок. Задача — сдать всё и не выгореть, когда полыхают дедлайны. Всё как в реальном офисе: бесполезные стендапы, куча созвонов с заказчиками, горы тасков и код-ревью. Нужно помогать команде сдать проект и при этом не поехать кукухой.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Делимся цифрами Next Fest: смотрите динамику и делайте выводы для своей игры

Я и еще два человека решили открыть данные игры на время Steam Next Fest. Мы отслеживаем:

1. Количество вишлистов

2. Количество уникальных игроков (сколько людей реально запустило игру)

3. Количество показов банера демо версии

4. Пик игроков за день

Интересно посмотреть на динамику этих показателей - как отработают алгоритмы Steam во время фестиваля. Если интересно мониторить, то вот ссылка на Google Sheets. Мы решили сделать для себя, но вдруг кому будет полезно.

Через пару дней после фестиваля документ закроем скорее всего.

П.С. На графике выводятся не абсолютные значения, а разница день ко дню.

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Студия Owlcat Games, известная по серии Pathfinder и Warhammer 40,000: Rogue Trader, запустила бесплатный справочник ресурсов для разработчиков игр. Проект реализован совместно с издателями Midwest Games и Fireshine Games, а также студиями Gaijin Entertainment (War Thunder) и 11 Bit Studios (Frostpunk, The Alters).

База данных размещена на отдельной странице сайта Owlcat и содержит более 350 обучающих материалов. Ресурсы охватывают геймдизайн, программирование, нарративный дизайн, управление проектами и другие направления. В коллекцию входят рекомендации по софту, туториалы, онлайн‑курсы и прочие справочные материалы.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Владимир Ликич — автор книги «Understanding Linux: The Kernel Perspective», обладатель учёной степени в области биоинформатики и просто энтузиаст Unix-подобных операционных систем. В своём микроблоге он иногда публикует различные факты про историю развития этой известнейшей операционной системы. К примеру, 9 октября он написал небольшой (192 слова) пост про терминал DEC VT100.

В ответ на твит оживился другой известный энтузиаст истории компьютерных технологий — Дейв Пламмер, ветеран Microsoft, зарекомендовавший себя в Вебе как автор первых версий «Диспетчера задач» Windows, порта 3D Pinball: Space Cadet на Windows NT и механизма активации Windows XP. Пламмер уже давно ушёл на покой и занимается травлей баек в личных блогах, но не отказывает себе в удовольствии покупать старые компьютеры и мини-ЭВМ.

Пламмер показал собственный экземпляр DEC VT100. Терминал подключён к PDP-11/34, на которой крутится 29BSD.

davepl1968

Конечно, читатель сразу обратит внимание на другое, куда более интересное устройство в кадре. Это игровой автомат в формате мини (так называемый cabaret) известнейшей Tempest. В комментариях у Пламмера на игровой автомат сразу же указал стример Кевин Гриффин.

Tempest — видеоигра 1981 года компании Atari, и её жанр безошибочно определяется как shoot'em up. Более продвинутый геймер даже укажет, что это тоннельный шутер, и будет полностью прав. Напомнить нужно лишь о том, что Tempest — первый представитель данного поджанра, именно здесь были заложены правила и нормы. За Tempest последовали Gyruss (1983) компании Konami и продолжения Tempest 2000, 3000 и 4000 руки Джеффа Минтера. Также Минтер вдохновлялся Tempest, когда разрабатывал TxK (2014).

В Tempest игрок управляет космическим кораблём, который передвигается по игровому полю в виде трубы сложной формы. Игра полагается на векторную графику, которая выводится на экран Quadrascan производства Wells-Gardner. Элементы игры рисуются не пикселями, а острыми светящимися линиями.

Этот экземпляр игрового автомата — уникальный. Как в ответе Гриффину пояснил Пламмер, у него в коллекции есть все три форм-фактора автоматов Tempest (стандартный вертикальный, горизонтальный, мини), но конкретно на этом Дейв никогда не играет. Тому есть очень интересная причина.

Автомат был получен от семьи бывшего сотрудника Atari. Как видно на фотографии, в памяти автомата остались рекорды некоего DFT. Их в начале восьмидесятых на рождественском корпоративе Atari поставил не кто иной, как Дейв Тьюрер, сам автор Tempest. Пламмер не хочет случайно перезаписать этот «автограф» создателя игры.

Теги:
Всего голосов 7: ↑7 и ↓0+10
Комментарии2

Директор Ассоциации развития киберспортивной инфраструктуры (АРКИ) Павел Голубев в беседе с ресурсом «Газета.Ru» рассказал, как киберспорт при правильном подходе может быть полезен для развития детей. В качестве примера специалист привел популярные игры — Dota 2 и Counter‑Strike.

«Командные дисциплины вроде Dota или Counter‑Strike учат коммуникации, взаимодействию в команде, распределению ролей, ответственности за общий результат. Многие игры формируют навык стратегического мышления, умение анализировать ситуацию и принимать быстрые решения под давлением. Кроме того, ребёнок учится работать с информацией в ограниченное время, планировать ресурсы и контролировать эмоции», — отметил Голубев.

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

«Эти качества востребованы и за пределами игр — будь то учёба, работа или коммуникация в реальной жизни. Поэтому игры в целом и киберспорт в частности могут быть полезными инструментами развития, но только если они правильно встроены в систему: через кружки, секции, клубы, где есть тренер, способный направить процесс в нужное русло», — сказал Голубев.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии3

На Хабре продолжается игра «Стартап-кранч» с призами для участников проекта, кто наберёт больше всего баллов. Этот проект вышел ко Дню программиста и будет продолжаться до 15 октября. «Соберите команду, запустите стартап и взорвите рынок в безумной игре ко Дню программиста», — пояснили в Хабре.

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

Гипер Шары теперь умеют играть не только в Линии, но и в Шахматы. Всё началось с идеи - а могут ли шары своими физиономиями подсказывать как они ходят? Оказалось, что очень даже могут. Их мнемоничность позволяет быстро освоить правила игры, даже совсем новичкам в шахматах.

Но есть одно но - в шахматах есть несколько весьма специфичных правил, к которым приделали костыли, нюансы которых даже гроссмейстеры не всегда понимают полностью: первый прыжок пешки на 2 клетки и рокировка нетронутого короля с ладьей. Фактически, эти правила позволяют в специфических случаях чуть ускорить игру, сделав несколько (полу)ходов за один, а в качестве костыля - возможность противнику вмешаться в эти полуходы задним числом.

А самая жесть заключается в том, что правила ходов зависят из-за этих костылей не только от текущего состояния поля, но и от истории прошлых ходов. Не надо так. Выпиливаем это легаси. Оно всё равно на суть игры влияет не сильно.

Ну и по мелочи: пешке нет смысла превращаться во что-то отличное от ферзя, а шахи и маты не имеют смысла - для конца игры достаточно завалить короля противника. Не заметил вовремя угрозы - проиграл.

Можно было бы взять готовую мега оптимизированную реализацию шахматной логики типа stockfish, но оно весит как самолёт. Я же хотел с шариками поиграть, а не на индикатор загрузки любоваться. Не надо так. Закатываем рукава.

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

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

Пусть все состояния доски у нас образуют дерево. Введём функцию "подумать", которая рекурсивно идёт от текущего состояния по этому дереву, выбирая на каждом шаге лучший ход. Дойдя до листа дерева, она перебирает все возможные ходы на +1 уровень. После этого оценки состояний поднимаются до корня по принципу минимакс: один игрок максимизирует оценку, а другой минимизирует. Следующий вызов "думания" может пойти уже по другой ветке дерева, а значит старую ветку можно удалить из памяти, оставив лишь её оценку. И пока игрок думает над своим ходом, бот тоже "думает" гоняя анализ в фоновом цикле.

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

А играть с ним - одно удовольствие. Он очень быстро просекает всякие многоходовочки, не совершая глупых ходов. Но при этом, чем быстрее играет пользователь, тем меньше у бота времени для глубокого анализа, а значит больше шансов его перехитрить. Но это довольно сложно. У меня пока не получилось.

Есть ли у нас тут мастера шах-фу, которые покажут этому примитивному автоботу, кто тут настоящий интеллект?

Теги:
Всего голосов 5: ↑3 и ↓2+2
Комментарии0