Привет, Хабр! Это будет история о тернистом пути разработки 2D-квеста в сеттинге миров Говарда Филлипса Лавкрафта, который целиком оформлен в виде интерактивного комикса. Ну то есть все в игре, начиная от головоломок и заканчивая интерфейсом — это один бесшовный комикс. Если вас заинтересовала такая концепция, прошу под кат, где будет больше гифок, технические детали и опыт публикации на основных платформах.

Об игре


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



И я подумал: а ведь игра, оформленная в комикс стилистике — это круто, броско и необычно! Таких игр существует совсем мало. Я могу вспомнить три. Конечно же, это легендарная «Comix Zone», шутер «XIII» (тринадцатый) и не целая игра, а эпизод в «What Remains of Edith Finch». Но делать в одиночку / вдвоем платформер или FPS-шутер, для независимого разработчика — непозволительная роскошь — слишком много анимации, слишком сложно, слишком много времени потребуется и высока вероятность, что игра может вообще не дожить до релиза. Нет, я знаю, что есть люди умудряющиеся разрабатывать платформер в течение 8 лет (Owlboy) и при этом, не растерять мотивацию. Я искренне восхищаюсь и немного завидую таким людям, но боюсь, это не мой случай. А вот игра в жанре puzzle / point-and-click — это совсем другое дело! Тем более, опыт в создании 2D-головоломок у меня есть — некоторые могут помнить меня как автора серии головоломок «Механическая Коробка». Итак, решено! Сеттинг — произведения Г.Ф. Лавкрафта, жанр — point-and-click, визуальный стиль — комикс.

Но делать просто интерактивный комикс или визуальную новеллу, мне не хотелось. Мне хотелось, чтобы этот проект стал больше игрой, чем литературой. И тут помогло еще одно мое увлечение — история видеоигр. Я вспомнил, что недавно читал об одной текстовой компьютерной игре, основная идея которой, мне показалась довольно необычной и интересной.

Игра называлась «Hunt the Wumpus». Это классическая текстовая игра, написанная Грегори Йобом в 1972 году. Как гласит «Википедия», это первая в истории текстовая, а также первая приключенческая компьютерная игра, которая была чрезвычайно популярна в 70-80-е годы прошлого века.



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

В начале игры, игрок оказывается в случайной комнате лабиринта. За один ход он может перейти в одну из трех соседних комнат, либо выстрелить в нее. В комнате, игрок может почувствовать сквозняк, отвратительное зловоние или услышать странный шум. Сквозняк говорит о том, что в одной из соседних комнат — бездонная яма — упав в нее, вы проиграете. Шум издают гигантские летучие мыши, если войти в комнату с ними, они хватают игрока и переносят в другую, выбранную случайно, комнату лабиринта. Ну а зловоние означает что в какой-то из трех соседних комнат находится Вампус. Если игрок оказывается в одной комнате с ним, Вампус его съедает.

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



Возвращаясь к Лавкрафту, наш герой направляется морем в Новую Англию, но, очевидно, его планам не суждено сбыться, так как:
На семнадцатый день путешествия, страшная буря возникает будто бы из ниоткуда, унося обреченный корабль все дальше и дальше в неизведанные воды. Фрегат терпит крушение, а главный герой приходит в себя на песке бухты, окруженной неприступными скалами. От единственного выхода из бухты, вырубленного прямо в утесе, веет необычайной древностью...
Это вход в подземелья Храма Безымянных Культов, где в лучших традициях Лавкрафта главного героя не ждет ничего кроме безумия и смерти (в целых шести вариантах концовок!). Подземелья представляют из себя лабиринт из игры «Hunt the Wumpus», но вместо Вампуса в лабиринте обитает Дагон — покровитель Глубоководных. Его нельзя убить сразу, а можно только ранить — все-таки, один из меньших божеств пантеона мифов Ктулху — это вам не шутки! А в роли гигантских летучих мышей здесь прислужник Древних — Шоггот — бесформенная масса протоплазмы с тысячей глаз, щупалец и других невообразимых конечностей. От Шоггота можно убежать. Побег реализован в виде мини-игры, где нужно на время решать простенькие загадки, выбирая одну из трех дверей. Мой экспромт на тему QTE (Quick Time Event) — довольно распространенного приема в видеоиграх, когда нужно быстро выполнять какие-то действия, нажимать определенные клавиши.

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



Разработка


Первый прототип на Unity я собрал довольно быстро, примерно за неделю. И пусть меня закидают тапками, но я понял одну простую вещь — Unity мне не подходит. Да, удобный визуальный редактор, да, море информации, за счет популярности движка. Но… Я большую часть времени потратил на то, чтобы понять, как же из имеющихся кубиков собрать то, что мне нужно. Вместо того, чтобы делать и использовать кубики «нужной формы». Ну и некоторые вещи мне кажутся просто странными (с непривычки, наверное). Например, «зашитые» в анимацию стартовые координаты: если в анимации объект начинает свое движение с позиции (0,0), то при применении этой анимации к объекту, он прыгает на (0,0) в независимости от своего текущего положения. Вы скажете: так это же надо было скачать <plug-in name> из Asset Store! Возможно…

В общем, я выбрал более привычный и понятный мне фреймворк — LibGDX. Это кроссплатформенный, бесплатный движок на Java. Я где-то слышал мнение, что Unity — это о быстром конструировании, а LibGDX о красивой архитектуре, коде. То есть LibGDX ближе программистам, а Unity тем, кто наоборот, хочет меньше кода и больше «действия». Из плюсов LibGDX так же стоит отметить легковесность и быстродействие, за все время разработки я не сталкивался с проблемами, что где-то, что-то тормозит. Ну и то, что это Java, для кого-то может послужить решающим фактором.


MENJ4-2R5ZJ-HD7AQ
Имея на руках прототип, я стал искать художника, так как понял, что ни требуемое качество, ни объем арта, мне самостоятельно — не вытянуть. На форуме gamedev.ru, на мое объявление откликнулся замечательный художник — Сергей Ковалев. Все эти клевые гифки, которые вы тут видите — его рук дело. Там же, нашелся и композитор — Максим Грачев. Гифки звук не передают, конечно, но все, кто играл в игру, говорят, что звук в игре — очень атмосферный. Для каждого из нашей маленькой команды, это был проект «в свободное время». Поэтому, долго ли, коротко ли, но спустя полгода выходных и вечеров после работы, игра приблизилась к завершению.

Публикация


Так как это Java, то билды под разные платформы, по сути, сводятся к поставке одного и того же кода с нужной для платформы JRE (Java Runtime Environment). Я сразу решил выпускать игру для всех основных ОС: Windows, Mac, Linux, Android и iOS. Не буду подробно останавливаться на мобильных сторах, а расскажу лучше о Steam. Тем более, это мой первый опыт размещения игры в магазине от Valve.

С недавних пор, продавать свои игры в Steam может любой желающий, достаточно пройти процедуру регистрации и заплатить взнос в 100$ (за каждую игру). Регистрация занимает несколько дней, Steam якобы проверяет данные, заполненные по налоговой форме W-8BEN. Не очень понятно, зачем, правда. В других случаях, когда мне приходилось заполнять эту форму, хватало просто ксерокопии.

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



После утверждения, страница становится видна всем пользователям, и игра попадает в категорию «Скоро выйдет». Можно собирать и загружать билд. Расскажу немного подробнее как это происходит в случае с LibGDX. Во-первых, надо сделать чтобы игра запускалась на весь экран, для этого добавляем в DesktopLauncher следующий код:

LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.vSyncEnabled = true;
config.width = LwjglApplicationConfiguration.getDesktopDisplayMode().width;
config.height = LwjglApplicationConfiguration.getDesktopDisplayMode().height;
config.fullscreen = true;

Во-вторых, нам нужно собрать бандл из исполняемого файла (стартера), нашего jar файла, который будет исполняться и JVM под нужную платформу. Для этого есть множество инструментов. Я бы акцентировал внимание на двух: это, многим знакомая утилита, Launch4J. И Packr, разработанный командой LibGDX. Что использовать, дело вкуса, лично мне ближе Packr. Делаем конфигурационный файл и одной строкой собираем билд, например, под Linux (можно хоть автоматически):

Пример конфигурации для Packr
{
    "platform": "linux64",
    "jdk": "/Users/me/Documents/builds/jdk1.8.0_191-linux-x64.zip",
    "executable": "My-Game",
    "classpath": [
        "desktop.jar"
    ],
    "output": "EFIBB-ZIY32-8Q569",
    "mainclass": "com.puzzle.comix.desktop.DesktopLauncher",
    "vmargs": [
       "Xmx1G"
    ]
}


Далее, нам нужно загрузить сборки в Steam, их у меня три: для Windows, Mac и Linux. Описание этого процесса есть в документации (на русском), поэтому, я просто перечислю ключевые пункты:

  1. В Steamworks создать «Хранилища» для соответствующих ОС. Я создал «Windows content», «Mac content» и «Linux content».
  2. Там же включить эти «Хранилища» в «Комплекты».
  3. Скачать SDK Steamworks — с помощью него происходит загрузка в Steam.
  4. В примерах скриптов загрузки заменить ID приложения и хранилищ на свои. Прописать локальный путь к файлам игры.
  5. Запустить загрузчик. В моем случае (Mac OS), команда выглядит так:

bash ./steamcmd.sh +login "user" "password" +run_app_build ../scripts/app_build_xxxxxx.vdf +quit

Вот, собственно, и все. У меня раза три вылетел steamcmd с ошибкой сервера 500, с четвертого раза все загрузилось. После этого отправляем уже сам билд игры на модерацию. Плюс 4-5 дней и можно нажимать заветную зеленую кнопку «Опубликовать».

Альтернативные площадки


Сейчас, как грибы после дождя, появляются альтернативные Steam магазины: Discord, GOG, Green Man Gaming и т.д. Все активно обсуждают анонс собственной площадки от Epic Games (есть надежда, что у них получится составить реальную конкуренцию Steam). А я хочу сказать пару слов про itch.io. Если вы меня спросите, как я вижу идеальный магазин для разработчика? Я без колебаний отвечу — itch.io. Я понимаю, что идеальный магазин для разработчика и для игрока — это немного разные вещи. И вообще itch — это утопия. Но как же классно и просто здесь все сделано! Мега-удобный редактор страницы игры, все очень продуманно, быстро и современно. Никакого нагромождения кнопок и действий, всего пару-тройку кликов и ваша игра доступна всему миру!

Проблема одна, та же, что и у всех альтернативных сторов — небольшая аудитория. Я получил фичеринг на главной странице, просто написав создателю itch.io в почту (да, это возможно и даже несложно). И с учетом этого, у игры было всего ~200 просмотров страницы в день и несколько ленивых продаж.



Но то небольшое сообщество, которое здесь есть — очень дружелюбное! У itch есть такая фишка: вы выставляете минимальную, «обязательную» цену игры, а покупатель может ее увеличить по своему желанию, чтобы поддержать разработчика. И такие продажи, выше установленной цены, вполне частое явление! В отличие от Steam, где токсичности и комментариев «купил бы за 15 руб» — слишком уж много.

Да, игра небольшая. Скорее-всего, если быстро вникнете в суть и не застрянете на какой-нибудь головоломке, вы сможете пройти ее за час. Я понимаю, что заработать какие-то серьезные деньги у игры шансов нет. Поэтому, в Steam я поставил максимально честную и бюджетную цену в 99 руб. Пожалуй, ни для кого такая сумма не будет существенной. Тем не менее, требуют скидку в 50%, пишут про 15 руб и вообще «раздавать бесплатно для продвижения имени разработчика» (чтобы это не значило). Впрочем, я отвлекся. Просто это мое «больное место». Я, как никто, знаю сколько усилий вложено в этот условный час геймплея и меня это задевает, признаю.

Маркетинг


Расскажу о нескольких мероприятиях, которые я предпринял, чтобы как-то заявить об игре. Во-первых, Keymailer. Этот сервис на слуху, но будет не лишним рассказать принцип его работы. Вы регистрируете игру и загружаете в сервис какое-то количество Steam-ключей для раздачи блогерам. С другой стороны, блогеры регистрируются в сервисе и могут запрашивать у вас ключи, чтобы сделать обзор игры. В теории, звучит неплохо. Но это только в теории. Жаль я не погуглил предварительно отзывы про Keymailer.

Этот сервис монетизируется за счет разработчиков, я ничего не имею против, просто имейте в виду. На бесплатной подписке, практически весь функционал обрезан. Я закинул 50$ на рекламу — игра отображается неделю где-то на видном месте Keymailer-а. Да, запросов на ключи от «блогеров» при этом значительно больше. Но, мне кажется, порочна сама идея этого сервиса, если задуматься. Более-менее крупному каналу не нужно заниматься запросами ключей через какой-то Keymailer, у них и контента хватает, и покупка новинок никаких сложностей не вызывает. Может я ошибаюсь, но мне показалось, что Keymailer используется, в основном, недобросовестными пользователями для выманивания бесплатных ключей, для себя или на перепродажу.

Я акцептовал запросы только от каналов с подписчиками (ну хотя бы 5-10 тыс.) и галками «Accredited» от Keymailer. Раздал 65 ключей, 47 из них активированы, еще 18 где-то до сих пор продаются, наверное (например, я нашел свою игру на плати.ру). В результате, я получил 6 (шесть) видео на YouTube и один твит. С парой десятков просмотров… Не повторяйте моих ошибок.

Но не все так печально. Неплохо показала себя старая-добрая рассылка писем вручную по Ютуберам. Потратив вечер и доказав Гуглу множество раз что «Я не робот», я собрал на YouTube где-то 30 email-ов русскоязычных, подходящих летсплееров. Критерии отбора простые: обозревал инди игры, не очень много подписчиков (но и не совсем мало, я выбирал от 100 тыс.), не специализируется на ААА-играх, не специализируется на какой-то конкретной игре (Майнкрафт, Танки).



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

  1. Максимально лаконичное описание игры, не больше двух предложений: «Игра в сеттинге произведений Говарда Филлипса Лавкрафта, которая целиком оформлена в виде интерактивного комикса».
  2. Что вы хотите? «Было бы круто, если бы вы поиграли в мою игру на канале».
  3. Интересная гифка до 2 Мб прямо в теле письма (я вставил сундучок, который выше).
  4. Ссылка на Steam и ключ. В общем, главное — это кратко и по сути.

И хочу сказать, что отклик вполне себе! Целых 4 канала опубликовали ролики по игре и даже один «миллионник» ответил на письмо. Это само по себе, достижение! Учитывая, что игра далеко не суперподходящая для стриминга. Правда, аналогичная рассылка по англоязычным блогерам, к сожалению, провалилась. То ли виноват мой неидеальный английский, то ли я не смог правильно подобрать целевые каналы.

Заключение


Уф! Пора уже подвести какие-нибудь итоги. Топик становится длиннее, чем я планировал. Давайте подведем финансовые, что ли. На Steam мы наторговали примерно 1000$, еще 70$ — itch (хочу пожертвовать их на развитие магазина), плюс с мобильных сторов должно набежать пару сотен долларов. Хороший ли это результат? Я считаю, неплохой! Учитывая, что в современном мире для инди почти не осталось места, если ты не «звезда», конечно. А я обычный «середнячок», надо признать. И хоть игра получилась небольшой, но именно такой, как я себе представлял. А главное, законченной и цельной. Так что я доволен.

P.S. Извините за некоторый сумбур повествования, строить четкие, последовательные тексты у меня всегда получалось плохо. С удовольствием расскажу о пропущенных деталях в ответах на вопросы. P.P.S. Обожаю пасхалки и секреты, поэтому в этом топике спрятано три Steam-ключа к игре. Разбирайте!

Комментарии (58)


  1. wlr398
    07.12.2018 09:27

    Стивен Кинг «Оставшийся в живых»? Про отсылку.


    1. coder1cv8 Автор
      07.12.2018 09:36

      Неа :)


      1. trackstudio
        07.12.2018 13:32
        +1

        Эдгар По, судя по названию яхты?


  1. exerrk
    07.12.2018 09:35
    +2

    Не ценитель комиксов, но по-моему получилось просто шикарно! Рисовка достойна восхищения.
    Очень приятно, что описан пострелизный процесс, т.к. тема мне вскоре самому понадобится


    1. dcc0
      07.12.2018 17:21
      +2

      Графический стиль очень привлекательный.


  1. untilx
    07.12.2018 10:07

    Почему-то в голову не приходят другие десктопные игры на Java, кроме Wakfu. Почему именно Java? Только из-за движка и личных предпочтений?


    1. coder1cv8 Автор
      07.12.2018 10:58

      Да. На Java я довольно много писал всякого под Android. И мне нравится концепция LibGDX — какие-то базовые объекты мы вам даем, типа Stage, Actor, а дальше, все в ваших руках, делайте из них, что хотите! Нравится привычное наследование, префабы в Unity — это, все-таки, немного не то. Например, у меня есть «базовый кадр», который реализует только белую рамку, подстраивающуюся под соотношение сторон экрана и свое появление сверху, снизу, слева и справа. Дальше, я наследую от этого класса «базовый кадр с UI», где добавляются кнопки интерфейса «карта», «инвентарь», «выход». И попапы. От него наследуется «кадр комнаты», где помимо всего вышеперечисленного, появляются кнопки перехода в соседние комнаты, подсказки и т.д.


      1. untilx
        07.12.2018 11:22

        Я не знаком с LibGDX, поэтому такой вопрос: в ней так же, как в Unity, 2D игры делаются в 3D, просто камера не движется?


        1. coder1cv8 Автор
          07.12.2018 11:35

          Проблема в том, что я не знаю как вообще в LibGDX делается 3D :) Хотя знаю, что он умеет. По-моему, это движок заточенный под 2D больше.


          1. untilx
            07.12.2018 12:11

            Хм, действительно, пишут, что даже физика через Box2D. Ну, это большой плюс. Не рассматривали, например, LOVE в качестве альтернативы?


            1. coder1cv8 Автор
              07.12.2018 12:42

              LOVE — не смотрел. Хочу Defold как-нибудь попробовать, еще.


            1. Kirhgoff
              07.12.2018 23:46

              Я попробовал Love, меня немного отталкнул тем, что там lua — ничего не имею против самого языка, но к нему огромное количество разных велосипедов написано, вплоть до библиотек реализации наследования — там вольная воль и каждый во что горазд. Я в итоге начал Unity изучать


              1. untilx
                08.12.2018 00:25

                Я, конечно, очень старомодный, но в JS происходит абсолютно то же самое: люди не могут смириться с тем, что это не объектно-ориентированный и не функциональный язык, поэтому воротят всякое разное. А они меж тем близкие (внезапно) родственники с Lua.


        1. Aplayt
          07.12.2018 21:13

          Я делал пару игр на libgdx(одна с использованием 3Д), и хочу добавить, что Stage, Actor и тп это одна большая часть либы которая отвечает за UI(scene2D), а другая большая часть относится как раз к 3Д(импорт моделей, шейдеры, материалы и тп). В общем для 2D игры будет достаточно не углубляться в 3Д, но для 3Д — UI все-равно проще будет сделать на scene2D.


    1. Katasonov
      07.12.2018 21:52

      Ну вот хотя бы Майнкрафт нашумевший на весь мир и проданный за 4 лярда баксов.


  1. suharik
    07.12.2018 10:31

    И ни слова о том, как делали. Какие механики, какие подводные камни в этом жанре, что нового принесли. За пасхалки в статье, созданной в 9:06 отдельное спасибо. Это специально для тех, у кого на рабочих компах установлен Steam?


    1. Peacemaker
      07.12.2018 17:03

      Вам выслать сто рублей на покупку игры? Или здесь больше спортивный интерес?


      1. suharik
        07.12.2018 17:15

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


        1. Peacemaker
          07.12.2018 17:35
          +3

          Извините, мой комментарий вышел довольно хамским по сути, виноват.
          С другой стороны, Хабр читают не только в зоне GMT+3, и опубликовав статью позднее, читатель из Владивостока или Петропавловка-Камчатского так же мог начать возмущаться, что в это время он уже третий сон видел, и к Стиму доступа не имел…


        1. Newbilius
          07.12.2018 17:42
          +5

          По пунктам:

          1) Автор не организовал конкурс — он просто рассказал про некоторые интересные моменты. Конкурс — это приятный бонус. Учитывая цену в 100 рублей (и вообще бесплатно для android) переживать на тему «я не смог выиграть» просто смешно.
          2) Ключ к Steam можно активировать и через браузер
          3) Про игру сказано немало — геймплей, история создания, специфика выбора движка, кое что про публикацию… мне было полезно, конкретики немало.

          Отмечу, что геймплейно игра мне не понравилась, хотя графика и звук чертовски хороши.


          1. suharik
            07.12.2018 17:50

            Что ж вы все к цене цепляетесь… За подсказку об активации спасибо, после вашего комментария нашел эту опцию в дебрях стима.


            1. Newbilius
              07.12.2018 19:20
              +3

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

              А тут 3 ключика, сумма в 300 рублей. И розыгрышь — бонус в конце для дочитавших, а не в первых строчках для заманивания в пост. Так что скорее всего и не было долгих размышлений на тему «а как бы максимальное число читателей вовлечь, как-бы посправедливей разместить...» Это не selling-point статьи, поэтому к нему нет особо серьёзного отношения) Вот потому и указывают на цену, мол, низкая цена розыгрыша -> низкие ставки в случае победы/поражения -> нет повода париться.


  1. mmmmmike
    07.12.2018 10:50
    +1

    Кажется, вы реализовали мою мечту о синглплеерном десктопном «Ужасе Аркхэма»!


    1. DocJester
      07.12.2018 11:00

      Поиграйте в Darkest Dungeon — гораздо ближе к Ужасу Аркхама, правда в другом сеттинге, но Лавкрафт.


    1. Cheater
      07.12.2018 15:16

      Ждите Witchmarsh.


    1. RussDragon
      09.12.2018 18:25

      Но ведь есть Tabletop Simulator, а там есть Ужас Аркхэма, чем не оно? :)


  1. hub
    07.12.2018 10:51
    +1

    В стиме я всё рано не зарегистрирован, но третий ключ — не нашёл… Может, в картинке где-то?..

    Два ключа (подсказки)
    font color="white"

    "output":


    1. cepokko
      07.12.2018 14:48

      Тоже нашел все три, но в третьем, наводку на который не дали СЮДА во второй группе символов последний непонятен, первые 2 стимом бьются, в третий не хочет что-то увы…


      1. lostpassword
        07.12.2018 20:04

        Всё нормально с ключом
        GW90K-QY7ZJ-IGGNM


  1. ninJo
    07.12.2018 10:58

    А что с гугло плеем и аппстором, там такие игры могут лучше зайти


    1. coder1cv8 Автор
      07.12.2018 11:11

      Не особо… В App Store 200 копий продали, в Google Play — 10 тыс загрузок (там игра бесплатна). Сейчас договариваюсь о фичеринге в GP, может что-то и выгорит.


  1. lazyeugene
    07.12.2018 11:01
    +2

    Отсылка: стих Эдгара По «Аннабель Ли»


    1. coder1cv8 Автор
      07.12.2018 11:02
      +1

      В точку! Последнее стихотворение Эдгара Аллана По.


  1. demonarxs1
    07.12.2018 11:01

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


  1. ogustbiller
    07.12.2018 11:20
    +2

    Прочитал с интересом. Спасибо что поделились. И не прибедняйтесь, написано очень интересно, а если бы было всё по полочкам, одно за одним, то было бы занудно. А у вас не сумбур, а нормальные человеческие эмоции разработчика.


  1. i86com
    07.12.2018 12:29

    К нам не обращались, по меркам ютуба мы — никто. Мы просто добавили в еженедельную подборку (weekly pc games supercut) короткий ролик с игрой. Так вот, как минимум двое пользователей упомянули, что увидев — купили. С учётом менее сотни просмотров, это вполне себе рекорд.

    Так что и среди не-русскоязычной аудитории у вас вполне есть потенциал. Многим достаточно 5-6 секунд разнообразного геймплея увидеть. Надеюсь, вам будет полезна эта информация.

    Удачи в следующих начинаниях.


  1. ITurchenko
    07.12.2018 12:39

    И я подумал: а ведь игра, оформленная в комикс стилистике — это круто, броско и необычно! Таких игр существует совсем мало. Я могу вспомнить три. Конечно же, это легендарная «Comix Zone», шутер «XIII» (тринадцатый) и не целая игра, а эпизод в «What Remains of Edith Finch».


    Держите недавно вышедшую четвёртую: Deep Sky Derelicts

    Заголовок спойлера
    image

    image


    1. 8street
      07.12.2018 21:33

      А как же первые две части Макса Пейна? А еще Borderlands 1, 2 и пре-сиквел. И еще держите необычного, правда не комикс-тематика.
      ascii doom
      Return of the Obra Dinn


  1. MrFrizzy
    07.12.2018 15:01
    +1

    Касательно летсплейщиков:
    1) большинство сейчас мигрировало на твич в силу закидонов ютуба
    2) можно написать тем, кто проходил CALL of CTHULHU (2018), все-таки тематика та же)
    Сам смотрю русского миллионника: www.twitch.tv/blackufa
    Ему можно написать — и индюшки, и отечественные проекты, и Лавкрафт он любит
    И спасибо большое за статью!


  1. Str4tocaster
    07.12.2018 17:36
    +1

    Залип в игру сразу после прочтения статьи и оторвался только когда прошел. Потрясающая работа, мои поздравления!


  1. ipizdetc
    07.12.2018 17:36
    +2

    Рисовка просто потрясающая! Спасибо за статью, очень интересно!


  1. Newbilius
    07.12.2018 17:46
    +2

    Интересно услышать, были ли вещи, которые по отзывам игроков или после плейтестов пришлось править? Не баги, а именно геймплейные изменения?


    1. coder1cv8 Автор
      07.12.2018 18:07
      +6

      Спасибо за хороший вопрос! Изначально, я спрятал значок карты в рюкзак, когда ее находим, он там появляется. Чтобы не загромождать UI. И вот на этот момент жаловались многие тестеры. Так как карта — это самая нужная вещь в игре, даже жизненно необходимая я бы сказал, переход в 2 клика: открыть рюкзак, открыть карту — никуда не годился. Поэтому было решено вытащить кнопку карты в быстрый доступ и увеличить скорость анимации перехода между текущим кадром и кадром «глав. герой смотрит на карту». Это единственное место в игре, где скорость смены кадров такая высокая.

      С этой правкой связан забавный баг. У меня в коде есть 2 структуры, одна хранит всякие служебные поля объектов в рюкзаке, другая — отображение этих объектов, значки и т.п. И так как изначально я предполагал что количество предметов в рюкзаке всегда равно количеству отображаемых иконок, то я сделал их связь просто по индексу, вместо ключа, например. А после того как я вынес иконку карты в быстрый доступ, получилось что в рюкзаке она как бы есть, но иконки ее там нет! В результате, подбираем карту, а в инвентаре отваливается перетаскивание предметов и другие совершенно непонятные вещи начинают происходить. Я что только не передумал, пока до такой простой причины не докопался :)


  1. DGN
    07.12.2018 19:27
    +2

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

    p.s. Художнику респект!


  1. lostpassword
    07.12.2018 20:08

    А как игра называется? Не нашёл названия в статье.


    1. igurylev
      07.12.2018 20:27
      +3

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

      UPD: нашёл! Подсказка — в названии есть слово «квест» и имя автора книг.


      1. lostpassword
        07.12.2018 21:24
        +2

        Спасибо!
        Хотя сразу в виде store.steampowered.com/app/952460 было бы ещё лучше)


        1. igurylev
          07.12.2018 21:49
          +2

          Я хотел так написать, но подумал, что для игры жанра «квест» это будет слишком уж просто…


  1. mk2
    07.12.2018 23:32

    А вы jre с собой тянете на ПК? Сколько процентов места занимает, от всей игры?


    1. coder1cv8 Автор
      08.12.2018 08:13
      +1

      Да, примерно 70%. Но с другой стороны, даже с учетом JRE, весь дистрибутив выходит около 100 Мб, что совсем не много, по современным меркам.


  1. Sergey-Pimenov
    08.12.2018 01:44
    +2

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


    1. coder1cv8 Автор
      08.12.2018 08:15

      Нужна карта, прежде всего. Она обычно где-то рядом со входом. На ней помечено все необходимое и посещенные комнаты, в том числе :)


  1. surrave
    08.12.2018 10:45
    +1

    Спасибо за статью! За что люблю храбр, так это за своеобразную человечность, контакт с автором творений. Увидя эту игру я бы заинтересовался, но вряд ли бы купил. А вы рассказываете с такой приятной подачей, все описываете показываете, комментируете, что я не мог устоять :)
    Еще мне как музыканту, который однажды пытался писать музыку к игре, очень интересено, а как собственно происходил весь этот процесс у вас? Как вы и композитор сходились в музыкальных образах? Это же безумно тяжело, передать мысль, чтобы ее воплотили в музыке.


    1. coder1cv8 Автор
      08.12.2018 13:02

      Упс! С ответом промахнулся, он тут, ниже: habr.com/post/431218/#comment_19471056


  1. coder1cv8 Автор
    08.12.2018 13:01

    Спасибо :) На самом деле, с музыкой легко, сложно найти профи… А вот дальше я просто полагаюсь на его вкус и видение. Я вообще своих коллег не «прессую» чтобы они сделали четко как я себе представлял. Ни композитора, ни художника. Творческая свобода — наше все, я считаю!


  1. Charoplet
    08.12.2018 20:04

    Например, «зашитые» в анимацию стартовые координаты: если в анимации объект начинает свое движение с позиции (0,0), то при применении этой анимации к объекту, он прыгает на (0,0) в независимости от своего текущего положения. Вы скажете: так это же надо было скачать <plug-in name> из Asset Store! Возможно…

    Ну, анимация меняет LocalPosition так, как вы прописали, и по-моему — это логично. Если вы хотели, например, сдвинуть объект на 5 единиц по оси Х, независимо от того, где он находится — то надо было просто сделать 2 объекта: родительский и дочерний. На дочерний вешаем анимацию. Родительский размещаем на сцене так, как захотим. И все прекрасно будет перемещаться, без прыганий.
    Еще можно было самому двигать объект в Update (но это на самом деле не очень удобно… тут на самом деле удобнее использовать какой-нибудь tween-плагин. DoTween, например).


  1. dcc0
    09.12.2018 14:49

    Вообще думал о самом концепте комикс-игры и понял, что это до не которой степени спасение тонущий игровой индустрии. От 3D многие устали уже 10 лет назад. От чистых текстовых игр тоже подустали. Комикс-игры, если еще соединить с мультиплеером (+ чат, форум, взаимодействие игроков) — промежуточный вариант между текстовой MMORPG и квест, но с упором на работу художника — очень даже очень путь… Вторая картинка волну Хокусая напомнила.


  1. Optimus_990
    10.12.2018 09:13

    Круто же!