Гейминг будущего: как технологии изменят компьютерные игры

Поддержка

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

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

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

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

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

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

Идея

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

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

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

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

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

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

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

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

Обучение геймдизайну в России

В России на гейм-дизайнера в вузах не учат — таких образовательных программ нет. Пройти обучение можно только на специализированных курсах.

Геймдизайн можно осваивать самостоятельно, но наступает момент, когда надо выбрать оффлайн- или онлайн-курсы

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

Новичкам желательно изучить:

  • программы Sketch, Photoshop;
  • принципы создания интерфейса Apple’s UI Do’s and Don’ts, Google Material Design;
  • создание 2D-объектов в Paint Tool SAI, Gimp, Photoshop;
  • создание 3D-объектов: Max (отрисовка), Blender (сложное обучение), Maya (анимация);
  • игровые ассеты (элементы игрового контента): Open Game Dev Art (библиотека графики), Behance (шрифты и иконки), KennyNL (готовые к использованию объекты).

Платные онлайн-курсы обучения геймдизайну

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

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

Бесплатные курсы геймдизайна

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

Лучшие курсы геймдизайна в Москве

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

Начинающим – Stencyl или GameMaker

Если вы только начинаете делать игры и не имеете никакого опыта в программировании, вам лучше начать с простейших инструментов. Из таковых самые популярные и общепризнанные – это Stencyl и GameMaker. Оба просты в освоении новичками, и на их основе уже создано несколько качественных игр.

Stencyl позволяет делать игры без программирования. Интерфейс полностью основан на перетаскивании, игры можно выпускать на Windows, Mac, Linux, iOS, Android и Flash. Если вы когда-нибудь имели дело с чем-то вроде Scratch, вы сразу узнаете LEGO-подобный подход к построению кода посредством размещения блоков. Stencyl задуман для простого создания спрайтовых игр, поэтому чаще служит основой паззлам и сайд-скроллерам. Что-нибудь сложное сделать будет проблематично, так что если решили работать над RPG или стратегией, присмотритесь к другому софту. С помощью Stencyl на свет появилось несколько популярных игр, в том числе Impossible Pixel и Zuki’s Quest. Также в нём есть встроенное обучение, которое расскажет обо всём, что вам нужно знать.

GameMaker – другая бесплатная утилита для новичков, с помощью которой можно делать игры для Windows, Mac, iOS и Android. Как и в Stencyl, тут почти всё работает на перетаскивании, но есть ещё и хуки для многопользовательских игр, ссылки на внешние SDK, возможность покопаться в коде и многое другое. Бесплатная версия при экспорте накладывает водяные знаки, но, тем не менее, GameMaker отлично подходит для первого раза и содержит встроенное обучение основам. Тут нет такового жанрового ограничения, как в Stencyl, и можно найти отдельные руководства для разных типов игр. В GameMaker сделали оригинальную версию Spelunky и Hotline Miami.

Конечно, всё не ограничивается этими двумя вариантами. Buildbox – относительно новая утилита, доступная в течение пробного периода и предлагающая тренировочную программу для изучения её работы, а GameSalad – уже давно известная популярная платформа, правда на неё жалуются из-за багов и нестабильной работы. Construct стоит внимания, если хотите делать игры на HTML5. В каждом случае главная проблема в том, что придётся сдерживать свои дизайнерские идеи. Это софт для новичков, и вы просто сломаете его в попытке сделать что-то сложное. То есть, игры получатся забагованными и нерабочими, если вы попытаетесь выйти за рамки задуманной системы. И всё же, это превосходное место для старта и подходящий вариант при отсутствии опыта в программировании.

Screeps

А вот и ещё одна популярная игра по программированию для всех программистов – Screeps! Это онлайн-стратегия в реальном времени, которая требует от вас хотя бы некоторых базовых знаний в области программирования. В этой игре вам нужно создать свою собственную колонию в определённом мире, доступном всем игрокам. А колония сможет добывать ресурсы, создавать юнитов и завоевывать территории. Более того, необходимо запрограммировать реакцию юнитов на события, и вы можете сделать это, используя язык программирования JavaScript . 

Вам также необходимо знать, что написание скрипта для Screeps ничем не отличается от написания любого другого приложения JavaScript. И вы также можете разделить свои скрипты на модули с помощью синтаксиса Node.js, чтобы сделать игру более удобной.

Кроме того, вы можете использовать другие языки, такие как C++ и т. д., А также можете компилировать их с помощью WebAssembly. А также Screeps позволяет вам вносить свой вклад в разработку игрового движка и изменять поведение игровых объектов.

Аркадные автоматы

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

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

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

UNITY

Кроссплатформенный коммерческий игровой движок, разработанный Unity Technologies. Он использовался для таких игр, как Untitled Goose Game, Ori and Will of the Wisps и Hollow Knight.

Фото: epicgames.com

Для разработки: 2D- и 3D-игр.

Платформы: Windows, macOS и Linux.

Языки программирования: C#.

Стоимость: Бесплатно для личного пользования предоставляется студентам и любителям, а также небольшим компаниям, которые зарабатывают менее 100 000 долларов в год. Помимо этого, существуют годовые планы, начинающиеся с 399 долларов в год или 40 долларов в месяц.

Обучение: Unity предоставляет некоторые бесплатные ресурсы, чтобы помочь новичкам начать работу с движком. Но в рамках программы Unity Learn Premium она предоставляет гораздо больше возможностей, включая курсы, учебные пособия и даже сертификаты. Unity Learn Premium в настоящее время бесплатна до 10 июня 2020 года, но обычно стоит 15 долларов в месяц.

Начало работы: https://learn.unity.com/tutorial/create-your-first-unity-project

Команда

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

Геймдизайнер

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

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

Программист

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

1. Не пытайтесь объяснить, как им следует что-то делать. 2. Предоставляйте максимально полное описание задачи или механики, которую нужно сделать. 3. Не забывайте писать о других механиках с которыми будет связана эта и то как они должны взаимодействовать между собой. 4. Программист должен видеть картину целиком, старайтесь объяснить или описать общую структуру той или иной группы задач.

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

Художник

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

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

Маркетолог

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

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

Менеджер

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

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

А пока, к примеру, программист пишет задачу на обрезание всех иконок в другой размер, он не программирует т.е. дело стоит.

Ресурсы🎁

Все нижеперечисленные ресурсы и программы опробованы мною лично и многими из них я пользуюсь до сих пор!

Для заметок:

  • Notes для Mac ()
  • Google docs ()
  • Trello

Для совместной работы (для команд):

  • Google drive
  • GitHub (). Требуются git и Unity .gitignore.
  • Unity Collab. Самый простой сервис из трех. У бесплатной версии есть ограничения.

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

Для разработчиков:

-Книга «The Art of Game Design» . Автор Джесси Шелл

-Сайт Gamasutra

Игровая механика

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

Молодые подростки (основная часть игровой аудитории) в большинстве своём оценивают игры по качеству графики, и не замечают, что красивые игры хоть и популярны, но их популярность длится всего несколько месяцев после релиза. А в сердцах игроков и в золотых списках вечной игровой классики навечно остаются совсем другие игры, может быть немного неказистые на вид, но имеющие потрясающе захватывающий геймплей. Чем разнообразнее и интереснее игровые возможности, тем дольше игрок остаётся в игре. Например, за что получила всеобщую любовь «MineCraft»? Уж точно не за примитивную кубическую графику, а за то, что эта игра дарит поистине безграничные игровые возможности.

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

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

Объекты

Основой всей механики являются игровые объекты. Главный герой игры, компьютерные соперники, второстепенные персонажи (NPC), бонусы, подвижные объекты, декорации – всё это игровые объекты со своими свойствами и возможными действиями.

Управление

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

Физический движок

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

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

Искусственный интеллект (ИИ)

ИИ отвечает за поведение компьютерных врагов или союзников.

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

Программирование

Совет

Примечание переводчика: на самом деле в Unity используется C#, который похож на C++

  1. Типы данных и переменные. В основе кода лежат данные, которые хранятся в переменных. Можно объявить переменную так:
    int — тип данных, i — имя переменной, = 0 — значение переменной.
    Часто используемые типы данных: int и long — для целых чисел, float и double — для чисел с плавающей точкой, string — строчные данные.
  2. Условия. С помощью оператора if можно создать условия для выполнения кода:

    Используя оператор else, можно расширить условие и отобразить что делать, если условие не соответствует истине:

  3. Циклы for/while. While-циклы повторяют части кода, пока условие остаётся истинным. Как только условие перестаёт быть истинным, цикл обрывается.

    For-циклы похожи на while-циклы. Для while мы пишем так:

    Равнозначный for-цикл будет таким:

  4. Структуры данных. У нас есть данные, с которыми можно взаимодействовать. К тому же их можно хранить в особой структуре — массиве, списке, очереди, стеке или наборе.
    Простой примера массива:
  5. Функции и исключения. Функция — это короткая строчка кода, заменяющая огромное количество строчек кода. Например, выведем функцию EatBread(), которая содержит следующее:
  1. Язык. На каком языке вы будете программировать? Чаще всего игры пишут на C++, JavaScript или C#. Языки отличаются синтаксисом и областью применения.
  2. API (Application Programming Interface). Как только вы ознакомились с базой, приступайте к изучению программного интерфейса приложения для конкретного игрового движка. Они представляют собой набор полезных инструментов, упакованных в простые классы и функции. API сильно упрощает жизнь программиста.
  3. Посмотрите примеры проектов на выбранном игровом движке. Можно найти много бесплатных примеров игр на движках Unreal и Unity. Это позволит увидеть итог и весь процесс работы целиком, а также почерпнуть идеи для своей будущей игры.

Немного вдохновения.

  • Объектно-ориентированное программирование. Делает код более естественным.
  • Соглашение об именовании. Называйте классы, методы и переменные так, чтобы вам и другим программистам была понятна их цель. Например, назовите функцию атаки ближнего боя,

    а не

    или

  • Декомпозиция. Сделайте из повторяющегося кода функцию и вызывайте её вместо копирования повторяющихся строк.
  • Шаблон проектирования Singleton («Одиночка»). Шаблон программирования, который позволяет данным храниться в одном месте.
  • Избегание статических переменных. Помимо использования синглтонов, я избегала статических переменных — они живут только на время игры, медленные и могут вести себя непредсказуемо.
  • Шаблон проектирования Observer («Наблюдатель»). Позволяет объекту узнавать о состоянии других объектов, не теряя компьютерного времени на проверку.
  • Сопрограммы. Позволяют начать выполнять действие, продолжать в течение нужного времени и затем прекратить. Я использую их для визуальных эффектов взрывов, резких движений.
  • Класс ScriptableObject. Он хранит данные с меньшими затратами, чем базовый класс MonoBehaviour.

Инструменты

  • Свой движок на C/C++. Низкий порог входа. (Примечание переводчика: на самом деле, создание своего движка требует больших усилий и глубокого знания принципов программирования).
  • Unity. Поддерживает 2D/3D. Требует знаний JavaScript/C#. Средний порог входа. Разработка для нескольких платформ.
  • Unreal. Поддерживает 2D/3D. Требует знаний C++. Средний порог входа. Разработка для нескольких платформ.
  • pixi.js. Только 2D. Требует знаний JavaScript. Средний порог входа. Разработка для браузера.
  • GameMaker Studio. Поддерживает 2D/3D. Требует знаний специального языка движка GML (Game Maker Language). Для новичков. Разработка для нескольких платформ.
  • Corona. Только 2D. Требует знаний Lua (похож на JavaScript). Для новичков. Разработка для нескольких платформ.
  • Visual Studio Code (для MacOS) — не зависает, имеет встроенную справочную информацию и удобные «горячие» клавиши.
  • Visual Studio (для Windows).
  • MonoDevelop — устанавливается с Unity, иногда подвисает.
  • .
  • .
  • Fungus.
  • Corgi Engine.
  • Dialogue System.
  • Post Processing Stack.
  • Keijiro Takahashi — работает над Unity, доступные проекты визуальных эффектов с открытым исходным кодом.
Добавить комментарий

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

Adblock
detector