Основные принципы разработки игр

в 15:45, , рубрики: game development, разработка игр, метки:

Эта статья предназначена для людей, которые хотят заняться (либо недавно занялись) геймдевом, но не имеют практического опыта в этой сфере. Здесь я поделюсь своим собственным опытом и расскажу основное из разных сфер разработки игры от дизайна интерфейсов до монетизации. Конечно, каждая из рассматриваемых тем достойна отдельной статьи, а в некоторых случаях – это целая наука, по которой пишут книги, и раскрыть их полностью в рамках одной статьи невозможно. Я лишь остановлюсь на основных моментах, приведу несколько примеров, чтобы дать вам отправную точку для вашей работы, акцентировать ваше внимания на важных нюансах, чтобы сэкономить ваше время. Итак, приступим.

Немного о себе

Для того, чтобы вы имели представление каким опытом я собираюсь поделиться, вкратце расскажу, чем я занимался. Я участвовал в создании 6 небольших проектов для социальных сетей и мобильных платформ, некоторые из которых можно найти в топах. Работал в двух студиях численностью до 30 человек, плюс занимался собственными разработками. По образованию я – программист. Помимо написания кода приложений, я активно участвовал в разработке интерфейсов, геймдизайне и монетизации проектов.

Что такое «компьютерная игра»?

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

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

В конце XIX века началась история кинематографа. Кино, каким мы его знаем сегодня, не только рассказывает историю, но и показывает её, позволяя зрителю своими глазами увидеть историю так, как будто он всё это время шёл возле героя.
Ну и наконец, в 50х-60х годах XX века, начали появляться первые компьютерные игры. В отличие от кино, игра может не только показать и рассказать историю: здесь вы сами в главные роли. Вы – герой, прошедший через все испытания.
Итак, современная компьютерная игра = сюжет + картинка + геймплей. Это три равнозначные части, над которыми стоит работать в равной степени. Иначе вы рискуете получить 2/3 игры или вовсе 1/3. Прибыль соответственно.

Сюжет

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

1) Сценарий – цепочка событий, на которых основана история.

2) Атмосфера – то, что окружает рассказываемую историю. Тут и сайд-квесты, показывающие события в другом свете, и саундтрек, и арт-дизайн и многие мелочи, подчёркивающие идею игры.

3) Постановка. Здесь то, как рассказана и показана история. Режиссура, стори-теллинг и т.п.

«Сюжет – это для крупных проектов и инди-игр. Это совсем не про нашу затею». Несколько лет назад я бы согласился с таким заявлением, но не сегодня. Когда-то давным-давно, когда новые жанры придумывались каждый год, когда каждая игра привносила в свой жанр нечто новое, игрока легко было увлечь игровым процессом на многие часы. Но сегодня это уже давно не так: все жанры освоены, и придумать что-то принципиально новое – это уже скорее исключение, чем часть правила. Для того, чтобы человек мог с интересом длительное время чем-то заниматься, объект его деятельности должен быть динамичным, изменяющимся. А поскольку все ключевые особенности всех жанров игроками давно и основательно изучены, поддерживать динамичность игры за счёт геймплея становится практически невозможно. И здесь у вас остаётся только 1 выход: сюжет. Это касается и онлайн игр. Однако, разрабатывая сюжетную линию для соей игры, помните притчу про переполненный стакан с водой: избыток динамичности так же плох, как её недостаток. Чередуйте отрезки игры, наполненные сюжетными сценами с отрезками, наполненными геймплейными идеями: завернули душераздирающую драму? Пошутите и дайте притсрелить пару тысяч зомбяков. Задымилась мышка/геймпад? Дайте погулять по вашему замечательно проработанному миру.
«Но ведь основная масса моей целевой аудитории терпеть не может читать диалоги длиннее пяти слов!» Да, всё верно. И это надо помнить. Ни в коем случае не увлекайтесь длинными текстами, даже если ваша игра озвучена актёрами. Помните: один единственный поступок, событие или же какая-то картинка на заборе может рассказать о машем мире игроку куда больше, чем десятиминутный диалог, который просмотрят 7.42% вашей целевой аудитории. Чем рассказывать устами второстепенного героя о том, почему и как сильно он не любит гоблинов, лучше дайте ему бонус 0,003% к урону против них, и начните знакомство с ним со сцены истребления этих бедолаг.

Картинка

Так же, сразу договоримся: картинка = графика + дизайн локаций.
Картинка должна быть «на уровне». Посмотрите как выглядят другие игры на той платформе, для которой вы создаёте игру, и сделайте «не хуже». Существует масса примеров того, как в погоде за технологиями, разработчики забывали сделать саму игру. В итоге – плачевная статистика продаж. Один первый Crysis чего стоит.
Помните, что важна не только детализация, HD-текстуры и прелести современных шейдеров, но и дизайн локаций. Технологии должны подчёркивать красоту вашего дизайна, а не создавать её.
image

Геймплей

Как было сказано выше, игра может не только показать и рассказать историю: здесь вы сами в главные роли. Вы – герой, прошедший через все испытания. Используйте это! Помните, что играя в игру, игрок прикладывает усилия. Как следствие, ему становится небезразлична судьба его персонажа. Заставьте его принимать решения, и пусть он столкнётся с их последствиями. Я сейчас говорю не о сюжете, а именно о геймплее: выбор той или иной ветки развития сделает недоступным что-то, но окупится в чём-то другом. Я имею ввиду не просто какие-то cкилы, но и, возможно, целые локации, или даже квесты.
Всегда помните что за игру вы делаете, и для кого (кто целевая аудитория). Не внедряйте в проект идеи, идущие в разрез с сюжетом, сеттингом или чем бы то ни было ещё. То же касается и остальных составляющих игры: Если вы можете сделать красивый взрыв быстро=дёшего, это совсем не значит, что он нужен проекту про садоводство. Конечно, этот пример очень явный, но вам могут встретиться не такие очевидные моменты, тем не менее лишающие вашу игру гармоничности. Будьте внимательны.

Идея игры – не главное

«Почему люди должны выбрать именно вашу игру среди всего современного многообразия?» — первый важный вопрос, который стоит себе задать. Его в той или иной форме задают себе все, и многие достойно на него отвечают, придумав и достойно реализовав отличную идею. Хорошо, вы разрекламировали вашу идею, и люди выбрали вашу игру. «Почему они должны продолжить в неё играть, принося вам прибыль?» — это второй важный вопрос, который следует себе задать. Выражаясь фигурально, идея игры – ствол дерева, а всё остальное – всевозможные детали, артдизайн, саундтрек, всё то, что окружает вашу идею — крона. Ствол дерева может быть могучим и сильным. Но без кроны дерево смотрится пусто и безжизненно.
image
Говоря о том же самом с другой точки зрения, можно сказать: «Идея есть у всех. Куда важнее знать, как её реализовать». И именно процесс реализации вашей идеи – создание кроны вашего дерева таит в себе массу подводных камней, не видных, пока впервые на них не наткнёшься:

Как расположить кнопки и панели интерфейса?
Как выровнять баланс?
Почему никто не покупает игровую внутриигровую валюту?
Почему такие низкие оценки? Ведь у нас такая замечательная игра!

И так далее, и тому подобное…

Игра с точки зрения игрока

Почаще задавайте себе вопрос «как выглядит наш проект с точки зрения игроков». Помните, что работая над игрой, вкладывая в неё свои силы, вы лишаетесь возможности объективно оценивать ваш продукт. Придя поиграть в вашу игру, первое, что увидят люди – это скорость загрузки, качество картинки, и, что самое главное — юзабилити, управление игровым процессом. Только потом, может быть, игрок сможет оценить все прелести вашего проекта.

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

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

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

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

Социальная составляющая.

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

Монетизация

Не секрет, что наиболее эффективной моделью распространения считается F2P (free to play). О ней и поговорим.
Самое плохое, что вы можете сделать – это думать «как бы содрать с игроков побольше денег». Такое стремление приводит к несбалансированному донату, разрушающему экономику игры, а как следствие, снижение популярности игры и, соответственно, уменьшение платёжеспособной аудитории. Кроме того, многие решения, принимаемые под руководством такой политики, оказываются неэффективными.

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

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

Далее, сделайте своеобразный «конструктор» из платных опций: хочешь больше опыта? 300р/мес. Хочешь быстрое ездовое? +300р/мес. Хочешь большие сумки? +150р/мес. Склады? Ещё 150. И т.д.

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

Интерфейс

В больших компаниях разработкой пользовательского интерфейса занимаются специально обученные люди. То есть делать интерфейсы для выпускаемых программных продуктов – отдельная должность, и это не спроста. Интуитивно понятный пользовательский интерфейс — целая наука. И если вы не можете себе позволить нанять специалиста в этой области – не изобретайте велосипеды, но будьте внимательны когда заимствуете принцип построения окон, кнопок и т.п. в каком-то приложении. Мне доводилось видеть, как на браузерную игру натягивался интерфейс, разработанный для очень успешной игры из топа планшета. О том, почему это плохо, и как быть, далее:

image

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

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

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

Заключение

Всё выше написанное – не истина в последней инстанции, а мой личный опыт. Если кто-то обладает бОльшим опытом, и желает указать на ошибки, буду рад видеть ваши комментарии по этому поводу.

Спасибо за внимание, long live play.

Автор: SentineL88

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js