Mighty Mandate: Ремейк движка Might & Magic 6-8 на Kotlin/JVM (Готова большая демка)
Название
Mighty Mandate
Фокус
Ремейк движка серии игр Might & Magic 6-8 на платформе JVM.
Внимание! Этот проект не содержит и не будет содержать никаких ассетов оригинальной игры. Выхлоп проекта и сейчас и в будущем - альтернативный исполняемый файл,
который работает поверх оригинальной игры, должным образом приобретенной и установленной.
Технологический стек
Платформа: Windows, Linux, Mac.
Графическое API: OpenGL 2.0+
Языки: Kotlin/JVM, немного GLSL и Java
Ключевые библиотеки: jMonkeyEngine 3, mm8leveleditor, FFmpeg & jaffree
Распространение
Открытый исходный код: https://gitlab.com/kkolyan/mighty-mandate/
Свободно скачиваемые сборки для установки поверх купленной оригинальной игры.
Цели ремейка
Кросс-платформенность.
Модернизация: альтернативные разрешения экрана и схемы управления.
Опционально - более богатые возможности моддинга.
В общем-то типичные цели для таких проектов.
+ Ориентиры
− Скрыть
Ориентиры
WoMM
Ремейк движка этой же серии игр (С++). Можно сказать - прямые конкуренты :) Именно эти ребята вдохновили меня на сдувание пыли со старых наработок и разработку демки. Активно разрабатывается. Есть демка, охватывающая практически весь контент MM7.
GrayFace patches
Семейство неофициальных патчей для игр MM6-8, добавляющих в игру современные разрешения, схемы управления и возможности для моддинга. Готово к использованию. Настоятельно рекомендуется для всех, кто захочет поиграть в игры MM 6-8.
OpenXcom
Тоже воссоздание движка, но для другой, широко известной, игры. Готово к использованию, активно улучшается. Настоятельно рекомендуется для всех, кто захочет поиграть в игры семейства XCom. Лично для меня этот проект стал дверью в мир XCom, т.к. в оригинал играть сейчас уже ну слишком неудобно.
Этот проект - ориентир по уровню качества.
Мотивация
Проверить некоторые идеи в области проектирования игр и вообще.
Прививка от приступов ностальгии.
Сделать наконец что-то относительно законченное в геймдев-сфере (да хотя бы демку такого масштаба).
Доказать им всем что JVM пригодна для геймдева (цель труднодостижима, учитывая непритязательные графические запросы проекта - но мы это еще посмотрим!).
======== Текущее состояние =======
Сделана демка сделана с использованием jMonkeyEngine 3 в качестве игрового движка и mm8leveleditor в качестве инструмента доступа к архивам игры. Первые наброски (около 5% от текущей кодовой базы) были сделаны в далеком 2013 году, а достал проект с полки 3 месяца назад.
Большой охват функционала: графический интерфейс, магазины, физика, монстры, диалоги - все выглядит как обычная игра.
Демонстрационные локации (один регион и одно подземелье) созданы в Blender (не без помощи Sprytile).
Основные данные (описания, статы айтемов и т.д.), изображения и видеоклипы загружаются из оригинальных архивов.
Более низкоуровневые данные (масштаб спрайтов, коды типов анимаций, скорости снарядов и т.д.) подобраны эмпирически и заданы в коде.
Хотя эта демка имеет свой микро-сюжет и микро-лор, этот проект не ставит целью создание сиквела, спин-оффа или другой игры. Демонстрационные локации и квесты будут удалены, как только покрытый ими функционал можно будет тестировать на оригинальном контенте.
В качестве основы пока выбираем Might & Magic VI: The Mandate Of Heaven.
+ Почему ММ6
− Скрыть
Почему ММ6?
Чтобы снизить конкуренцию с командой WoMM - они выбрали за стартовую точку мир MM7.
Чтобы дополнить патчи GrayFace: для MM7-8 они лучше, чем для MM6.
Согласно опросам, которые я видел в фан-блогах, это самая народно любимая часть трилогии.
Хотя мне очень нравится вся трилогия (начал играть с 8-ой), 6-ая мне кажется самой гармоничной.
Это не жесткое решение. Посмотрим, фанаты каких частей заинтересуются работой над проектом.
− Скрыть
Что уже есть
одна локация
одно подземелье
один фонтан
пара квестов (один выполняемый)
анимированные интерьеры
анимированные лица персонажей
диалоги
магазины оружия, книг и брони
инвентарь с куклой, статы, скиллы
сохранение и загрузка игры
сундуки
несколько заклинаний: вариации лечения и элементальных стрел
боевка
физика
отдых
монстры (3 градации одного вида) с глупым AI (будем честными - он и в оригинале умом не блистал даже по меркам того времени)
деревья и кусты
вода
параметры монстров, предметов, спеллов, большая часть текста и весь арт загружаются из оригинальных архивов Might & Magic 6 при старте демки
возможность настроить управление, разрешение экрана и дальность отрисовки мира
− Скрыть
Чего нет (а в демке скорее всего и не будет)
звук
шрифты как в оригинале
пошаговый режим
загрузка тонких настроек спрайтов из оригинальных таблиц (из за этого некоторые могут сидеть криво)
миникарта
автозаметки
наемники
спеллы кроме тех, которые можно купить и выучить в демке
зачарования предметов
баффы
ловушки
генерация сундуков и магазинов
много всего по мелочи
и самое главное: загрузка локаций и скриптов из оригинальных архивов
− Скрыть
Багофичи
автоиспользование (клавиша пробел) реализовано в лоб и работает очень криво (особенно что касается сбора трупов). Сделать нормально можно (через Occlusion Queries), но для демки это уже слишком.
---- Скриншоты ----
+ Показать
---- Собственно демка ----
+ Показать
− Скрыть
Все варианты запуска требуют предустановленную Might and Magic VI: The Mandate Of Heaven.
+ Показать
Варианты
Полная сборка (Windows): mighty-mandate-full.zip - закидываем папку из архива в папку с игрой и запускаем mighty-mandate.exe. Включает в себя все что нужно для запуска, кроме оригинальной игры.
Минимальная сборка (Windows, Linux, Mac): mighty-mandate-minimal.zip - закидываем папку из архива в папку с игрой и запускаем mighty-mandate.cmd либо mighty-mandate.sh. Включает в себя только платформонезависимую часть. Все остальное, а именно jdk11+ и FFmpeg, необходимо найти для своей платформы и установить. Тестировал этот вариант только на Windows.
Что может пойти не так
Первый запуск будет дольше чем последующие (на мощном компе минута-две), следующие - несколько секунд.
если у вас два GPU (например такое часто на ноутах), то игра скорее всего выберет Intel - желательно выбрать более лучший вручную. + Вот так
На большинстве современных тачек должно летать, но если тормозит (например старые интегрированные GPU - могут), нажмите несколько раз "-". это придвинет плоскость отсечения видимости к камере и разгрузит GPU.
======== Вакансии ========
До перехода к фазе дальнейшей разработки хотелось бы взять паузу и отдышаться после этого спринта. Так что набор команды не горит. Ожидаю что мы обменяемся контактами и продолжим как только все будем готовы.
Игроки-тестировщики
всегда добро пожаловать тем, кто готов поиграть и порепортить пойманные в процессе баги.
QA-инженеры
нужна команда энтузиастов, которые будут отслеживать степень покрытия контента движком. Это жизненно важно для дальнейшей разработки. Обратите внимание на отличие этой вакансии от расположенной выше - здесь цель не в том, чтобы поймать побольше багов. Этим ребятам надо будет поддерживать общую картину, в значительной степени направляя процесс разработки. Можно к примеру разделить весь мир на "сферы влияния", или организовать процесс как-то еще.
Программисты
объемы работ по программированию, по сравнению с объемами тестирования, довольно маленькие, так что помощь дополнительных программистов не обязательна. Но для снижения bus-factor, было бы неплохо
найти пару разработчиков, которые разделяют мои взгляды на качество кода и наберут достаточно экспертизы и/или мотивации, что бы въехать в существующий код.
Data engineers
будет кстати помощь энтузиастов, которые готовы систематизировать информацию о структуре данных MM6-8. В общем-то уже есть хорошая база, без которой была бы невозможна и эта демка.
Лица с влиянием на топ-менеджмент известной французской компании
kkolyan
> Внимание! Этот проект не содержит никаких ассетов оригинальной игры. Выхлоп
> проекта - альтернативный исполняемый файл,
> который работает поверх оригинальной игры, должным образом приобретенной и
> установленной.
Правообладатели все равно после релиза вам мозги понасилуют, лучше у них разрешения спросить заранее
Mephistopheles
не известны случаи, когда владельцы этой франшизы насиловали мозг некоммерческим мододелам (а формально мой проект - мод, как и фанатские патчи).
не известно ни одного случая вообще, когда правообладатели насиловали мозг разработчикам подобного класса продуктов. все известные случаи были выпуском самостоятельных игр, заимствовавших элементы оригинала (торговую марку, вселенную, ассеты).
известны случаи, когда владелец этой франшизы нейтрально реагировал на крупные фанатские моды.
известны относительно успешные продукты этого класса, которым никто не насиловал мозг.
не, ну в самом деле... это продукт для горстки олдфагов. кому мы нужны)
В общем, я слабо верю в то, что вы предрекаете, так что пока попридержу коней)
Mephistopheles
> Правообладатели все равно после релиза вам мозги понасилуют, лучше у них
> разрешения спросить заранее
Из-за мода? Никогда не слышал, чтобы у мододела были проблемы с правообладателем. Вообще ни разу. Ни у какой игры ни с каким правообладателем.
Мод принадлежит правообладателю игры, если мододел не пытается поднять на этом денег - нет проблем.
Можно привести аналогию - щас на ютюбе масса перформеров исполняют песни Сабатона, Раммштейна и тысяч других групп. Они не зарабатывают на этом денег - и никто абсолютно не имеет к ним претензий. Самые везучие и талантливые даже сотрудничают с авторами исполняемых песен (пример - Сабатон и Радиотапок).
То есть, на самом деле, перформеры все-таки получают доход - но в виде доната/пожертвований. И это попадает под определение "fair use".
kkolyan
> В общем, я слабо верю в то, что вы предрекаете, так что пока попридержу коней)
Не надо в это верить вообще. Человек просто не в теме. Даже если мы допустим, что некий правообладатель захочет подать на вас в суд (ну встал с бодуна и не с той ноги) - если нет заработанных денег, то нет состава преступления, и это ему объяснит его собственный юрист.
Grayf24
> если нет заработанных денег, то нет состава преступления, и это ему объяснит
> его собственный юрист
Но а как же упущенная выгода? вдруг из-за мода все ломанутся старье качать, вместо того чтобы покупать последнюю новинку? Или того хуже, будут из-за мода качать пиратку вместо покупки последней новинки.
Если что, я не пререкаюсь, а правда любопытно.
kkolyan
> Но а как же упущенная выгода?
Упущенную выгоду надо объективно измерить.
Во-вторых, тонкий юридический нюанс в том, что правообладатель и фактический владелец вашего мода - не вы, а правообладатель ММ6.
Таким образом, на вас нельзя подать в суд за то, чем вы не владеете.
В-третьих, если бы на мододела, работающего по принципам Fair use, можно было бы хоть как-то подать в суд - я думаю, кто-то где-то хоть раз, да подал бы.
Но на практике я такого не знаю. В том, что вы делаете, нет состава преступления.
Кстати, есть похожий случай. Есть группа "врачей-хакеров" - они "взламывают" рецепты приготовления лекарств, с тем, чтобы научить всех нуждающихся изготовлять дорогие лекарства дома.
Например, "адреналиновый шприц" для людей, подверженных анафилактическому шоку, стоит 100+ баксов, а дома изготовляется за 10.
Производители лекарств вопят от негодования, клеймят их ворами и грабителями - а поделать ничего не могут. запретить человеку готовить для себя лично лекарства - нельзя. Привлечь "хакеров" к ответу - тоже нельзя, потому что их действия попадают под определение "fair use".
Прошло более 10 месяцев
А видео плейтеста-то не было! Хороший повод апнуть.