Привет, DTF! Меня зовут Саша Тюпин, и последние три с половиной года я делаю пошаговые стратегии. Полгода назад мой друг Иво сделал про это пост и я обещал написать про все подробнее. Собственно, вот оно.ПредысторияВ обычной жизни я фронтенд-разработчик, а геймдейв это хобби, которым я занимаюсь последние пять лет. Первый проект, клон The Binding of Isaac, до релиза не дожил и был закрыт из-за дефицита хороших идей.Одно из последних видео этого проектаЛуна 0После разочарования в рогаликах я переключился на стратегии.Для первого подхода я взял идею «как Цива, но с нормальными одновременными ходами». Большая проблема пошаговых стратегий в слоупочном мультиплеере — один ходит, остальные курят. Многие пытались «надстроить» одновременные ходы в том или ином виде над базовым геймплеем (Heroes 3 HD+, Civilization 5), но нормально получалось мало у кого. У Master of Orion 2 разве что.Я хотел сделать игру изначально заточенную под одновременные ходы. И... сделал! Ну как, сделал демку с 4 юнитами и парой заклинаний. Зато с каким-никаким графоном (особенно горжусь шейдером воды), ИИ и мультиплеером. Можете сами попробовать, даже с друзьями.Игра получила название Луна, с ударением на у!В результате выяснилось что играть не очень-то весело. У самой концепции одновременных ходов много проблем — игрока раздражает отсутствие мгновенной реакции на приказы, интерфейс получается запутанным, а осмысленно реагировать на действия противника сложно, потому что их надо, для начала, угадать.Короче, пришлось признать поражение и списать убытки. Потрачено два с половиной года времени (не целиком, я работаю фултайм), и примерно 350к рублей на художников.Чему я научился:Если какая-то лежащая на поверхности идея за все время существования игр не была нормально сделана, то весьма вероятно с ней что-то не так и стоит получше подумать о подводных камнях, хорошо исследовать попытки реализации и накидать несколько прототипов на коленке.Даже самому лучшему художнику нужен арт-директор. Нельзя просто отдать список ассетов и ожидать что он придумает что-то крутое и оригинальное самостоятельно и впишет это в твой мир. Его нужно менеджерить и это большой труд. Если этого не делать, то лучшем случае выйдет максимально базовый и унылый сеттинг, в худшем — набор несвязанных картинок, которые выглядят понадерганными из разных игр.Профессиональные художники, которые могут снять с тебя хотя бы часть этого труда, стоят дорого (минимум $25/час, я думаю), неохотно берутся за небольшие проекты и к ним стоит очередь. Вывод — к созданию арта нужно приходить максимально подготовленным, со списком ассетов, множеством рефов и продуманной стилистикой. Или рисовать все самому.Лучше и быстрее кодить. У меня есть принцип «не гонись за движками, бери то, в чем уже разбираешься», так что я использовал тот же язык что и на работе — JavaScript (а потом TypeScript) и DOM/WebGL. Кое-что даже в резюме потом вписал, например опыт с Node и Postgres. А шейдером для создания волн и берега до сих пор горжусь.Луна 1Примерно после месяца размышлений, я решил что все-таки хочу сделать 4х-стратегию, но по более привычным лекалам. Что я сделал:Выпилил всю тему с одновременными ходами и вообще ориентацию на мультиплеер. Основная задача — сделать играбельный и интересный сингл, мультиплеер потом можно докрутить, архитектура позволяет.Упростил графическое решение, все рисую сам, активно использую спрайты-заглушки. Заказывать что-то буду, когда наберется пул ассетов и нарисуется стиль.Добавил тактические битвы. Я считаю что это краеугольный камень 4х-стратегий, а хороших реализаций в последнее время не было, все какое-то кривоватое в угоду тому мультиплееру (я смотрю на тебя Endless Legend).В этот раз дело шло значительно быстрее — внятный фокус, упрощенный процесс, много наработок. Уже за полтора месяца я сделал больше чем за год работы над предыдущей версией. Название менять не стал — мир тот же, да и предыдущая версия на полноценную игру особо не тянула.Первый публичный скрин этой версииЧто планируетсяВообще, ядро игры взято из Master of Magic, но я бы не стал называть Луну духовным наследником MoM. Во-первых это звучит глупо, во-вторых все существующие духовные наследники и ремейки MoM с треском проваливались или забрасывались, в-третьих игре все-таки скоро 30 лет и многие подходы там уже порядком устарели.Master of Magic SimTex / MicroProseИгрок берет на себя роль локального божества с одним городом и небольшим количеством последователей, цель которого «взойти» и стать правителем мира Луны. Он развивает города, нанимает войска и героев, захватывает чужие территории, зачищает пещеры, исследует заклинания, плетет дипломатические интриги и все такое.Несколько фич на которые я хочу сделать упор:Разнообразие юнитов и их способностей. Поскольку затраты на создание юнита это всего один спрайт, имеет смысл сделать их побольше и поинтереснее. У каждого юнита должна быть хотя бы одна пассивная способность, а у значительной доли и активные. Мне в этом плане очень нравится серия King's Bounty (2008).Менеджемент городов. Изначальное поселение принадлежит какой-то одной расе, но можно «подселить» до двух других, если они есть в вашей империи. Это откроет новые строения и юнитов, а так же специальные постройки других рас. Таким образом, города получают разные билды. Плюс игра позволяет управлять специалистами в городах вручную и, конечно, разные существа справляются с разными задачами по-разному — образованный драконоид будет значительно лучше смотреться на позиции городского заклинателя, нежели тупоголовый тролль.Развитие героев и нашего божества. С героями все понятно — уровни, скиллы, артефакты, маунты. А вот наш аватар редко в каких стратегиях дают развивать. Я планирую сделать ему как минимум уровни и скиллы, которые определяют в каких сферах лежат его магических таланты. От них будет зависеть какие заклинания доступны для исследованияИскуственный интеллект. Поскольку игра преимущественно однопользовательская, он должен играть получше тапочка, не совершать тупейших ошибок и демонстрировать превосходство не только в количестве войск и ресурсов. Эта часть самая сложная и я не уверен, что с ней справлюсь, но буду пытаться.Менеджмент городаЧто я уже сделаноВообще, немало! Но еще больше работы впереди.Есть самые-самые ключевые механики — карта, передвижение и манипуляции армиями, города, их захват и развитие. Игру можно выиграть, проиграть, сохранить и загрузить.Отдельная вселенная это тактический бой. Там тоже много чего есть: передвижение, рукопашные и дистанционные атаки, ИИ, окно победы или поражения и отражение результатов боя на основной карте.Сейчас я работаю над базовым ИИ на стратегической карте. Это не только одна из самых сложных технических задач в игре, но последний кусочек паззла с которым можно будет сыграть партию от начала и до конца. Да, это будет скучная и маленькая игра без контента и какой-либо прогрессии, но это большой шаг.Инструменты разработкиПоговорим про техническую часть. Луна написана на JavaScript (а точнее TypeScript) и работает в браузере. Это должно обеспечить хорошую портируемость через инструменты вроде Electron и Chromium Embedded Framework, распространять игру через веб я не планирую, кроме, может быть, демок.Стратегическая и тактическая карты рендерятся маленьким самописным движком через WebGL. Все интерфейсы — React/Effector. Ядро, обрабатывающее игровые события — чистый TS.Восемь тысяч спрайтов в 60 FPS тянем и ладноПоскольку инспектора, как в Юнити, у меня нет, довольно часто дописываю всякие инструменты в отладочную панель чтобы следить за теми или иными частями состояния игры или проводить эксперименты.Так видит мир ИИ — для каждого гекса он оценивает угрозу, выгоду от захвата и суммарный рейтингАрт и анимацияКак вы уже могли заметить, я выбрал пиксель-арт. Основных причины две:Я не особенно люблю 3D, не умею и не хочу с ним работать. Стратегические игры вообще мало что выиграли от перехода на 3D. Ну да, вода покрасивее стала и камеру теперь можно зумить и крутить, но читаемость упала на дно. В новую цивилизацию или Endless Legend совершенно невозможно играть без кучи бейджиков, которые стыдливо прячут на официальных скриншотах. Без них юнитов не отличить друг от друга, а стратегические ресурсы не найти на карте. Но красиво, да.Я могу рисовать пиксель-арт сам! Ну да, не так хорошо как профессиональный художник, но хоть глаза не вытекают. А когда сам в чем-то разбираешься, то и дать внятные инструкции профессионалу проще.ЭлементалиАнимацию юнитов я делать не буду. Вернее не буду делать новых кадров — на них нет ресурсов — только перемещение и спецэффекты. Подобный подход много лет применялся в покемонах и никто не умер. Например, так выглядит анимация атаки:И там цифры вылетают еще!Сейчас, если юниты не двигаются, картинка выглядит несколько мертвой, но я планирую это решить за счет движущейся воды, лавы, тумана, светляков, мерцающих аур, частиц заклинаний и тому подобного.Чтобы у игры было свое лицо, я применил один простейший прием — изменил время действия на вечные сумерки, сделал свет голубым, а тени коричневыми. Мне кажется это выгодно выделяет игру из ряда стратегий, где действие происходит солнечным днем с теплым светом и зеленой травкой.На спрайтах окружения это особенно хорошо заметноМузыка и звукВообще не знаю что с ними буду делать. Где-то до старших классов я воспринимал звук как опциональную часть игр и обычно играл с выключенными колонками. Уже потом пришло понимание что это важная часть игры. Найму композитора или типа того.ЛорОн есть. Я отношусь к лору довольно утилитарно, как к оправданию тех или иных механик. Тем не менее, я продумал космологию, географию, основные правила мира, пантеон и т.п. Расписывать я все это не буду — без самой игры читать такое обычно неинтересно, да и все еще сто раз поменяется в угоду геймплею.Один из претендентов на восхождение Eugene LamantineНикакого сюжета, кампании или даже сценариев в игре не предусмотрено, только игра на случайных картах.Далекие планыЯ мечтаю, что Луна станет моим долгоиграющим проектом, хорошо бы лет на 10 — выйдет в ранний доступ, соберет небольшое уютное комьюнити и будет долго-долго развиваться и обрастать фичами. Но тут уж посмотри как пойдет.Целевая платформа — Стим, если все будет прям шоколадно, то буду дальше думать. На Свитче, конечно, было бы круто зарелизить.Кстати, торжественно обещаю, если буду выпускать игру в Стиме, то там сразу будет русский язык. Для меня очень важно русскоязычное стратегическое комьюнити, даже если оно принесет не так много денег.Где следитьЕсли все написанное показалось вам хотя бы отдаленно интересным, то предлагаю подписаться на мой Телеграм-канал, это мой основной способ связи с комьюнити. Есть еще Твиттер, там все то же самое, но в 10 раз короче и на английском.И, наконец, Ютуб. К сожалению, у меня больше нет времени на съемку новых видео — работа, учеба, все дела — тут уж или игру делать или видео снимать. Тем не менее, пару девлогов я успел запилить. Там довольно интересно: Что-то прям большое может и на DTF напишу. Например статья по ИИ для стратегий не помешает, мне кажется, такого материала в сети мало.НапоследокЯ не ставлю себе никаких сроков, так что на вопросы по ним ничего ответить не смогу. Разработка игр для меня это не работа, а клевое хобби. Или образ жизни уже. Займет разработка еще пять лет — ну и ладно, главное чтобы это были интересные пять лет.