Найти тему

Разработка текстового квеста Swordbreaker - часть 1 - Начало

Оглавление

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

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

Поехали!

Предыстория

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

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

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

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

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

Видос с тех времен сохранился в недрах ютуба...

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

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

Зима — Весна 2014

Огромным плюсом стало то, что Саня наваял целый 60 страничный документ с полными текстами сцен и даже построил дерево того, как будет развиваться действие в игре. Это, честно говоря, меня немало удивило, потому как дизайн документов я отродясь не видел, и, честно говоря, считал это чутка бредом, еще со времен примеров 1С и их «The Ryaba Revenge», но наличие этого материала сильно облегчило построение игры в дальнейшем.

Сначала мы планировали сделать игру для мобильных платформ, а именно Android, опыт построения и выпуска на эту систему у меня к тому времени уже был и я примерно знал что к чему. iOS тоже планировалась, но не в первую очередь из-за дороговизны разработки и отсутствия необходимого железа.

Итак, план был прост — надо:

а) делать арт, поскольку его надо много (в игре должно было быть 300+ сцен)
б) брать и пробовать делать игру на каком-то движке

С пунктом а) всё было более-менее понятно, но т.к. ни он, ни я рисовать толком не умели, то понятное дело, что учиться на ходу тому, чего никогда не делал — глупо, и Саня начал поиски художника, пока я пробовал копаться с разными движками.

Движок. Учитывая те особенности игры, которые должны были в ней быть, то требования были простыми — это новелла со своими примочками. Всякие новельные движки я отбросил сразу, из-за возможных проблем со встраиванием дроидовских, ios-овских примочек на этапе запуска, был angengine, но он был только под дроида. Пробовал libgdx, который на тот момент был еще сыроват, cocos2d пугал С++, которым я владел, но после использования С# в университете, к которому возвращаться уже не хотелось. И, наконец, был опробован CoronaSDK, который имел достаточно удобную справку с примерами и плагины, которые обещали быть кроссплатформенными. Движок на тот момент был платным (около 100$), но ради удобства можно было немного потратиться. Язык программирования, используемый Corona, мне тоже в принципе понравился своей простотой — это всем известный скриптовый язык Lua.

Тем временем, в поисках художника Саня облазил все биржи фриланса и сайты, связанные с гейм-девелоперской тематикой, такие как gcup.ru, gamedev.ru и другие. Темы а-ля мы ищем таланты и делаем супер-игру вызывали тонны срача и комментов диванных экспертов, которые засыпали Саню своими умными заключениями и диагнозами. Впрочем, Сане удавалось успешно слать их всех лесом и спамить-спамить-спамить… Спустя некоторое время, мы всё-таки нашли пару талантов и смогли начать работу.

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

Спустя пару проб мы-таки пришли к тому что примерно соответствовало желаемому:

Наш герой Мечелом
Наш герой Мечелом

Начало было положено и мы перешли уже к построению сцен самой игры:

Скетч сцены
Скетч сцены
Сцена в монохроме
Сцена в монохроме
Готовая сцена игры
Готовая сцена игры
Первая версия главного экрана игры, позднее она очень сильно изменится
Первая версия главного экрана игры, позднее она очень сильно изменится

Дальше случилось то, чего мы не ждали, а именно — человеческий фактор. Мы работали с двумя художниками: вначале они рисовали сцены, взаимодействовали с нами, и всё шло вроде бы хорошо, но в один прекрасный момент художник просто исчезает и больше не выходит с нами на связь. Прождав некоторое время, мы начали поиски другого художника для продолжения работ, ситуация повторилась вновь. Белиссимо!

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

Тем временем у нас всё-таки добавилось немного арта, из которого я уже собрал демку в CoronaSDK:

Запуск во встроенном эмуляторе
Запуск во встроенном эмуляторе
Запуск игры на телефоне
Запуск игры на телефоне

Впечатления о движке? Ну в целом — интересная штука, но теперь, уже смотря на этот движок в ретроспективе, я понимаю, что сделать на таком можно только достаточно простой проектик: ни нормального управления классами, раскиданные данные по куче отдельных .lua файлов, обертки для интерфейса и.т.д. В целом это рабочая система, на которой, если извернуться, то можно сделать проект, но это не сравнится с тем, как если писать на нормальном хорошем ООП-языке типа C# или Java. Таким образом, наваяв еще пару демо, запустив пару раз на телефоне, я всё-таки понял, что целиком писать проект на CoronaSDK я не хочу.

Помимо этого были испытаны Unity3D (на тот момент в нем нормально не поддерживалась работа с 2д, многое потребовалось бы пилить самому и пытаться завернуть это в 3д пространство, пару дней провозюкавшись с камерой и выполнив пару туториалов я забросил это дело), был также испытан движок Construct для игр на новомодном HTML5, но данный движок был очень сильно заточен под свои компоненты и также откинут в сторону.

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

Лето-осень 2014

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

Ну правда не совсем судьбой… У Женьки уже был достаточный опыт работы не только с играми, но и с другими проектами игровой тематики, в том числе и карточными играми, где он также выступал в качестве художника, победы и отметки за участие в конкурсах, ну и.т.д. В общем, человеком он был и есть в плане графики продвинутым!

Наброски интерфейса
Наброски интерфейса
Один из новых артов
Один из новых артов
Скетчи
Скетчи

В общем, Женька смог! В таком темпе мы и двигались дальше: Саня напару с Женей обсуждали что и как рисовать и ставить в игре, я писал код и пробовал движок LibGDX, потихоньку шло время, и к концу 2014 года у нас было достаточно графики и умения, чтобы выпустить своё первое маленькое приложение в GooglePlay, а именно — демо-версию нашей будущей игры.

Хотя на тот момент у нас не было готово даже и половины всего того, что надо было, и еще предстояло сделать много, мы всё-таки решили, что надо сделать так по следующим причинам:

— мы хотели получить опыт публикации приложения в маркете
— мы хотели посмотреть, как игроки воспримут игру такого жанра (всё-таки текстовые квесты и новеллы — это довольно специфическая ниша)
— мы хотели посмотреть на доход от рекламы в бесплатном приложении, и как игроки будут реагировать на неё.

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

И в целом — всё было успешно, отзывы на маркете были достаточно позитивными, а средняя оценка на тот момент составила — 4.4 балла, что вроде не так уж и плохо.

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

Продолжение следует…

Броня и меч героя
Броня и меч героя
Финальная версия Мечелома
Финальная версия Мечелома

Swordbreaker The Game в Стиме