Джерело:
Интересное на ДОУ
Дата публікації:
13/01/2021 13:00
Постійна адреса новини:
http://www.vsinovyny.com/7444964
13/01/2021 13:00 // Интересное на ДОУ
Всем привет! Меня зовут Виктор Антоненко, я Senior Unity-разработчик в Genesis, команда Obrio. И я действительно люблю игры. С юного возраста мне нравилось играть, и, когда дело дошло до выбора специальности, я без раздумий пошел учиться на программиста.
К своему первому самостоятельному игровому проекту я пришел пять лет назад: собрал команду друзей, мы продумали идею, разобрались, что к чему, и стартовали. Проект так и не увидел свет, но дал множество полезного опыта, который и позволил найти первую работу, связанную с игровой и мультимедийной разработкой.
Когда начал его, наткнулся на видео, где объяснялись базовые вещи, процесс и типичные ошибки, которые поставили бы под угрозу не только продукт, но и мою карьеру как гейм-разработчика. Надеюсь, моя статья будет вам так же полезна, как то видео для меня в свое время.
Это подробный гайд о том, как стартовать проект, не забросить и дойти до релиза, с акцентом на ключевых моментах и разбором ошибок. Материал я поделил на три части и буду публиковать постепенно. Статья будет полезна для начинающих разработчиков, которые уже освоили язык программирования и умеют работать с игровым движком, но не знают, как создать собственный проект, или для более опытных, которые хотят больше узнать об организации процесса.

Предполагаю, что статью могут читать люди, которые только задумываются о создании своей игры. Поэтому я подготовил мини-словарь терминов, которыми оперирует разработчик игр. Они будут встречаться в тексте.
Игровой движок, движок (Engine) — программное обеспечение, дающее базовый функционал для создания новых игр без существенного изменения основ.
Релиз (Release) — публикация продукта для поставки пользователям.
Билд (Build) — сборка приложения для тестирования или релиза.
Ассет (Asset) — файлы-ресурсы проекта, например, картинки, видео, модели, файлы настроек. При билде конвертируются в специальный формат и поставляются вместе с исполняемыми файлами.
Asset store — магазин ассетов Unity, содержащий готовые решения, плагины, модели, звуки.
Плагин (Plugin) — независимый программный модуль, динамически подключаемый к основной программе.
Платформа (Platform) — это среда и устройства, на которых будет запускаться продукт.
Сеттинг (Setting) — это среда, в которой происходят действия игры. С помощью сеттинга задаются условия реальности, истории и персонажей для продукта.
Референсы (Reference) — это источник вдохновения, которым может выступать что угодно — картина, другая игра, музыка.
Система контроля версий (Version control system) — это система, записывающая набор изменений в файлах, позволяющая зафиксировать их, чтобы возвращаться к ним в любой момент.
Планировщик задач (Task Manager) — это инструмент для планирования, чтобы создавать, приоритизировать, изменять, комментировать, прикреплять ресурсы и дополнительную информацию к задачам, анализировать рабочий процесс.
Интеграция (Integration) — введение файлов в игровой движок с дополнительными настройками и последующей конвертацией ресурсов проекта в особый формат.
Метрики (Metrics) — числовые показатели проекта.
Баг (Bug) — ошибка, описанная и зафиксированная с помощью отчета, с предоставлением шагов для воспроизведения и имеющая приоритет для исправления.
Шейдер (Shader) — программа, выполняемая на видеокарте, для задания визуальных эффектов.
AI (Artificial Intelligence) — искусственный интеллект.
Левел-дизайн (Level Design) — построение сцены внутри игры, размещение объектов, специальных зон, баланс условий.
Тем, кто уже знаком с темой, описываемые моменты могут показаться банальными, но эти простые вещи помогут избежать множества ошибок и успешно начать разработку.
Умерьте амбиции. Проекты вроде Doom Eternal или «Ведьмака» делают команды из десятков людей, а то и более. Их создание занимает несколько лет, у одного человека на подобную работу уйдет слишком много времени. Призвание вашей первой игры — дать ценнейший опыт разработки от идеи до релиза и как можно быстрее. Пройдя этот путь однажды, в следующий раз вы сможете сделать все лучше, быстрее, качественнее. Размер моего первого проекта был выбран не слишком продумано, поэтому он так и не дошел до релиза.
Ведите документацию. Нет необходимости создавать большие документы и планировать действия слишком детально. Но важно записывать все свои идеи, концепции, графики и схемы, результаты встреч и хранить их в надежном месте, не удалять. Отброшенная когда-то идея может оказаться решением проблемы в будущем, а старая схема поможет объяснить работу написанного тогда же участка кода. Однажды, после длительной паузы в разработке, чтобы разобраться в первоначальной концепции игры и вспомнить, на основе чего принимались решения по созданию механик, я поднимал старые интервью с представителями целевой аудитории, и это помогло ответить на мои вопросы. Так мы поняли, что проект начал развиваться в отрыве от предпочтений ЦА и что некоторые механики были избыточными и не принесли бы пользы.
Будьте гибкими. Первый проект не должен стать для вас непосильной задачей. Пусть это будет набор из нескольких механик, соединенных в игру, но зато каждый шаг будет понятен и прост. Для своей первой игры я выбрал Top-Down Shooter с дополнительными способами прокачки персонажа, предметов и подачи сюжета, и этого уже было слишком много! Но, как мне казалось, я зашел слишком далеко, чтобы отказываться от изначальной концепции. Это повлекло трудности в реализации — слишком большой объем работы при недостаточном опыте. Если вы уже взялись за сложную фичу, то иногда лучше не пытаться разобраться в ней до конца, а искать простые (готовые) пути решения.
Ищите обучающие материалы. Практически любую вещь уже кто-то делал до вас и, возможно, даже записал об этом видео! Вместо того чтобы тратить уйму времени на поиск решения, лучше пройти этот путь быстрее и занять себя следующей задачей.
Вот несколько ссылок:
Не стесняйтесь заглядывать в Asset Store. Иногда дешевле потратить средства и приобрести готовое решение, чем всё делать с нуля. Люди, пишущие такие плагины или разрабатывающие вижуал, являются экспертами в своей области. Покупка их пакетов будет выгодным вложением и, вероятнее всего, сэкономит ваше время и нервы. Однажды я использовал анимационный движок DoTween — у него есть бесплатная версия с ограниченными возможностями. Этот движок хорошо написан и документирован, покрывает весь функционал простых анимаций.
Никогда не сдавайтесь. Вы столкнетесь с трудностями в разработке, часто будет не хватать времени и сил, но каждый раз, возвращаясь к работе, вспоминайте, зачем вы это делаете. В сухом остатке остается только ваше упорство и целеустремленность.
Не бойтесь критики. Покажите свою первую игру друзьям. Скорее всего, её воспримут скептически, сравнивая со стандартами игр в индустрии. Обратная связь поможет увидеть, что необходимо улучшить. Когда я показал свою первую выпущенную игру друзьям и знакомым, я столкнулся с непониманием процессов в ней, обучение тоже не слишком этому способствовало. Но благодаря фидбэку можно увидеть проблемные точки, усовершенствовать игру и довести её до релиза.
Помните: никто сразу не становился выдающимся разработчиком. Многие начинали свой путь с малого. Разработка игр — такой же навык, как и другие. Его можно прокачать.

Вы как художник можете придумать что угодно, чтобы затронуть чувства будущего игрока — вызвать радость, смех, интерес, страх, мотивацию «попотеть». Несмотря на то, что работа над идеей — творческий процесс, в нем есть и техническая подоплека.
Создание идеи состоит из нескольких составляющих.
Описание — соберите все ваши наработки, схемы, скетчи и сформируйте из них целостную концепцию. Необходимо составить портрет будущего игрока (возраст, пол, предполагаемые предпочтения и интересы). Для этого следует опросить друзей, которые интересуются данным жанром, и проанализировать, что их объединяет, что они хотят от игры. Для описания игр на ранних этапах я использую такую методику: пытаюсь объяснить механику игры человеку, не связанному с разработкой, на ходу делая схемы от руки, небольшие текстовые описания игрового процесса, таблички с балансом.
Цели проекта — подумайте, рассчитываете ли вы зарабатывать с вашей игры или делаете её просто в свое удовольствие, какой опыт хотите от этого получить, в каких событиях поучаствовать. В своей первой игре я ставил цель научиться процессу разработки, сделать что-то интересное и получить опыт. Важно осознавать, к чему вы стремитесь, потому что подход к разработке при разных целях будет отличаться. Если основная цель — получить больше опыта, то стоит уделять время технологиям и не искать обходных путей в решении задач. А если закончить проект, то иногда можно пожертвовать качеством в пользу скорости. Если уверены, что это не приведет к значительным проблемам на других этапах развития проекта.
Сеттинг — соедините всю информацию об игровом мире, персонажах, создайте сюжет и опишите это максимально систематизировано. Детально проработанный сеттинг сможет ответить на множество ваших вопросов во время разработки. У меня значительный опыт в настольных ролевых играх, поэтому создание сюжета, историй и правил не составляет проблем. Начиная новую игру, после выбора жанра и основ сеттинга я с удовольствием прописываю действующие лица, особо значимые события и места. Даже если игроку не будет видна общая картина, она поможет в создании локального сюжета, ответит на вопросы, кто стоит за событиями, какие последствия действий игрока и как на это будет реагировать остальной игровой мир.
Референсы — в 2021 году действительно большим достижением является выжить придумать что-то новое. Ведь, скорее всего, кто-то уже сделал что-то похожее на вашу идею. Прочитайте рецензии, дневники разработчика, статьи об игре и обязательно сыграйте! Пусть такие проекты станут вашими идейными вдохновителями. Глядя на них, вы сможете понять, как сделать свою игру лучше, избежать чужих ошибок и придумать что-то новое.
Выбор платформы сильно повлияет на рынок, жанр и управление игрой. Классический рынок игровых консолей и компьютеров очень разнообразный. Высокие аппаратные мощности позволяют ослабить ограничения для полета фантазии, а контроллеры помогут сделать действительно интересный продукт.
Рынок обладает мощными площадками для издания игр, например Steam, GOG, Epic Games Store, с налаженным процессом их реализации. Развивающийся мобильный рынок включает в себя телефоны и планшеты. Это связывает вам руки из-за ограниченных аппаратных мощностей, но дает доступ к более широкой аудитории. В отличие от компьютера или консоли, телефон в наше время есть у большинства людей. Несмотря на более слабые возможности в плане «железа», среди мобильных игр встречаются серьезные проекты, даже если на первый взгляд они такими не кажутся.
При выборе платформы для первой игры руководствуйтесь:
Как я уже написал выше, выбор платформы влияет на то, на каком жанре нужно остановиться. У каждой платформы есть своя аудитория и технические ограничения, «идеология».
Во время поездки в транспорте, когда ваш игрок одной рукой держится за поручень, а во второй держит телефон, ему будет неудобно играть в платформер альбомной ориентации с виртуальным джойстиком и панелью кнопок с другой стороны. А игра «три в ряд» с малой вероятностью станет популярной, если вы выпустите её на консоль нового поколения.
О жанрах игр можно написать отдельную статью, но в разрезе первого опыта стоит разработать что-то действительно простое.
Вот какие жанры, я считаю, подойдут:
Топдаун шутер (Topdown Shooter) — упрощенный вариант шутера, есть вид сверху, отсюда и название. Основная механика — это стрельба и бой. Примеры: Helldivers, Alien Shooter, Hotline Miami.
Роуглайк (Roguelike) — «рогалики», пошаговая игра, обычно имеет процедурно-генерируемые уровни, смерть персонажа необратима, нужно начинать игру заново. Примеры: Angband, Dungeon Crawl Stone Soup, Dwarf Fortress — имеет элементы roguelike.
Платформер (Platformer) — динамичная игра с основной механикой в виде разнообразных платформ и перемещения персонажа по ним, также есть множество вспомогательных инструментов. Примеры: Super Mario Bros., Hollow Knight, Ori and the Blind Forest.
Казуальная или гиперказуальная игра (Casual/Hypercasual) — игра, предназначена для широкого круга пользователей. Не требует от игрока особой усидчивости и затрат на обучение. Четко очерченных границ и механик у жанра нет. Примеры: Zuma, Fruit Ninja, Candy Crush Saga.
Пазл (Puzzle) — такие игры имеют механики, связанные с решением головоломок и задач, могут касаться разных типов головоломок (логических, словесных), конструирования, визуальных пазлов. Примеры: Harry Potter: Puzzles & Spells, 2048, World of Goo.
Гоночный симулятор (Racing game) — «гонки». Жанр связан с перегонами на скорость, необязательно автомобилей. Примеры: Need For Speed, GRID, Real Racing.
Я бы не советовал браться за:
Стратегия (Strategy) — бывают трех типов: стратегия в реальном времени, пошаговая стратегия, смешанная стратегия. Могут фокусироваться на стратегии (глобальные карты, действия больших масштабов) или тактике (локальная постройка, конкретные сражения). Имеют множество механик — управление юнитами, постройка базы, технологическое развитие и так далее. Примеры: Sid Meier’s Civilization, StarCraft, Stellaris, Tropico.
РПГ (RPG) — ролевая игра, основной упор делается на развитие персонажа, сбор команды для выполнения разных задач. Имеет механик даже больше, чем стратегия: развитие персонажа, способности, управление персонажем или персонажами, диалоги и прочее. Зачастую у РПГ разветвленный сюжет и несколько концовок. Из-за большого количества механик, вариантов развития игры их тяжело тестировать и разрабатывать, это самый сложный жанр. Примеры: Icewind Dale, Dragon Age, «Ведьмак».
Приключенческий боевик (Action adventure) — сочетает в себе элементы квеста и экшн. Несмотря на относительную простоту механик, имеет высокие требования к левел-дизайну и графической составляющей. Механики сводятся к преодолению препятствий в виде головоломок, задач на скорость, реакцию или логику и боев с противниками. Примеры: Assassin’s Creed, Tomb Raider, Batman: Arkham City.
Сейчас популярное веяние в разработке игр — смешение жанров. Но для старта я бы советовал выбрать один простой жанр и попробовать найти похожие игры, чтобы понять их механики.
Вам понадобится: игровой движок, редактор контента (2D и/или 3D), редактор кода, система контроля версий и планировщик задач.
Мой набор — это игровой движок Unity, редактор кода Visual Studio Community, идущий в комплекте с установкой Unity, графическая оболочка для системы контроля версий SourceTree с использованием Git, планировщик задач Trello, так как он самый простой, а весь функционал Jira мне не нужен. Для ведения и хранения документации я использую облачные инструменты Google.
Поговорим о сложностях. Хорошо и грамотно построенный процесс работы команды — это всегда большая заслуга менеджеров, потому начинать свой первый проект в большой команде я бы не стал. Лучше самостоятельно или с минимальной командой.
Если работаете в команде, у вас должны быть четкие границы ответственности в проекте. Это отдельная тема для изучения.
Гейм-дизайнер (Game Designer) — описывает игровой процесс, создает идеи, схемы и на более поздних этапах проверяет разработку на соответствие концепции.
Художник, 3D-моделлер (2D/3D Artist) — разрабатывает контент игры: 2D-спрайты, 3D-модели и предоставляет его разработчику (или техническому художнику) для интеграции.
Разработчик (Developer) — пишет код, приводящий всё в действие, разрабатывает игровые механики, интегрирует ассеты, занимается сборкой игры.
Тестировщик (QA Engineer) — занимается тестированием с помощью различных методик, отвечает за качество продукта, выдает список багов разработчику для исправления.
UI/UX-дизайнер (UI/UX Designer) — разрабатывает дизайн, эффекты и анимации интерфейса, проводит исследование пользовательского опыта (UX), чтобы устранить неудобства.
Технический художник (Technical Artist) — интегрирует ассеты, настраивает эффекты, анимации, пишет скрипты. Является связующим звеном между художниками и программистами.
Аниматор (Animator) — создает 2D- или 3D-анимации для последующего использования в движке.
Саунд-дизайнер/Композитор (SFX Designer) — создает звуковые эффекты окружения, интерфейса, пишет музыку.
Визуальный дизайнер (VFX Designer) — занимается разработкой визуальных эффектов.
Маркетолог (Marketer) — отвечает за маркетинг игры, её распространение, аналитику и рекламу.
Продакт-оунер (Product Owner) — ответственный за игру, принимает решения об изменении курса и приоритизации задач с точки зрения бизнеса.
Аналитик (Analyst) — анализирует поведение игрока с помощью метрик и событий, прогнозирует успешность определенного функционала.
Менеджер экономики (Economy Manager) — настраивает игровой баланс, экономические показатели для внутреннего рынка игры.
Подход к любому проекту всегда должен быть индивидуальным. Успех кого-то другого не гарантирует ваш личный успех, даже если повторить весь путь. Но со всех материалов можно собрать ценный опыт и рекомендации, которые помогут избежать части типичных ошибок и проблем. Что объединяет всех, кто добился успеха, так это тяжелый и кропотливый труд.
В следующей статье мы обсудим важный момент — как не забросить начатый проект и пройти путь до релиза.
Не теряйте энтузиазм, наполняйтесь вдохновением, творите и преуспевайте!
| « |
Наступна новина з архіву We are Israel's largest human rights group – and we are calling this apartheid |
Попередня новина з архіву Новости ИТ |
» | |
|
|
||||