Наверняка каждый геймер хотя бы раз в жизни задумывался о создании собственного игрового проекта. Мало того, многие даже начинают совершать различные телодвижения в этой области. Но как правило, спустя неделю-две юный геймдев, столкнувшись с определенными проблемами, наподобие элементарного отсутствия знаний, забывает о своей мечте и садится за прохождение очередного шутера. В чем же дело? Неужели программирование игр - это настолько трудоемкий и непостижимый для обычных смертных процесс? Ответ на этот вопрос вы сможете найти в данной статье.
С уверенностью можно сказать, что программирование игр — одна из сложнейших задач в сфере ИТ. Дело в том, что для создания хорошего проекта необходимо обладать довольно обширным объемом знаний. К примеру, нужно знать несколько языков программирования, уметь писать простой и понятный код, в котором нет ничего лишнего, и т.д. Именно по этой причине разработкой игр занимаются крупные геймдев-команды, которые состоят из сотни специалистов в различных областях.
Конечно, имеются и исключения из правила. К примеру, небезызвестный программист Маркус "Нотч" Перссон в одиночку создал "Майнкрафт" — игру, которая является одним из самых прибыльных проектов за последние 10 лет. Но для того, чтобы разработать что-то подобное, нужно быть настоящим асом своего дела и иметь за плечами огромный опыт.
Начать создавать шедевры компьютерного мира теоретически может каждый. Но как можно понять, программирование игр - это очень сложно. Однако стать геймдевом может практически любой. Самое главное условие — много свободного времени и просто титаническая усидчивость. Допустим, у нас это имеется. Что же делать дальше?
В первую очередь нужно освоить хотя бы несколько самых популярных языков программирования. Без этого создать качественную игру вряд ли получится. Почему же несколько языков? Неужели одного недостаточно? Дело в том, что каждый programming language имеет свою четкую область применения. Ниже мы рассмотрим самые востребованные языки и их применение при программировании игр.
Пожалуй, наиболее универсальным языком в плане программирования игр является C++. Большинство современных игр и движков для них пишутся именно на нем. В чем же особенность данного языка? Пожалуй, одно из главных достоинств C++ заключается в огромном количестве всеобъемлющих библиотек. Благодаря этому посредством данного языка можно написать все что угодно: от маленькой инди игрушки до крупного проекта ААА класса.
Но к сожалению, C++ очень сложен в освоении. Новичок вряд ли сможет разобраться в этих дебрях. Именно по этой причине лучше начать свое знакомство с миром программирования с чего-нибудь попроще.
Python — это, пожалуй, лучший выбор для начинающего геймдева. Во-первых, синтаксис языка довольно прост. Для того чтобы начать программировать на Пайтоне, достаточно прочитать туториал и обладать нативным уровнем английского. Во-вторых, возможности данного языка программирования достаточно широки. Конечно, Пайтону не угнаться за C++ в плане функциональности. Тем не менее посредством Python можно создать вполне достойный софт (в том числе и игру). К примеру, на Пайтоне написаны такие игры, как "Батлфилд" (2005), "Цивилизация 4", "Симс 4" и много других проектов, которые стали настоящими хитами.
Java — еще один претендент, который определенно достоин внимания. Пожалуй, главное достоинство данного языка — полная кроссплатформенность. Это означает, что софт, написаный посредством "Ява", поддерживается всеми операционными системами ("Виндовс", "Линукс", "Андроид" и т.д.). Это позволяет быстро переделать игру под любую платформу. Помимо этого, Java дает программисту массу возможностей. За примерами далеко ходить не нужно. Вышеупомянутый "Майнкрафт" был написан именно на "Яве".
Однако что делать, если нет времени на изучение языков, но свою игру написать все-таки хочется? Тут на помощь приходят так называемые игровые конструкторы. Что это такое? Ответ на вопрос вы сможете найти ниже.
Конструктор игр — это специальная программа, которая объединяет в себе интегрированную среду разработки и движок. Проще говоря, это софт, с помощью которого можно делать свои игры без программирования. Если вы только начали свой путь геймдева, то конструкторы игр — как раз то, что вам нужно. С их помощью вы сможете понять, как происходит процесс разработки, на что стоит обратить свое внимание, и подметить для себя прочие важные аспекты.
Тем не менее подобные программы имеют и недостатки. Конструкторы игр обладают довольно скудным функционалом. Подобные программы накладывают на пользователя ограничения в плане жанра, графики, механики и т.д. Именно по этой причине создать достойный внимания проект с помощью конструктора вряд ли получится.
Как можно было понять, конструкторы не предназначены для создания крупных проектов. Подобные программы необходимы для того, чтобы дать юному геймдеву первый опыт в плане разработки игр. В этой части статьи мы рассмотрим самые популярные программы для программирования игр, которые помогут новичкам сделать первые шаги в геймдев-среде.
Пожалуй, сама известная программа для разработки игр — Game Maker. Она предназначена для создания двухмерных проектов. Делать игры можно без навыков программирования. Вместо строчек кода пользователю предоставляют набор готовых действий. Все, что нужно сделать — создать объекты и определить правила взаимодействия между ними. Также стоит подметить, что рисовать спрайты можно прямо в Game Maker без использования посторонних программ. Поэтому софт является вполне самодостаточным. Мало того, Гейм Мейкер не обидит и продвинутых юзеров, которые обладают навыками программирования. Ведь в программе есть возможность добавлять свой исходный код. Посредством Game Maker можно создавать игры с видом сверху (РПГ, тактический шутер и т.д.) и сбоку (платформер).
Construct 2 — это еще один конструктор для разработки 2D-игр. Пожалуй, главная особенность данной программы — мультиплатформенность. Посредством "Конструкта" можно создавать игры для iOS, Android, Windows, Web и т.д. В плане функциональности Construct 2 ничем не уступает тому же "Гейм Мейкеру".
Программирование игр — очень трудоемкий процесс, который длится месяцами, а то и годами. Поэтому если вы хотите стать профессиональным геймдевом, то необходимо развивать в себе такие качества, как терпение и сила воли.
Если вы не владеете языками программирования, но хотите приступить к самостоятельному созданию игр, вам всего-то необходимо приобрести двигатель (специальную программу), на основе которого происходит создание и разработка любой игры.
Стоимость такого движка разнится в очень широких пределах – от 30 до 100$, она зачастую определяется известностью и раскрученностью бренда, ну а после непосредственно возможностями программы. Для новичка, располагающего не особо большим стартовым капиталом вполне подойдёт самый не дорогостоящий. Не стоит забывать, что многие известные компьютерные игры были рождены от совсем простых двигателей.
В качестве примера самой простой, но достаточно мощной и производительной программы можно привести 3D Game Maker. В течение пятнадцати минут на ней может сверстать не хилую игрушку даже дилетант без каких-либо навыков программирования. Движок позволяет создать игру с оригинальным жанром, длительностью не более 20 уровней, собственную сюжетную линию, предоставляется широкий выбор макетов героев, противников и прочие настройки. В итоге получаем полноценный результат вполне удовлетворительного качества. Более мощная система — 3D Game Studio, с помощью которой создаётся двухмерный и трёхмерный геймплей, но для работы с ней уже необходимы базовые знания языка программирования. Спектр настраиваемых функций значительно шире, чем у движка, описанного выше, а так же предлагаются встроенные элементы интерфейса. Бесплатной программой, находящейся в свободном доступе является Game Maker – это 2D конструктор, с широким профилем возможных жанров, объектов игры и их взаимодействий, сопровождающих звуков. Можно пофантазировать с эскизами для создания объектов – они рисуются в графических редакторов и загружаются в систему. Кстати, новичкам рекомендуется начинать именно с этого движка не только потому, что он бесплатный, но и силу его простоты, логичности и наглядности. Кроме Game Maker имеется целая куча нулевых по стоимости программ, как говорится, на любой вкус и цвет, каждый начинающий сможет найти для себя подходящий движок и приступить к созданию свих компьютерных шедевров.
Разработка видеоигры - дело непростое. Тем не менее, если у вас есть идея на миллион, то лучше начать как можно скорее! Независимых разработчиков в последнее время становится все больше, а создание игры еще никогда не было дешевле или проще. Эта статья расскажет вам про основные вехи создания видеоигры.
Выберите жанр. Да, все успешные игры - уникальны. Тем не менее, их можно причислить к тому или иному жанру. Определитесь с жанром первым же делом! А жанры бывают следующие:
Выберите платформу. Выбранная платформа существенным образом повлияет на дальнейший процесс разработки, не говоря уже о том, как будет управляться игра - с клавиатуры, джойстика или экрана планшета.
Напишите черновик концепта игры. На паре страниц в общих чертах напишите, как играть в вашу игру. Одно только это уже сможет дать вам представление о том, удачной ли окажется такая игра.
Создайте основную философию игры. Это как бы мотивация, которая заставит игрока играть и играть, это самая суть игры. Не стесняйтесь проверять, не отступили ли вы от философии в процессе разработки. Примерами философии игры можно назвать:
Запишите все особенности своей игры. Особенности - это то, что будет отличать вашу игру от тысяч прочих. Начните с перечисления идей и концептов, затем перепишите все это в осмысленные предложения. Подготовьте 5–15 особенностей. Например:
Устройте перерыв. Спрячьте в стол черновики на недельку-другую. Потом достаньте и взгляните на них свежим взором. Это не повредит.
Распишите все до мелочей. План разработки - это хребет вашей игры. В нем - все. Даже так: в нем - Все. Механика, сюжет, место действия, дизайн и все прочее. Причем важен не формат, важна суть, важно содержание этого документа.
Составьте оглавление. В оглавлении должен быть перечислен каждый аспект игры. Единственное, о чем не надо там упоминать - о сюжете, если только сюжет не связан теснейшим образом с механикой игры.
Заполните каждый пункт оглавления. Опишите все так подробно и понятно, чтобы, начав работу по кодированию и прорисовке, все и все поняли, причем сразу. Каждая механика, каждая особенность - все должно быть объяснено на 5+!
Покажите план разработки игры другим людям. В зависимости от вашего подхода, создание игры может быть и совместным делом. Мнения других людей по поводу игры могут сделать ее лучше.
Выберите движок. Движок - основа игры, это набор инструментов, необходимых для ее создания. Разумеется, куда проще взять уже готовый движок, чем начать разрабатывать собственный. Для индивидуальных разработчиков выбор движков велик и разнообразен.
Изучите особенности движка или наймите специалиста по нему. В зависимости от выбора может появиться необходимость много программировать. Впрочем, даже с простейшими движками разобраться не так-то просто. Поэтому, если задача кажется вам не по силе, найдите профессионала.
Сделайте прототип игры. Изучив движок, сделайте прототип игры. Это, по сути, тест базовой функциональности игры. Графика или звук пока не нужны, нужны лишь заполнители и тестовая область.
Поработайте над управлением. Управление, осуществляемое игроком - это базовый уровень функционала игры. На этапе прототипа важно сделать управление максимально удобным.
Подумайте, что нужно проекту. Может, вашей игре будет достаточно строгих геометрических форм и 16 цветов? Или вам нужны сложные рисунки, создаваемые целой командой дизайнеров? А звуки? Будьте реалистичны в своих оценках и нанимайте людей соответственно.
Нарисуйте черновые арты. Начните работать над визуальной составляющей игры, чтобы игра обрела ту атмосферу, которую вы видели в своих мечтах.
Разработайте мир игры. Есть арты по игре? Можно начинать переходить к созданию игры и, с учетом стилистики, начать рисовать уровни или игровые области. Если же ваша игра в стиле «пазл», то, соответственно, придумывать головоломки.
Улучшите графику. В зависимости от выбранного стиля графики, вам на помощь могут прийти разные программы, например:
Запишите звук. Звук - очень важная слагающая атмосферы любой игры. Есть ли у вас музыка, нет ли ее, какие звуковые эффекты воспроизводятся и когда, озвучиваются ли диалоги - все это окажет существенное влияние на впечатление игрока от игры.
Эта статья является первой в целом цикле материалов для тех, кто хочет стать создателем игр. Если вы молоды, амбициозны и полны идей, а руки чешутся сделать "убийцу GTA" или "MMORPG типа WoW, но круче", то вы нашли то, что искали - руководство новичка по созданию игр . Моя цель - дать читателю общее представление о том, как же всё-таки выглядит процесс создания игр и развеять те иллюзии, которые могли сложиться на этот счёт, чтобы в последствии вы смогли избежать ошибок, совершаемых многими. Как и в любом деле, половина успеха - это правильная подготовка, поэтому чем полнее вы с самого начала будете представлять себе всю картину - тем большего успеха сможете добиться.
На данный момент цикл статей включает в себя следующие материалы, который со временем будет дополняться:
1. Создание игр для начинающих
На самом деле, даже если не касаться вопроса сложности разработки любой игры (а мы его обязательно коснёмся чуть ниже), то все плюсы и положительные стороны "игроделания" с лихвой уравновешиваются негативными сторонами, с которыми так или иначе сталкиваются все разработчики, особенно начинающие.
Так уж сложилось, что самый первый этап является и самым привлекательным - это момент рождения идеи, её поверхностной проработки, мгновения творчества. В такие моменты можно часами нарезать круги по комнате, представляя, каким классным всё должно получиться и какого признания можно добиться, если воплотить новую идею в жизнь. Восхищение своим творческим гением может переполнить сосуд, и в таком случае оно потребует выхода - чаще всего незрелая идея выплёскивается на одном из тематических форумов, в теме с заголовком вида "Собираю команду для разработки игры, нужны все". Где успешно высмеивается более опытными товарищами по цеху, и, стоит признать, порой весьма справедливо.
Будьте готовы к тому, что даже относительно небольшой игровой проект может отнять у вас не один месяц времени на его завершение. Подумайте - достаточно ли у вас мотивации, чтобы продолжать работать над воплощением своей идеи даже после того, как начальный азарт угаснет?.. Наверное, не ошибусь, если скажу, что доля проектов, не доведённых до конца и брошенных на разных этапах разработки, стремится к 99%... Вы ведь не хотите пополнить это число своей идеей, правда?
При ближайшем рассмотрении идея оказывается клоном чего-то популярного и известного, "но лучше". Так как представления о том, чего же, собственно, хочется, и как организовать продуктивную работу, нет, то в команду приглашаются все либо почти все. В итоге такая "команда" складывается из случайных людей, которые в течение недели-двух создают видимость бурного обсуждения "проЭкта", иногда даже что-то пытаются сделать (вроде 3D-модели из набора примитивов), но примерно через это же время былой энтузиазм сходит на "нет", у членов команды появляются неотложные дела/сессия/уроки/бабушка заболела и вся затея благополучно рассыпается как карточный домик. Знакомая картина?..
Любитель , как правило, имеет иной источник дохода (в случае, если он уже достаточно взрослый человек), поэтому над ним не висит вопрос коммерческой успешности своего проекта. Аналогично для тех, кто учится в школе/ПТУ/ВУЗе - они могут работать над игрой в своё удовольствие, бросить в любой момент, реализовывать любые идеи и вообще испытывают гораздо больше свободы в своих действиях. С другой стороны, они не могут посвятить изучению инструментов и получению новых навыков достаточно времени, поэтому в постоянно меняющемся мире игр всегда серьёзно отстают технологически и качественно.
Профессионал - он и в Африке профессионал. Он делает свою работу и получает за это деньги. Как правило, работать приходится над чужими идеями, и благо, если они кажутся интересными - но иногда всё равно приходится работать над тем, что тебе не нравится. Так как уровень мастерства является определяющим в профессиональной деятельности, то такому человеку приходится идти в ногу со временем - осваивать новые технологии, программы, приёмы, техники и т.д. Он может позволить себе посещать семинары, курсы повышения квалификации, тратить достаточно времени на книги и видеоуроки - словом, пребывать в постоянной гонке за право считаться специалистом своего дела.
Есть и третий вариант - это независимые разработчики (инди) . На мой взгляд, это самый привлекательный путь для тех, кто обладает достаточным талантом и способностями для того, чтобы заниматься разработкой игр "от и до" самостоятельно либо в небольшом коллективе. Налицо плюсы такого подхода - можно работать над воплощением своих идей и в то же время зарабатывать на этом.
Вобрав в себя плюсы профессионального и хобби-подхода, инди-разработка не избавлена от ложек дёгтя в бочке мёда.
Не падайте в обморок, но идея сама по себе не имеет никакой цены. Ноль. Даже самая гениальная идея ничего не стоит. Идей великое множество, и некоторые из них весьма и весьма удачны. Тем не менее, идея не обладает практическим значением до тех пор, пока она не реализована в виде чего-то менее абстрактного.
Задумайтесь: когда в последний раз вы видели действительно оригинальную идею? "Аватар"? Нет - если разложить идею до уровня концепции, то всё просто: земляне из будущего добывают ресурсы на чужой планете, игнорируя интересы местного населения. Один из землян проникается сочувствием к аборигенам, становится частью их народа и возглавляет борьбу против захватчиков. Просто, не правда ли? Crysis? Классический шутер про элитного спецназовца с супер-способностями, которые ему даёт костюм, и пришельцами из космоса. World of Warcraft? Игра, действие которой происходит в богатой на события и предысторию вселенной, с высокой ролью сюжетной составляющей, разносторонними сложными взаимодействиями игроков и мощной экономической системой.
Во всех этих идеях самое ценное то, КАК они были реализованы. Даже самая простая идея, будучи воплощённой в жизнь на высоком, качественном уровне, с глубокой проработкой, может "выстрелить" и стать хитовой игрой/фильмом.
Таким образом мы приходим к выводу, что для начинающего разработчика вопрос "как" гораздо важнее вопроса "что". Очевидно, что идея создания MMORPG нового поколения (так называемый next-gen) абсолютно бесполезна для большинства разработчиков, так как в силу объективных причин они просто не могут реализовать её в каком бы то ни было виде.
Я убеждён в том, что знание английского языка - это критический фактор , который оказывает огромное влияние на тот путь, который предстоит пройти, чтобы стать разработчиком игр. Даже с чисто практической точки зрения способность читать и понимать английские тексты - огромный козырь в борьбе за место под солнцем. Если вы откроете вакансии русских компаний-разработчиков, то в 90 % из них найдетё такой пункт, как "технический английский на уровне чтения и понимания".
Возьмём конкретный пример - 3D-графика. Текстовые и видеоуроки по 3D-графике на русском языке в большинстве своём сделаны любителями для любителей, лишь немногие из них учат чему-то, что можно назвать средним уровнем, и крайне малая часть - это действительно профессиональные и актуальные вещи. Иными словами, всё это - капля в море знаний.
Спрашивается - зачем довольствоваться каплей, если можно выпить море? Знание и понимание английского - это ваш ключ к огромному массиву полезной и актуальной информации, сам факт доступа к которой даст вам десять очков форы. Компании Digital Tutors и Gnomon Workshop имеют в своём активе тысячи часов обучающего видео по всем областям применения популярных 3D-пакетов, таких как Maya или 3DS Max. Англоязычные сайты кишат статьями о геймдеве, а на форумах могут подсказать решение сложных проблем - просто потому, что количество людей ТАМ несоизмеримо выше с количеством людей ЗДЕСЬ. Берите лучшее из двух миров!
Что делать? Учить языки - оно того стоит, даже если через год вы забросите геймдев. Как? Не спать на уроках в школе, записаться на курсы, использовать самоучители - путей много, было бы желание. Особое внимание стоит уделить лексике - вам совсем необязательно уметь говорить на этом языке, главное - уметь читать и понимать прочитанное. Уже после этого можно будет начать развивать навык восприятия английской речи на слух - и в этом могут помочь видеоуроки по 3D-графике, если вы художник, или аудиоуроки по английскому языку. Ещё раз повторюсь - по ту сторону языкового барьера огромный мир, полный информации. Не иметь к нему ключей - всё равно что учиться по черновику, когда рядом есть библиотека.