Как создать Roguelike

Я всегда хотел написать подробное руководство для начинающих о том, как создать roguelike, содержащее как общие, так и более специфические советы. Проведённый в этом году очередной праздник Roguelike Celebration показался мне отличной возможностью наконец-то заставить себя это сделать, поэтому я подготовил получасовой доклад по этой теме.

У меня есть довольно большой опыт — в течение последних семи лет я работал только в этом жанре (CogmindCogmind 7DRLPOLYBOT-7REXPaintX@COM), и в течение последних пяти эта работа была моей основной. К тому же, все эти годы я помогал превращению r/RoguelikeDev в крупнейшее сетевое сообщество разработчиков roguelike.

Доклад «Как создать Roguelike» доступен и в форме видео (см. клип ниже). Данная статья является текстовой версией того же доклада для тех, кто предпочитает читаемый формат или захочет повнимательнее разглядеть кучу изображений из доклада.

 

Введение

Пару лет назад на первом празднике Roguelike Celebration я прочёл доклад, о том, как я стал разработчиком, но сейчас я хочу рассказать о том, как любой может приступить к разработке собственного roguelike. Довольно часто игроки в roguelike хотя бы пробуют заняться их созданием. Мы вдохновляемся играми, в которые играем, и хотим сделать что-то лучшее, что-то иное, или просто что-то своё. Мой доклад совершенно точно не будет являться туториалом, он больше посвящён тому, как начать разработку и общим советам, способным помочь вам на этом пути.

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

На старт, внимание, @!

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

Непрямое приближение к своей цели. Когда-нибудь… (Это анимация — откройте изображение в отдельном окне, чтобы процесс начался снова.)

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

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

Сначала направляйтесь прямиком к цели и начинайте с прочного фундамента. (Это анимация — откройте изображение в отдельном окне, чтобы процесс начался снова.)

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

Содержание:

  • Язык
  • Масштаб
  • Базовая механика
  • 7DRL
  • Ресурсы
  • Приманки
  • Советы

Учтите, эта статья рассказывает о том, как нужно начинать создание roguelike, но не говорит о том, как нужно его заканчивать. Здесь вы остаётесь в одиночестве.

Язык

Давайте начнём с первого и самого стандартного вопроса: какой язык использовать.

Ответ прост: любой.

Немного более длинный ответ: это не очень важно. Если вы уже имеете опыт работы с каким-то языком, то это отлично, берите и пользуйтесь им. Язык — это только средство, и для создания roguelike люди уже пользовались почти всеми языками.

Однако нельзя сказать, что если вы начинающий, то нет более простых вариантов, поэтому если вы колеблетесь, я помогу вам советом:

Пример кода на python из туториала по libtcod.

Начинающим разработчикам roguelike часто рекомендуют Python, потому что с ним довольно просто работать. Достаточно посмотреть на этот код. Здесь нет кучи странного синтаксиса, и если даже вы не знаете программирования или Python, то, вероятно, всё равно сможете разобраться, что в нём происходит.

Но не волнуйтесь, его «простота» не является ограничивающим фактором — в Python вы всё равно можете создавать замечательные вещи.

Ultima Ratio Regum написан на Python. Это красивый массивный проект с открытым миром, который ещё не завершён, но уже невероятно впечатляет.

Temple of Torment — это ещё один объёмный и завершённый фэнтезийный roguelike, написанный на Python.

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

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

Более сложные языки наподобие C и C++ хороши тем, что они популярны очень давно, то есть вы найдёте по ним множество ресурсов и справочной информации. Я работаю с C++, но пользуюсь я им только потому, что уже был с ним знаком. Я бы не рекомендовал его для новичков, особенно если вы хотите создать roguelike, а не тратить всё своё время на отладку! Вы всё равно найдёте множество других разработчиков, пользующихся Python, поэтому тоже будете иметь доступ к куче ресурсов.

Масштаб

Ещё одна проблема, встающая перед новыми разработчиками: создание «roguelike их мечты». Должно ли это стать вашей первой целью? Почти никогда нет!

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

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

Основной маршрут разработки затрагивает только выборку из необходимых функций (заметьте, что обычно напротив боя («combat») я ставлю вопросительный знак, потому что в roguelike бои не всегда используются!).

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

Хорошо то, что строить roguelike можно по кусочкам. По сути, они являются нагромождением систем, которые можно добавлять, если вам кажется, что они поддерживают основное ядро игры.

Пристройка к ядру roguelike новых кусков.

После этого можно постоянно расширять игру и продолжать итерации, и если повезёт, получать отзывы игроков.

Новые кусочки!

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

o_O

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

Базовая механика

Так что же действительно требуется небольшой roguelike? Базовая механика. Именно с неё начинается игровой процесс. Нужно, чтобы её можно было объяснить одним предложением, и именно её надо прототипировать первой. Прямиком приступайте к самой интересной части игры.

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

Визуализация базовой механики как фундамента дизайна roguelike.

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

Чтобы ещё немного изучить базовую механику, давайте рассмотрим 7DRL.

7DRL

7DRL — это roguelike, созданная за 7 дней. Примерно в марте каждого года проводится мероприятие, на котором множество разработчиков пытается создать собственную roguelike. Это мероприятие проводится уже 14 лет. И это здорово, потому что если вы закончите игру, то совершенно точно найдётся хотя бы несколько людей, которые в неё сыграют и оставят отзывы. Кроме того, существуют судьи, оценивающие игры по различным критериям, однако почти все разработчики считают 7DRL в первую очередь вызовом себе (мероприятие не рассматривается как соревнование).

Успехи 7DRL по годам (2005-2018).

Каждый год на этом мероприятии выпускается больше сотни новых roguelike. Это очень увлекательно, и хоть я и не рекомендую создавать 7DRL как первую игру (вам пока не нужна такая нагрузка), будет неплохо поучаствовать, накопив некоторый опыт и разобравшись в том, что же такое roguelike, особенно в технических аспектах, потому что дедлайн очень помогает собраться.

Мероприятия 7DRL — это отличные примеры подхода «начинать с малого и расширяться по необходимости после того, как вы убедились, что базовая механика выглядит хорошо». То есть на 7DRL по сути создаются хорошие прототипы, и во многом мероприятия экспериментальны по своей природе. Каждый год мы видим множество отличных инновационных идей!

Давайте рассмотрим несколько примеров…

Knight (7DRL 2014)

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

A Roguelike Where You Dodge Projectiles (7DRL 2016)

Мне нравится, что в этом 7DRL базовая механика изложена прямо в названии («Roguelike, в которой нужно избегать снарядов», скачать можно здесь). Персонаж игрока — корабль в космосе, и хоть вы автоматически атакуете врагов в пределах своей области действия, выстреливаемые врагами снаряды летят очень медленно. Вы можете видеть, где они окажутся в следующем ходу, и должны маневрировать так, чтобы и продолжать их атаковать, и избегать попадания в свой корабль.

Seven Day Band (7DRL 2015)

В Seven Day Band вы создаёте собственную roguelike в процессе игры. Блуждая по миру, вы встречаетесь с новыми, неизвестными врагами и объектами и должны давать им имена и способности при первой встрече, или когда они станут для вас важны. («Band» в названии обозначает создание собственной игры в стиле Angband.)

Broken Bottle (7DRL 2011)

В Broken Bottle вы играете за алкоголика в постапокалиптическом мире. Хорошо это или плохо, но основная часть игрового процесса связана с потреблением алкоголя. (Игра сильно сосредоточена на сюжете.)

Drakefire Chasm (7DRL 2012)

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

Golden Krone Hotel (7DRL 2014)

В Golden Krone Hotel вы пользуетесь преимуществами разных способностей вампирской и человеческой форм персонажа, в том числе и взаимодействием с динамическим светом. Эта игра со временем превратилась в серьёзную коммерческую roguelike, и после выпуска год назад хорошо показала себя в Steam.

Cogmind 7DRL (2012)

Это моя первоначальная Cogmind 7DRL, в которой игрок управляет роботом, создающим себя с нуля, используя части других роботов. Предметы разрушаются чрезвычайно быстро, поэтому игроку приходится часто себя отстраивать заново. Эта игра позже тоже стала гораздо более крупным коммерческим проектом. Я никак не ожидал, что мой небольшой эксперимент на 7DRL шесть лет назад превратиться в работу, но очень рад, что поучаствовал в мероприятии, ведь оно доказало интересность базовой механики.

POLYBOT-7 (7DRL 2018)

В этом году для 7DRL я создал POLYBOT-7, который в чём-то похож на Cogmind, но играется совершенно иначе, потому что базовая механика сильно изменена. Игрок больше не выбирает, какие части прикрепить к роботу, теперь они притягиваются автоматически и он не может от них избавиться. Детали удаляются только в случае их уничтожения. Изначально я планировал, что игра станет Cogmind в меньшем масштабе, но с приближением 7DRL начал ощущать, что такую игру создавать не стоит — у неё должна быть действительно уникальная привлекательная черта, совершенно новая базовая механика. Она оказалась довольно интересной и стала хорошей причиной для создания множества дополнительных механик, поддерживающих новый тип геймплея (сравнение есть здесь; также я написал объёмный постмортем, описывающий процесс его разработки от начала до конца).

Итак, хоть у этих игр очевидно есть несколько систем, довольно очевидно, в чём заключается их базовая механика, и вместе со многими другими 7DRL они благодаря этому сильно выделяются из толпы.

Примеры не с 7DRL

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

Mage Guild

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

Demon

В Demon игрок нанимает множество разнообразных демонов, автономно следующих за ним, и тренирует их.

The Ground Gives Way

Есть The Ground Gives Way, в которой присутствует развитие полностью на основе предметов.

Xenomarine

Xenomarine построена на механике дальнего боя и учёта направления взгляда — не во многих roguelike такое есть.

NetHack

Один из разработчиков NetHack однажды сказал мне, что базовая механика NetHack заключается в следующем: «если кажется, что что-то можно сделать, то скорее всего это можно сделать». (Это почтипохоже на антибазовую механику, такой пример не стоит брать новому разработчику, но именно так и есть.)

Источники

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

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

Давайте рассмотрим наиболее полезные ресурсы…

r/RoguelikeDev

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

r/RoguelikeDev и его информативная боковая панель.

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

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

Логотип libtcod

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

Примеры функций, используемые в интерактивном демо libtcod.

Описанные выше Ultima Ratio Regum и Temple of Torment начались как игры, созданные с помощью этого туториала, и постепенно выросли в уникальные проекты. libtcod великолепна, для неё уже десять лет выпускаются обновления.

Ещё один способ начать обучение — поучаствовать в летнем мероприятии «кодируем вместе»r/RoguelikeDev. Если вам нужна дополнительная мотивация и помощь в пути, то вместе с другими разработчиками вы будете следовать шагам туториала libtcod.

Логотип летнего «кодируем вместе» r/RoguelikeDev

Пока мы выполняли туториал пару лет, и интерес по-прежнему был высок, в каждом году участвовало примерно по 100 человек. Строго говоря, для участия даже необязательно использовать libtcod или Python — многие люди используют другие языки и движутся вместе с нами в своей собственной roguelike или похожих туториалах.

Через два месяца у вас будет своя играбельная roguelike! Вот некоторые из игр, вышедшие после мероприятия за последнюю пару лет:

Примеры проектов летнего мероприятия r/RoguelikeDev «кодируем вместе».

Это на самом деле очень хорошее прохождение, по сути, оно даёт вам все необходимые технические знания для создания функциональной roguelike, а уж потом вы можете заняться тем, что подскажет вам воображение.

Также в RoguelikeDev есть сборники FAQ, объясняющие различные аспекты разработки, чтобы вы поняли, как подходить к решению различных задач. Мы ответили уже на довольно много вопросов.

Темы пятничных FAQ, номера с 1 по 74

Также сюда включены метатемы, например планирование и мотивация, такие подробности, как обычно применяемые системы, дизайн и всё остальное! За долгие годы свой вклад в FAQ сообщества сделали довольно много разработчиков, в том числе и авторов хорошо известных roguelike.

Обычно в сабреддите постоянно есть куча разработчиков, многие из которых разрабатывают долговременные хобби-проекты. Они компетентны и готовы вам помочь. Также у нас есть Discord для помощи и обсуждений в реальном времени. (Этот сервер мы делим с сабреддитом r/Roguelikes, поэтому в других его каналах вы всегда найдёте множество людей, играющих во всевозможные roguelike и обсуждающих их.)

RogueBasin

Много лет назад Сантьяго Запата создал отличный веб-сайт, о котором вы могли слышать: RogueBasin. Здесь можно найти целый раздел со статьями, посвящёнными разработке.

Содержание раздела статьей RogueBasin.

Там довольно много статей (показанный выше список — это всего лишь общее содержание!). Хоть некоторым статьям уже много лет, большинство из них не утратило своей актуальности. Именно отсюда я начал свой путь много лет назад, статьи показались мне и вдохновляющими, и просвещающими. (А также немного поначалу пугающими, но не забывайте, что roguelike разрабатываются по кусочкам — делайте за раз только один шаг!)

Roguelike Radio

Дэррен Грей, Эндрю Дулл, Марк Джонсон и другие ведут подкаст Roguelike Radio.

Список тем Roguelike Radio (2011-2018).

Прослушайте все эти темы! В них также содержатся интервью с большим количеством разработчиков roguelike. Даже я участвую в двух или трёх, в том числе и там, где я говорю, что Cogmind, возможно, будет завершён в 2016 году или около того (Ха-ха-ха) (Скоро наступит 2019, но не требуйте от меня невозможного — всё больше игроков находит его и я постоянно добавляю в проект новый контент и функции, просто потому что могу.)

Также вы увидите, что во множестве подкастов рассказывается о 7DRL, которое является довольно важным для сообщества мероприятием.

Итак, мы получили довольно большой объём знаний, но при разработке игр в целом существует ещё одна важная сторона — ресурсы

Ресурсы

Вот наши ресурсы:

Ресурсы при разработке Roguelike

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

Brogue!

Если вы знакомы с roguelike, то могли уже узнать Brogue, но за долгие годы я собрал большую коллекцию вдохновляющих ASCII-скриншотов, и хочу поделиться ею, чтобы вы осознали возможности:

22 изображений из различных ASCII-roguelike. (И чтобы пресечь неизбежные вопросы: названия этих проектов можно найти здесь.)

Вариативность просто поражает — огромное пространство для реализации уникальных стилей!

При работе с монохромными тайлсетами в формате ASCII или с ASCII-подобным, вы можете использовать мой редактор REXPaint (бонус — к тому он интегрируется с libtcod!). Для меня он стал совершенно незаменимым инструментом, и его использует довольно много других разработчиков для таких вещей, как создание дизайна интерфейса, карт и графики.

Логотип REXPaint, частичный интерфейс и примеры изображений (учтите, что в записи слишком много цветов и gif искажает палитру).

Тайлсеты

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

Примеры 2D-тайлсетов для roguelike.

Некоторым людям тайлсеты помогают стимулировать воображение, если оно необходимо в разработке. Кстати, вы могли видеть некоторые из этих тайлов в других roguelike, и это один из их недостатков (графический стиль не будет ассоциироваться именно с вашим проектом), но красивая бесплатная/недорогая графика бесценна для инди-разработчиков.

Демо тайлсетов для roguelike.

Хорошие отправные точки

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

Конечно, вам понадобится какая-нибудь «приманка», чтобы привлечь первоначальное внимание людей, но эта приманка может принимать различные формы…

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

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

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

Тема

Существуют сотни фэнтезийных бродилок по подземельям (fantasy dungeon crawler), поэтому если вы хотите, чтобы ваш проект выделялся из толпы, то стоит выбрать любую уникальную тему, которая неявляется fantasy dungeon crawler.

Мозговой штурм возможных тем для roguelike.

Roguelike обычно базируются на хорошем/интересном геймплее, однако наличие уникальной темы не только делает уникальным весь геймплей, но и даёт источник, из которого можно получать совершенно новые механики. (Уникальная тема практически вынуждает вас пойти таким путём.) В частности, исторические и мифологические темы предоставляют огромный объём материала для исследований и экспериментов. Похоже, людям всегда хотелось больше научно-фантастических roguelike, чем у нас есть. Несмотря на её широту, это довольно неисследованная группа тем, особенно по сравнению с объёмом научно-фантастического контента в других жанрах.

За последние годы появилось несколько действительно уникальных тем.

MakaiRL — это отличный концепт, основанный на японской мифологии и исторической фэнтези. Хотел бы я в неё поиграть!

Skies of Bloody April — это roguelike, посвящённый самолётным дуэлям Первой мировой войны.

Такие темы обращают на себя внимание, особенно когда достигнут полностью играбельного состояния (оба показанных выше примера находятся на ранней стадии разработки).

Примером уже завершённой игры является Lone Spelunker, где игрок исследует естественные и иногда опасные чудеса подземных пещер.

Lone Spelunker

Среди тем, спрос на которые ещё не удовлетворён, в сообществе roguelike довольно часто упоминаются пираты. Существует одна игра, Pirate Rogue, одна из самых популярных тем в сабреддите Roguelikes.

Концепт-арт Pirate Rogue.

Но Pirate Rogue — это просто концепт, который разработчик прототипировали, после чего приостановил проект, потому что осознал, что для создания игры его мечты ему немного не хватает опыта. Однако спрос на эту тему очевидно не удовлетворён.

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

В сабреддите RoguelikeDev появляется множество отличных историй, а также потрясающих проектов, как новых, так и с долговременных. Но в особенности я хотел бы поделиться одной историей, которую я считаю очень вдохновляющей — историю Armoured Commander.

Armoured Commander

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

Год спустя игра была завершена и её обзор сделал Rock, Paper, Shotgun.

Armoured Commander в Rock, Paper, Shotgun.

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

Поэтому выберите уникальную тему и реализуйте её. Так вы заинтересуете больше людей, что в свою очередь поддержит вашу мотивацию.

Сейчас Грегори работает над сиквелом: ArmCom 2.

Помните, что ваша игра необязательно должна быть только roguelike. Здесь я немного покощунствую, сказав, что не стоит ограничиваться определениями. Часто мы видим людей, придумывающих идею игры, которую они хотят создать, но слишком беспокоящихся о том, все ли сочтут её roguelike. На самом деле это неважно, потому что есть столько же жанров, сколько и игроков! Если игра целостна и следует вашему собственному плану, то вы идёте верным путём. (Но не волнуйтесь, в сабреддите Roguelikes всё равно еженедельно будут возникать споры, является ли ваша игра roguelike xD)

XRL

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

Этот путь выбирает множество разработчиков. Какое-то время назад я создал список примеров XRL на RogueBasin. Все описываемые ниже roguelike основаны на уже существующей интеллектуальной собственности (IP).

Неполный список XRL.

Лично я считаю, что это хороший способ начать разработку первой игры.

Вероятно, самой знаменитой XRL является DoomRL. После получения письма-предупреждения от Zenimax за использование торговой марки теперь она официально называется просто DRL.

DoomRL / DRL

Примечание: учтите, что нужно быть аккуратными с особо любящими судебные тяжбы компаниями, например Nintendo (крайне не рекомендую браться за roguelike по Pokemon!), но в целом roguelike — очень нишевый жанр, незаметный для правообладателей, так что для хобби-проекта XRL вполне подойдёт. Только те, которые получают значительную известность, могут вызывать проблемы, но к этому моменту вы или можете ребрендировать игру своим собственным контентом, или будете обладать достаточным опытом, чтобы начать всё с нуля. Обычно XRL являются короткоживущими мелкомасштабными учебными проектами, однако множество XRL находится в разработке уже долгое время. (Как бы то ни было, забудьте о любых попытках заработать на чужой интеллектуальной собственности!)

Сейчас разработчик DoomRL Корнел Киселевич активно работает над преемником DoomRL под названием Jupiter Hell. Отличный пример того, как с помощью XRL можно собрать огромную базу фанатов, а затем использовать их поддержку для создания ещё более масштабной коммерческой roguelike.

Ещё раньше Корнел создал две другие XRL: AliensRL (одна из первых roguelike, в которые я играл) и DiabloRL.

AliensRL

DiabloRL

Продуктивный разработчик roguelike Slashie создал roguelike на основе Castlevania, Metroid, Zelda, Star Wars, Megaman, и вероятно ещё десятка франшиз, о которых нам не рассказывал ?

Коллекция XRL Slashie.

Даже мой собственный полу-roguelike проект XCOMRL относится к этой категории. Он основан на первой UFO Defense, и начинался с IP и механик, которые были мне хорошо знакомы и любимы мной.

X@COM

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

Модифицированные карты X@COM, часть из которых является переходом во вселенную, совершенно отличающуюся от X-Com.

Ещё одно серьёзное преимущество XRL заключается в том, что у вас сразу же появляются фанаты — другие люди, которым нравятся roguelike и выбранная вами IP. И это очень помогает мотивации, потому что всегда найдутся поддерживающие вас люди. Множество моих сторонников сегодня — это те же люди, которые следили за моей работой над X@COM.

Советы на долгую перспективу

Вот несколько советов, которые помогут вам не сдаваться в работе над долгим проектом…

Выпускайте релизы сразу и часто

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

История объявления релизов на RogueBasin.

Sharing Saturday

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

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

Приходите и делитесь с нами!

Ведите блог

Кроме Sharing Saturday, неплохо также сосредоточить всю информацию о разработке вашего проекта в одном месте. В доступном всем месте. На самом деле блогинг имеет множество преимуществ; вот список самых важных:

  • он позволяет привести мысли в порядок
  • изучить свою работу под другим углом
  • документировать процесс
  • создать полезные справочные материалы на перспективу
  • получить обратную связь
  • построить сообщество вокруг проекта

Я уже какое-то время занимаюсь этим и нахожу блог невероятно полезным. Ниже представлен список тем, которые я раскрывал в своём блоге на протяжении нескольких лет:

Пять лет блогинга Grid Sage Games.

Возможно, там вы найдёте полезную информацию, которая дожидается вас

Важна доступность

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

Чтобы понять, насколько ценными могут быть поддержка мыши и тайлсет, посмотрите на статистику игроков из Cogmind:

Предпочтения игроков в Cogmind: преимущество у мыши и тайлов!

Учтите, что некоторые аспекты доступности игры необходимо учесть в дизайне с самого начала, но для первого roguelike этим заниматься не стоит. Достаточно начать с ASCII и клавиатурного управления.