Как сделать игру для чайников
Как программировать игры: языки, движки и все, что нужно знать начинающему разработчику
Сперва это кажется дико сложным, но чем глубже погружаешься, тем лучше получается. Рассказываем, как начать делать игры,
Главное — в самом начале узнать, что нас ждёт, чтобы потом не свернуть на полпути, пройти все этапы и выпустить релиз. Подробно всем тонкостям, навыкам и хитростям мы обучаем на курсе «Профессия разработчик игр на Unity». Здесь же рассмотрим первые шаги, которые ждут разработчика.
С чего начать разработку игры
Рассчитываем, что вы уже придумали, какой будет игра, разработали концепт и уже ищете способы разработки. Настало время реализовать свои задумки. Есть несколько вариантов, как это сделать.
Все три способа подразумевают какое-никакое программирование, так что знать хотя бы основы вам точно придётся.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Языки программирования
Подойдут любые, от Python и C до Pascal и Java. От выбора зависит то, сколько времени уйдёт на игру и для какой платформы будет релиз. Также язык влияет на производительность.
На C++, например, пишут для любой платформы, а вот PHP или JavaScript лучше подходят для браузерных игр. Если же вы используете один из движков, то лучше вдобавок изучать C# — на нём прописывают скрипты. Главное — не недооценивать языки. Движок Unity дружит и с JavaScript, а MineCraft был написан на Java.
Движки для создания игр
Среди современных выделим:
Crysis, Far Cry, Sniper II: Ghost Warrior.
Gears of War 4, Dead Pool, Mortal Kombat X, Tekken 7
Outlast, Assassin’s Creed: Identity, Temple Run, Deus Ex: The Fall.
Большой популярностью пользуется Unity, он рассчитан как на 2D-, так и на 3D-игры. Он подходит под разные платформы и языки. На нём создается большинство мобильных и инди-игр. Он бесплатный, но если вы зарабатываете на своих играх больше 100 тысяч долларов в год, то придётся делиться ими с разработчиками Unity.
Как строится игровой код
Допустим, вы выбрали язык и движок, составили план. Что дальше? Продумайте всё от и до. В зависимости от выбранного вами пути (чистый язык или использование движка) будет отличаться и то, что вас ждёт на разных этапах разработки.
Если делаете всё своими силами, то на ваши плечи ляжет работа над физикой, механикой, графикой, искусственным интеллектом и балансом. Если выбрали движок — можно вздохнуть спокойно.
Физика
Физика — это то, как мир игры реагирует на действия игрока или объектов внутри мира. Вот какие могут быть физические действия:
Если пишете сами, то для обычного прыжка придется:
Не говоря уже о том, что нужно работать над анимацией всего этого.
В движках уже прописана физика, и нужно лишь подогнать её под свои нужды. Для примера:
И для этого не придётся писать код вообще — всё уже предусмотрено.
Механика
Игровая механика — это то, какими способами игрок взаимодействует с миром. Совокупность игровых механик составляет игровой процесс. Например, вы уже реализовали возможность ходьбы и прыжков. Эта игра, скорее, платформер.
А если добавите механику получения опыта, повышения уровней, прокачки навыков, — игра станет походить на RPG. Механика — такая же важная составляющая игры, как и сюжет или графика.
Ещё один пример: вы написали сценарий к игре, в которой нужно сбежать из тюрьмы. Даже если игра будет самой линейной в мире, игровая механика может всё изменить:
Будучи программистом, придётся уделять много времени механике.
Графика
Раньше графика создавалась с помощью программного кода, потом придумали текстуры и спрайты, а для 3D-игр используются модели. Подготовив все текстуры и модели, нужно добавить их в игру.
В движке достаточно просто загрузить нужные файлы и прикрепить их к нужным моделям. Иначе — прописывать всё вручную, в том числе и анимацию.
Для анимации 2D-объектов создаётся текстура по типу той, что на изображении выше. Она разбивается на равные части, которые сменяют друг друга. То есть игрок сначала видит первый кадр, который потом сменяется на второй, а затем на третий — это создает иллюзию движения.
Если брать 3D-модель, то используется скелетная анимация — модель как бы нанизывается на специальный каркас (скелет) с подвижными частями. Движение этих частей прописывается в коде.
На скриншоте видно, как персонаж сгибает руку в местах с точками (вершинами). Таких точек может быть очень много, если требуется сложная анимация — жесты, мимика и так далее.
Создаётся анимация так: прописываются точки координат или захватываются движения реального актера.
Первый способ сложный, но дешёвый, потому что от программиста требуется только прописать движения — сдвинуть точку A1 на координаты (50,240).
Второй проще, потому что достаточно одеть актеров в специальные костюмы с маячками, отснять это и перенести в игру. Но тут, конечно, придётся оплатить костюмы, павильон, работу операторов, постановщиков и актёров.
Баланс
Чтобы играть было интересно, нужен баланс. Это значит, что у каждого противника должны быть сильные и слабые стороны. Так геймплей не превратится в убийство одуванчиков или десятичасовые перестрелки с боссом.
Искусственный интеллект
Если геймплей предусматривает взаимодействие с NPC, то им нужно прописать модели поведения: реакцию на действия игрока, агрессивность, возможность вести диалоги или торговать.
Работа с ИИ — одна из самых сложных, потому что стоит учитывать множество ситуаций, для которых задумана реакция. Например, когда вы пытаетесь пройти в дверь, ваш компаньон обязательно должен преградить вам путь, чтобы жизнь малиной не казалась.
На какие платформы ориентироваться
Разобравшись с тем, как всё будет устроено в игре, можно приступать к разработке. Но чтобы проект был коммерчески успешен, выбирайте популярные платформы. Всего можно выделить четыре:
У каждой из этих платформ своя аудитория с вполне конкретными предпочтениями. На мобильных устройствах предпочитают головоломки (2048, 94%, Cut the Rope), аркады (Subway Surf, Temple Run, Angry Birds) и казуалы (Talking Cat Tom, Kitty Kate Baby Care, Hair Stylist Fashion Salon).
На компьютерах играют в MMORPG (Lineage II, World of Warcraft, Skyrim) или шутеры (Battlefield, Call of Duty, Counter-Strike).
Приставки подходят для гонок (Need for Speed, Blur, Burnout Paradise), приключенческих игр (Assassin’s Creed, Portal, The Walking Dead) и так далее.
В браузерах собирают пазлы и строят фермы.
Конечно, можно сделать и головоломку для PS4, и гонку для браузера — никто никого не ограничивает.
Заключение
Будьте готовы к тому, что ваша первая игра не станет шедевром. Но не расстраивайтесь, потому что такие проекты отлично подходят для обучения.
Подтяните свои навыки в программировании, чтобы научиться создавать игры, изучите современный язык, который часто используется разработчиками, и выпустите свой первый проект. А наш курс поможет вам в этом.
Профессия
Разработчик игр на Unity
Годичный учебный курс с полным погружением в профессию разработчика игр. Вы изучите основы геймдизайна, научитесь разрабатывать 2D-, 3D- и мобильные игры, освоите способы их монетизации и продвижения.
Геймдев для чайников или как в одиночку сделать игру
Начало пути. Идея и графика
Все началось в декабре 2016-го года, когда я встретился с тремя бывшими одногруппниками.
Мы заговорили за настоящее, кто кем работает, чем занимается, и конечно же заговорили про будущее.
Так вышло, что я графический дизайнер, двое других программисты (C# и Swift), а четвертый «перспективный».
Четвертый рассказывал про то, какие огромные возможности в этом мире и бла бла бла… И в этот момент меня осенило. Я за столом с двумя программистами, почему бы не объединиться и не сделать что-то свое? Вот так и появились первые мысли о геймдеве.
Первую неделю после встречи мы обсуждали идеи, определились с одной и я приступил к графике. Графику делал в векторном редакторе Adobe Illustrator, чтобы в любой момент можно было изменить разрешение, так как мы еще не совсем понимали какое именно разрешение нам нужно.
Набросал графику и на следующий же день один из программистов говорит, что не хочет продолжать, так как нашел занятие поинтереснее. За ним сливается и второй.
И тут я понял, что у меня появилась мечта и она начинает отдаляться.
Новый год — новые силы. Программирование
Наступил новый год и я понял, что опускать руки не стоит и нужно самому довести начатое до конца. И сразу наткнулся на Corona SDK — кроссплатформенное решение для 2D игр. Есть возможность делать на PC, Android, при наличии Xcode и на Mac, iOS.
Я не программист, по этому начал проходить туториалы прям на их сайте, очень удобно и информативно. Так я познакомился с языком программирования Lua, именно на нем придется писать, если решил использовать Corona SDK. Язык несложный, скриптовый. Lua широко используется в геймдеве для написания уровней и всяких расширений, в том числе и в игре World of Warcraft он активно используется. Статья «Lua за 15 минут» поможет быстро разобраться с языком.
Прошел все туториалы и принял решение сначала делать под Android. Ибо у меня PC, а не Mac, да и устройств на Android в наличии было аж 4, в то время как яблочных девайсов у меня нет.
Месяца мне хватило, чтобы с консультациями от моего хорошего друга программиста (не одногруппника) набросать функционал игры. Советы он давал ценные, по этому мы стали партнерами.
Дайте больше шума. Музыка и звуки
Игра все больше становилась похожа на готовый продукт. И вот я нахожу подходящие звуки, но их длительность меня не устраивала, на помощь пришел Audacity. Подрезав звуки и переделав их в wav, я получил нужные мне звуковые эффекты. Сразу после этого нашлась и музыка, это был ambient с бесплатной лицензией, который пошел на резку в Audacity и был зациклен. Таким образом музыка в игре занимает меньше мегабайта и состоит из одного трека и нескольких звуков.
Важно: Бесплатные звуки и музыка должны иметь соответствующую лицензию на использование, это может быть как полностью бесплатная лицензия без указания автора, так и лицензия Creative Commons, которая позволяет бесплатно использовать, загружать и даже изменять произведения, но автора стоит указать в credits/титрах.
Звон монет и шепот денег. Монетизация
Стал вопрос о монетизации. Игра бесплатная, простая, без внутренних покупок, по этому оставался только вариант с рекламой. На Android, да и на iOS с этим проблем нет, к тому же Corona SDK поддерживает самые популярные рекламные плагины. Мой выбор пал на Appodeal. Он работает со всеми крупными сетями мобильной рекламы, для того чтобы показывать только самую дорогую рекламу внутри приложения.
В игре использовал межстраничное объявление и видео за вознаграждение. То есть игрок сам решает, смотреть ему видео или нет, если да, то он получает вознаграждение, в моем случае он получает возможность продолжить с того же места, на котором проиграл. А вот межстраничное объявление игрок увидит после каждого проигрыша, как по мне, это не мешает игровому процессу.
Игровые сервисы. Тестирование и первая публикация
Игру планировал выпустить сразу на двух торговых площадках — Google Play и Amazon. На первой аккаунт разработчика стоит 25$, а на второй бесплатно. По этому начал именно с Amazon. К тому же у меня 2 планшета от Amazon и мне близка их экосистема.
Для списка лидеров и достижений у Amazon есть Game Circle, у Google — Google Play Games Services. Проблем ни с одним, ни с другим не возникло, так как документации у Corona SDK по ним предостаточно.
На этапе тестирования дал друзьям поклацать игру, замечания себе выписал, внес поправки, а для отслеживания ошибок использовал adb logcat. Исправил баги и 6-го марта игра увидела свет на Amazon.
5 звезд на Amazon. Создание промо ролика. Публикация на Google Play
После двух положительных оценок на Amazon сразу же купил аккаунт разработчика в Google Play, цена вопроса 25$. Это пока единственные затраты на игру.
Принялся за создание промо ролика для игры. Выбор пал на Adobe After Effects, так как мне близки продукты от Adobe. Честно скажу, не было опыта в создании видео, но у меня как-то быстро получилось разобраться и на видео потратил всего день. Просто очень хотелось поскорее опубликовать игру в Google Play.
И вот момент истины, промо ролик готов, аккаунт куплен, осталось заполнить описание игры, нажать на кнопку и просто ждать.
Спустя несколько часов я получил уведомление, что игра опубликована. Это было 19-е марта 2017-го года.
Выводы
Для разработки под iOS все тоже самое, но нужен Mac с Xcode, яблочные устройства для тестирования, а за аккаунт разработчика нужно платить 99 долларов каждый год, а это уже не 25$ за Google Play. По этому если все таки речь идет о геймдеве с минимальными вложениями, то либо Amazon, где вообще платить не надо, либо Google Play, с его четвертью Франклина.
Так в одиночку, используя кроссплатформенный движок на простом и понятном для начинающих языке Lua и с минимальными затратами за 3 месяца можно с нуля сделать игру и выпустить ее. Верьте в себя и общайтесь с людьми, которые связаны с геймдевом, community очень помогает.
Удачи в начинаниях и доводите проект до конца, ибо только так можно чему-то научиться и получить опыт.
Как создаются видеоигры от идеи до продажи
Многие геймеры с удовольствием проходят игру за игрой и требуют от разработчиков еще, но понятия не имеют, сколько времени уходит на создание видеоигр. В зависимости от масштабов проекта и сложности реализации его отдельных составляющих, производство одной игры может занять как несколько месяцев, так и перерасти в годы тяжелой работы.
Именно поэтому разработка видеоигр – это титанический труд, который даже сложнее производства фильмов. В этой статье разберем все этапы создания игр по порядку, чтобы вы поняли, как это происходит.
Цель будущего проекта
Все начинается с того, что руководитель проекта должен придумать цель для будущей игры. То есть, если команда хочет, чтобы их детище стало мегапопулярным и собрало огромную кассу, то предстоит длительное время размышлять, что это будет за игра, почему ее могут купить и, самое главное, как спланировать задачи, чтобы проект удалось выпустить вовремя, пока на него еще есть спрос.
На первом этапе руководитель проекта также должен определиться с жанром. По сути, это вообще фундамент каждой видеоигры, который в процессе разработки может обрастать дополнениями. Тем не менее полностью менять жанр посреди производственного процесса глупая затея, проще будет начать создание с нуля. Также на первом этапе нужно определиться с сеттингом. Сеттинг – это разновидность стилистик или виртуальных миров, к которым принадлежит проект. Например, фэнтези, sci-fi, стимпанк, постапокалипсис, анимэ, Вторая мировая война и еще масса других вариантов. Когда разработчики поставили перед собой цель, определились с жанром и сеттингом, они могут идти дальше.
Инструменты для разработки
Первым делом разработчики определяются с языком программирования, который и будет основным инструментом для разработки игры. Этим занимается команда программистов, которая должна в зависимости от жанра и сеттинга подбирает подходящий язык программирования. С его помощью создатели начинают оперировать двухмерными и трехмерными объектами в игре, а также привязывают к нему изображения, видео и звуки. Язык программирования словно нить с иголкой помогает сшить все элементы будущей игры воедино.
Также важной частью инструментов для разработки является движок. Сегодня уже никто не делает игры используя исключительно один язык программирования, потому что есть готовые модули, которые и называются движками. Они содержат в себе базовый функционал, который упрощает разработку, но чтобы слепить из готовых инструментов стоящую игру, придется писать много кода. Собственно, это и отнимает больше всего времени в процессе разработки.
Игровая механика
Когда разработчики определились с инструментами, они начинают создавать игровую механику. На деле, это самая важная составляющая любой игры, а не графика, как считают многие неокрепшие в мире видеоигр умы, да простят меня графодрочеры. Механика проекта – это реализация его геймплея. Разработчики должны прописать как будет двигаться персонаж, что будет происходить во время битвы с противниками, как работают бонусы или прокачка и многое другое, зависит от жанра.
Если представить игру в виде автомобиля, то его механика – это все основные системы внутри конструкции, которые заставляют транспортное средство двигаться и выполнять какие-то задачи. Вряд ли вы сильно обрадуетесь, если машина будет иметь потрясающий внешний вид, но из-за кривой механики во время езды ее постоянно будет вести то влево, то вправо. Именно поэтому механику в играх всему голова.
Прототипирование для чайников: как сделать хорошую игру
Что касается реализации игровой механики, то все начинается с программирования объектов, к которым относится главный герой и другие модели. Далее идет программирование управления и написание физического движка. Второй, как правило, отвечает за движения объектов, которые происходят без воздействия на них игрока. И, наконец, разработчики садятся за написание искусственного интеллекта (ИИ), который помогает оживить NPC, врагов и прочих персонажей в игре.
Место действия
Когда игровая механика готова, разработчики переходят к созданию уровней. Получается, что у них на руках уже есть определенная сводка правил, которая работает, и нужно разработать места, где они будут применяться. В каждой игре есть уровни и определенные локации. Даже в проектах с открытым миром есть конкретные области, которые реализуются отдельно и потом собираются по кусочкам, просто в готовом виде игроки это не замечают.
Как правило, созданием уровней занимаются левелдизайнеры. Причем сотрудников на эту должность берут из числа заядлых геймеров. Только человек, который регулярно играет, может понять, как от перемещения главного героя и объектов в конкретной локации будут меняться игровые ситуации. Все это прорабатывается до мелочей, так что не думайте, что уровни создаются на скорую руку, лишь бы сделать красивое оформление. Над каждым участком игры работают профессионалы и это занимает кучу времени.
Что из себя представляет профессия геймдизайнер и что нужно делать на должности
Внешний вид игры
Только после того, как у проекта уже появилась механика и базовые модели уровней, разработчики садятся за графику. Им нужно украсить блеклые формы красивой картинкой, чтобы подчеркнуть сеттинг проекта и в игру было приятно играть. Изначально дизайнеры рисуют арты, которые кучу раз переделываются или улучшаются. Когда появляются окончательные варианты артов, в дело вступают люди, которые занимаются 3D моделированием. Они создают виртуальные модели на основе рисунков.
Далее разработчики делают анимирование 3D моделей, которые ранее были созданы, и переходят к завершающему этапу создания графики. На нем нужно сделать фоны для уровней, добавить какие-то спецэффекты и украсить игровое меню. Когда все наконец-то будет готово можно двигаться дальше.
Увлекательная история
Как правило, уже после создания «костяка» игры и графической составляющей создатели переходят к сюжету. Чтобы проект купили, он должен быть интересным, и поэтому с каждым годом на эту составляющую игры делают все больший акцент. Есть студии, которые изначально придумывают сюжет и прописывают его до мельчайших деталей, а потом уже садятся за разработку. Такой вариант тоже возможен и он работает, но большая часть игр все же делается по старинке, сразу со скелета, а потом уже добавляют какой-то сюжет.
Если вы думаете, что на этом этапе достаточно придумать историю и как-то подвязать под нее игру, то ошибаетесь. Разработка сюжета включает в себя реализацию диалогов, видеовставки, заскриптованные сцены, случайные события в игре и даже изменение повествования в зависимости от действий игрока, если это предусмотрено игрой.
Звуковое сопровождение
Согласитесь, какой бы красивой и увлекательной не была игра, если в ней нет звука, то вы вряд ли задержитесь в ней дольше, чем на пару минут. Последний этап процесса разработки включает в себя создание звуковых эффектов. Они не просто помогают услышать игру, а могут положительно сказаться на ощущении атмосферы. Опытные разработчики делают невероятные вещи со звуком, которые помогают их проектам громко выстреливать на этапе продаж.
Кроме звуковых эффектов, также записывается музыка и делается озвучка персонажей. Без этого тоже никуда, и часто богатые студии даже привлекают известных музыкантов или актеров на это дело. В итоге в игре могут звучать песни вашей любимой группы, либо какой-то персонаж заговорит голосом популярного голливудского актера. Когда в проекте появляется звук, он практически завершен, но разработчикам нужно решить последнюю задачу, от результата которой напрямую зависит успех игры.
Тестирование
Практически за каждый вышеописанный этап отвечает отдельный человек или группа людей. Игры всегда создаются по частям, параллельно с завершением определенных ее кусочков программисты собирают из всего этого полноценный пазл. После того, как они накинут на проект звук, можно перейти к этапу тестирования, который часто доставляет больше всего проблем.
На этом этапе финальная версия проекта переходит в руки тестировщиков. Им нужно месяцами проходить один участок игры за другим и выискивать в нем ошибки. Каждая игра — это огромный проект, над которым работают десятки, а то и сотни человек, поэтому проблем в них куча. Задача тестеров отловить большинство из них и отдать отчет программистам, чтобы те исправили ошибки. Именно большинство, ведь избавиться от всех багов невозможно. Не было еще ни одной игры, которая на релизе была бы идеальной. Такой ее может сделать только качественная поддержка от разработчиков в будущем, но об этом позже.
Кто такие игровые тестировщики и почему это одна из самых неблагодарных профессий в IT
Продажа игры
Когда проект наконец-то готов или находится на завершающей стадии разработки, в дело вступает издатель. Его основная задача заниматься рекламой, локализацией и выбором площадок для продажи проекта. Если игру делает инди-студия, то этим она занимается самостоятельно, потому что у нее либо ограниченный бюджет, либо его нет. Издатель же дает деньги на реализацию в самом начале разработки, поэтому он так важен для создателей видеоигр.
Пожалуй, самая сложная задача – это выбор способа распространения игры. Дело в том, что сегодня есть множество онлайн площадок с играми и с каждым годом их становится все больше. У всех этих Steam, Origin, Epic Store и прочих виртуальных магазинчиков своя аудитория и свои правила для разработчиков. При этом именно издатель выбирает с кем сотрудничать, чтобы ему было выгодно, и потом игра может появиться либо только в одном магазине, либо во всех сразу. Естественно, не обходится без физических носителей, но их выпускают только если проект популярен и его делает крупная компания. Инди-игры на дисках вы не увидите, их можно купить только в онлайн магазинах, есть пара исключений, но они появляются только в том случае, если проект от независимых разработчиков стал известен во всем мире. Чтобы заработать еще денег, выпускают тираж дисковой версии.
Техническая поддержка
Казалось бы, после того как игра разработана и поступила в продажу, разработчики могут забить на нее и спокойно ждать поступления денег на счет. Некоторые так и делают, только с таким подходом на одном выпущенном проекте их существование как разработчиков игр заканчивается. Популярные студии постоянно следят за развитием игры и непрерывно выпускают патчи, которые исправляют ошибки в проекте или что-то в нем меняют, например, баланс, если он важен в игре. У некоторых компаний даже есть полноценные отделы технической поддержки, где люди не занимаются разработкой проекта, а подключаются только после релиза для создания патчей.
Также к поддержке игры можно отнести создание многочисленных DLC, на которых можно снова заработать денег. При этом они добавляют в уже знакомую игру еще несколько часов геймплея. Некоторые DLC получаются прямо-таки отличными, но есть и те, за которые вы отваливаете чуть ли не всю стоимость полноценной игры, а получаете контента буквально на час.
Именно так выглядят все этапы разработки видеоигр, и лишь изредка последовательность может меняться. Сказать сколько времени занимает разработка игры, даже в среднем, сложно. Если это конвейеры, которыми так любят злоупотреблять ребята из EA и Ubisoft, то им достаточно 10-12 месяцев, чтобы выпустить новый CoD или Assassin’s Creed.
Когда речь идет о создании новой части GTA, то на разработку уходят годы, и это при том, что игру делают сотни человек. Соответственно, предугадать сколько будет разрабатываться игра невозможно, этого не знают даже создатели. Ведь мы прекрасно знаем, что практически каждый третий проект по несколько раз откладывают, но теперь вы хотя бы понимаете почему, работы тут навалом.