Кораблестроение в космоопере

    Мы делаем игру, симулятор кораблестроения в космоопере. Первая статья с ранним видением игры вышла еще в октябре 2019 года, сейчас май июль 2020. Как изменился проект за это время, что получилось сделать, где возникли затруднения, все это в статье.



    Что сейчас есть и работает


    Симулятор галактики


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

    В этой примитивной галактике выявились две с половиной экологические ниши. Это максимально дешевый корабль с пушкой, обязательно хоть с какой-нить пушкой, для уничтожения совсем невооруженных кораблей. Более крупный корабль, но достаточно дешевый, чтобы успевать размножаться под прессингом суперхищника. Суперхищник, вершина пищевой цепи существующий в единственном экземпляре, когда «рождается» второй суперхищник, они рано или поздно встречаются и снова остается только один. Если добавлять больше кораблей, то происходят вымирания до стабильных 2-3 видов.

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

    Симулятор боя


    В симулятор боя получает ссылки на корабли и проводит бой. Бой идет с динамическим шагом по времени, у активных модулей есть период активации (кд). Шаг времени в симуляции, это время до активации следующих модулей.

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

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

    Визуализатор боев


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

    Тяжелая гифка


    Логи и БД


    Мы выбрали в качестве базы данных SQLite и JSON. Как-нибудь скрывать БД не будем, копание сторонними инструментами только приветствуется.

    Статистика


    Сейчас показывает печальку только графики количества кораблей. Недавно ничего не показывало. Одна из важнейших частей игры на самом деле. Именно здесь мы следим за судьбой нашего творения.



    Конструктор кораблей


    Работает. Нам даже нравится, как она работает.



    Что мы хотим добавить


    Роли и биомы


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

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

    Описания


    Сейчас очень мало описаний модулей и функций модулей. Букв в проекте катастрофически мало. А еще, мы не умеем писать литературный английский текст. Решили все технические надписи на английском, а описания и другие пространные тексты на русском. Потом переведем.

    Развитие технологий и модулей


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

    Государства


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

    Сюжетный режим


    В этом режиме, должна разворачиваться эпичная история. Игрок — инженер в только что созданной кораблестроительной корпорации, совсем не владелец. В начале одна известная система и заказ на разведывательный корабль. Далее расширение изученного пространства, основание первых колоний в других системах (заказы на колониальные корабли). Первые торговые корабли, первые пираты, первые конвойные корабли, взрывное расширение галактики и торговли. Государств вначале не будет, когда они появятся, начнутся межгосударственные войны и заказы на тяжелые корабли.

    Игрок не управляет корпорацией, он «всего лишь» главный инженер одной из дизайнерских команд. Если корабли игрока не будут продаваться, рейтинг команды будет низкой и заказы на тяжелые корабли не будут доступны. Тут нет условия проигрыша. А за успешные, массово продающиеся проекты выдадут премию и откроют заказы на большие корабли.

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

    Падение


    Cюжетно обоснованный ресет технологий и модулей. Взрыв насилия и уничтожения, охватывает галактику, уничтожая промышленность и знания. В последующие Темные Века разрозненные выжившие, прозябают на осколках былого. И каждый имеющий хотя бы два корабля, будет называть себя «Императором Человечества». А ведь у игрока целая верфь (или не совсем целая), в это время можно основать собственное государство. Правда производственные цепочки развалились, корабли придется собирать из из разнообразных обломков и простейших материалов.

    Особые модули для кораблей


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

    Лостех. Утерянные технологии времен до Падения, еще долго в галактике будут летать корабли с модулями которые больше не воспроизвести. Лостех по мере игры будет образовываться сам собой, просто от устаревания, закрытия производств и ресетов технологий. Раньше игрок казуально строил из этих модулей, а теперь это редкий невосполнимый ресурс.

    Алиентех. Иногда в галактику прилетают из других галактик и оставляют ценный лут. Или кто-то из нашей галактики слетает в другую галактику и привезет интересности. Или даже целый межгалактический торговый караван.

    Генератор кораблей


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

    Мультиплеер


    Думаю можно сделать легко(легко? мультиплеер? ну ок), достаточно прикрутить выгрузку статистики и загрузку дизайнов на сервер. Мультиплеер также видится мне основным источником заработка после запуска игры. Мультиплеерная галактика будет работать 24/7 и загруженные дизайны кораблей будут бороться за выживание. Тут нужно больше экологических ниш, даже с ролевым поведением кораблей и биомами может быть маловато.

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

    Звук


    Звука нет. Надо бы добавить.

    Графика


    Наше изделие, на этом этапе сложно полюбить глазами.

    Изменения проекта по сравнению с первой статьей


    Теория надежности. Сначала я хотел, чтобы надежность кораблей имело большое значение. Это пришлось отложить на потом, когда игра будет работать в «Большом» варианте.

    Массивная симуляция. Судя по опросу, большинство неготово включить симуляцию на весь день. С другой стороны, я не хочу терять длительную симуляцию для большей статистики. Если игра будет играться только с длительным числодроблением, мы будем терять новых игроков. Поэтому в начале игры будет небольшая галактика, расширяющееся по мере игры. И будет мультиплеерная галактика 24/7.

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

    Ситуация с проектом


    Готовность проекта


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

    Распределение усилий


    Вся игра это алгоритмы, которых много много МНОГО. Графика, сторителлинг, UX/UI все вместе занимают процентов 30% работы. Это распределение на самом деле вынужденное, ведь без алгоритмов игра неработает совсем, и наш контент это алгоритмы. Все это время мы работали чисто над тем, чтобы запустить игру. Прототип собрали за целых три месяца! Проект даже сейчас не совсем MVP, после года работы.

    Очень многое нужно было сделать по другому, но… Для этого надо отодвигать выход. Когда будущее проекта прояснится, перепишем набело.

    Режим работы


    Работаем по вечерам в качестве хобби. Работаем вдвоем, по два часа вечерами в будние дни. За все время работы (начали в августе) наработали часов 500 всего. Такими темпами понадобится лет 10 до реализации хотя бы основных идей.

    Мораль команды


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

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

    Планы


    Деньги. Мы так не доживем до релиза. Жизнеспособными мы признали два варианта набрать денег, а потом решили их скомбинировать. Первое найти инвестора или издателя и второй краундфандинг через Кикстартер. Если первый получится, то краундфандинг будет с красивыми картинками и большей рекламой, иначе краундфандинг будет победнее. Если ничего не получится… То наверно просто откроем исходники и оставим так.

    Когда игра будет запущена, продавать хочется не подписку или «прем», а конкретно вычисления. Типа пак на 100 часов вычислений, это время используется вами для симуляций поведения корабля в разных ситуациях со всеми видами других кораблей в галактике. Но до этого нужно дожить и не факт что это хорошо зайдет.

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

    Раннее видение на хабре приняли хорошо. Но в тот момент, была голая идея. Главный тест начинается сейчас. Скоро мы получим ответ стоит ли продолжать.

    Ссылки


    itch.io ссылка на скачивание игры.
    discord ссылка на сообщество в дискорде. Чатик, новости, первый игровой евент.

    deviantart.com/purbosky КДПВ отсюда.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 20

      +4
      Тот случай, когда ждал интересный пост про процедурную генерацию кораблей и сюжета (космоопера же), а получил что получил.
        –4
        Я тоже этого хотел. Но у мена закончился энтузиазм. Или я сейчас получу положительное подкрепление или все.
          +5
          Хабр не та площадка, на которую можно идти за вдохновением и моральной поддержкой. Сюда лучше за критикой обращаться.

          Напишите пост на DTF, там больше шансы на поддержку.

          И как «матёрый» инди разработчик (8 лет пилю одну игру), советую вообще не надеяться на поддержку или понимание. Если есть внутри огонь и собственное желание пилить — пилите. Если их нет, то никакая внешняя мотивация их не даст. Будете только страдать.
            0
            и что сколько заработал за 8 лет на игре?
              +2
              Сложно сказать. Игрушка не столько для профита, сколько для опыта и экспериментов делается. И пережила довольно много всего уже :-D

              Ну вот за последний год игра заработала 289519 RUB грязными. Причём у игры последние года 4 нет маркетинга никакого, народ сам как-то приходит.

              В золотые месяцы было и по 1500$, чёрная пятница стабильно около 1000$ даже сейчас даёт.

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

              Статистика игры открыта: the-tale.org/statistics
                +1
                О, так это вы автор этого клона Годвилля? Как вы решились на создание?
                  +2
                  Сказка такой же клон Годвиля, как Warcraft клон Red Alert :-D

                  Вопрос «решиться» вообще не стоял — кто не рискует, тот не пьёт и мечту не найдёт.

                  Просто совпало много факторов.

                  — Всегда хотел создать симулятор какой-нибудь вселенной.
                  — Нужно было проверить границы возможного.
                  — Нужен был полигон для экспериментов, которые опасно делать в коммерческих проектах.
                  — Wargaming стал превращаться в то, чем стал сейчас.

                    0
                    Какого рода экспериментов?
                      0
                      Разного: архитектурного, геймдизайнерского. Иметь полностью подконтрольный и понятный для себя проект очень удобно.

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

                      habr.com/ru/post/471278
                      habr.com/ru/post/459930
                      habr.com/ru/post/201680

                      Это то, что более-менее удалось. Были и неудачные попытки, от некоторых проект до сих пор страдает (например, неудачно навернул лишний слой абстракций над моделями Django).

                      В геймдизайне я тоже много экспериментировал. Для незнакомых с игрой больше всего заметна будет монетизация: подписочная модель, возможность полностью купить игру разовым платежём или отказ от монетизации энергии (которая неплохо денег приносила).
            +4

            Это что, шантаж?!

              0
              Почти. Ровно год проработал на чистом энтузиазме. Но это кончилось.
              Нужно заправиться, увидеть что все это небессмысленно.
          +2
          Вы молодцы! Мой аналогичный проект пока что находится на «бумажной» стадии.

          Постараюсь поддержать — раз Вы пишете:
          люди пытаются играть в то что есть сейчас


          То, возможно, стоит попробовать самим начать играть в игру и добавлять в неё то, чего в первую очередь не хватает для большего интереса. Ну или послушать этих первых игроков.
            –3
            Да я ем свою «собачью еду».
            В первую очередь сейчас нехватает генератора кораблей, игроку нужно дать цель. Сейчас игра идет с самим собой. Делаешь корабль, потом еще один корабль, смотришь кто круче. Потом делаешь еще корабль который побьет этих двоих. Сделать четвертый корабль который выживет и размножится уже намного сложнее. Пятый корабль который сможет одержать безоговорочную победу, это уже «импоссибру». Ну или ваши первые корабли были очень плохими.
            Еще нехватает лучшего туториала, люди теряется, не находят как запустить галактику и переключаются на что-то поинтереснее.
            Мы знаем над чем нужно работать… Мы это добавим в ближайшее время, все это будет, просто годовщина проекта была слишком важной датой на которую завязано слишком многое в плане морали.
            0
            А на нестареющую классику Master of Orion II: Battle at Antares не смотрели?
              0
              МоО я как-то совсем пропустил. Но это же 4Х стратегия, жанр довольно другой и уже устоявшийся. Есть планы взять некоторые элементы этих стратегий и все.
                0
                Но там таки очень вменяемый конструктор кораблей
                  0

                  Автор хочет конструктор посерьезнее — броню туда, лазеры туда, рельсы туда, а в МоО ресурс внутреннего пространства абстрактный целиком и полностью.

                    +1
                    Ну тогда лучше на MechWarrior глянуть, плиты брони правильно распихать, оружие может жрать энергию/ресурсы, может не жрать. Но главное помнить…
                    ВСЕ ГРЕЕТСЯ!!! Стреляя без разбора можешь получить отключившийся мех, по перегреву. ;)
                      0
                      Наброски тепловой системы уже есть. :)
                      А вот с плитами брони получилось неочень, в этой версии, у нас все в квадратах, так что никаких углов брони. Но мы стараемся делать максимально модульно, смена конструктора на что-то похожее на Reassembly, нужно будет поменять конструктор, прописать новые правила в симулятор, и изменить визуализатор.
                      Смена правил (rules), не должна требовать больших переделок. Это одно из основных идей проекта, на самом деле.
                        0
                        Ну рациональные углы брони, динамическая защита, и реактивная системы защиты это дело наживное. Так что успехов в создании симулятора.

            Only users with full accounts can post comments. Log in, please.