Создаём игры. Краткий путеводитель по профессии
Компьютерные игры сегодня стали не просто приятным времяпрепровождением, они стали серьёзным бизнесом, культом и даже получили спортивный статус. При этом, можете спросить у себя или любого непрофессионального геймера — идеальных компьютерных игр не бывает.
Всегда что-то не так: или линейный сюжет, или плохая графика, или недостаточно проработаны персонажи, или недостаточно возможностей для самовыражения — список можно продолжать бесконечно. Именно поэтому многие молодые и не очень люди приходят в программирование, для того, чтобы подарить миру свои идеи, чтобы создать наконец ту самую идеальную игру.
Но с чего надо начинать и к чему стремиться? И реально ли вообще в одиночку создать хорошую игру? Попробуем найти ответы на эти вопросы.
А пока запаситесь терпением. Речь даже не об этом тексте. а о профессии разработчика игр. Вы абсолютно точно не создадите шедевр с ходу. Более того, в ходе обучения и дальнейшей работы у вас не раз возникнет ощущение, что где-то в процессе вы утеряли свою мечту. Поэтому изначально будьте готовы много работать, потерпеть сотню неудач, выслушать тонну критики, чтобы в конце-концов испытать первый локальный успех.
Итак, вот краткий гид по тому, как создать вашу первую игру.
Язык
Если у вас нет никаких знаний в программировании, то начинать лучше всего с предельно простого уровня, например, языка Pascal (Object Pascal). Всё дело в том, что перед тем, как пойти дорогой серьёзного разработчика, вам необходимо понять основы программирования и потренироваться создавать элементарные консольные игры (речь о консольных приложениях, а не вашей любимой приставке).
То, что текстовая игра может быть по-настоящему увлекательной сегодня, косвенно свидетельствует очередной рост популярности настольных игр. То, что у вас есть гениальная идея, не знает пока никто. Так почему не воплотить её в тексте?
Впрочем, даже консольные игры надо соответствующе подавать, поэтому когда первые навыки будут приобретены, наступит самое время обложиться книгами. На следующем этапе от вас потребуется всего-то выучить C++/C#, JavaScript и Python. Да, после Pascal, который можно освоить всего за несколько часов, это покажется архисложной задачей.
Однако иного пути нет: бесполезно расходуя физическое пространство и используя примитивные методы, хорошей игры не создашь. Учить сразу всё и взахлёб бесполезно. Ограничьтесь базовыми принципами, вновь дойдя до уровня создания консольного приложения. Дальше будет чуть веселее.
Среда разработки
Собственно, на вопрос “зачем так много?” ответит именно этот пункт текста. Если вы собрались заниматься красивой графической игрой, то с огромной долей вероятности основным вашим инструментом станет или Unity, или Unreal Engine. О каждом чуть поподробнее.
Unity — “движок” для так называемых разработчиков средней руки. Но не в том, плане, что не слишком умных, а в том, что сложные моделирования и реалистичная графика им не нужны. Из известных представителей Unity-игр вы наверняка знаете Pokemon Go и Fallout Shelter. При этом подобная “слава” немного не соответствует реальности, так как возможности Unity позволяют проектировать игры любой сложности. Кстати, если вы ещё не знаете: на портале GeekBrains вы можете найти прекрасный экспресс-курс по Unity.
Unreal — более комплексный и графический инструмент, призванный вывести вашу идею на качественный коммерческий уровень. То есть новичку посмотреть и разобраться будет полезно, но вот целенаправленно выбирать Unreal для старта - очень смело и даже немного неразумно.
Конечно, есть еще масса других игровых “движков”, некоторые из которых могут оказаться полезными при переходе от теории языка к физическому воплощению. Например, Game Maker. Это действительно очень хороший инструмент для создания первых игр с примитивной графикой, требующий лишь изучения локального языка GML. Фактически, им можно пользоваться даже не особо понимая программирование, но сделать карьеру на Game Maker вы вряд ли сможете.
CryEngine и RAGE (изначально AGE) Engine вполне могут стать альтернативой Unreal Engine. Кстати, вы уже стали обращать внимание на незатейливость названий? Отгадка проста: имена “движкам” присваиваются согласно дебютной игре, то есть CryEngine - FarCry, Unreal Engine - собственно, Unreal, а RAGE был создан для многочисленных игр компании Rockstar про насилие (тем удивительнее, что официально первая - настольный теннис). В общем, это красиво, реалистично и вместе с тем сложно. При этом, как вы понимаете, востребованность на рынке подобных “прокаченных специалистов” не велика, а опыт работы с RAGE можно получить лишь уже устроившись в Rockstar.
Исходя из описанного, очевидным выбором будет или связка Game Maker+Unity, или просто Unity. К счастью к этому моменту вы уже познакомились с языками C# и JavaScript, а значит к работе с Unity 5 вы точно готовы.
Искусственный интеллект
Вопрос создания искусственного интеллекта в играх всегда стоит крайне остро. Будучи простым пользователем мы часто удивляемся, как разработчики игр не обращают внимания на явные недоработки в поведении соперников. Когда же переходим на другую сторону, претензий становится куда меньше. О том, как хотя бы попытаться создать ИИ по вашим задумкам, можно прочитать в статье “Как создать искусственный интеллект?”. Для всего остального есть голова на плечах.
Команда
Разработать хорошую игру одному практически невозможно, по-крайней мере это потребует титанических усилий и полного отлучения от основной работы или учёбы. Поэтому когда дойдёте до уровня мастерства, позволяющего сесть и приступить к работе над сложными игровыми моделями, начинайте искать себе помощников.
Есть две стандартные модели рекрутинга. Если вы планируете уникальную игру и хорошо на ней заработать, то стандартно по профилям, фриланс-ресурсам и объявлениям набирайте команду. Но для тех, кто предпочитает начать работу с идеи, то разумным решением будет поиск через публичную демонстрацию будущей игры. То есть в разделе “Блог” GeekBrains вы выкладываете описание своей задумки и что к моменту публикации уже было сделано, а исходники заливаете на GitHub, Те, кто вдохновится вашей задумкой, несомненно выскажут своё желание поучаствовать.
А вот необходимый профессиональный минимум для создания хорошей мобильной игры:
-
программист-разработчик - в данном случае, это вы, то есть человек отвечающий за непосредственную работу задумки в отдельных моделях и в их совокупности. В минимальной комплектации он же тестировщик, он же аналитик;
-
дизайнер-художник - он же режиссёр-постановщик вашей игры. Отвечает за визуальное восприятие, за развитие сюжета и удержание пользователя перед экраном;
-
композитор-менеджер - иначе говоря, человек в обязанности которого будет входить вся оставшаяся работа, но первоочередные задачи - звук и продвижение продукта.
Даже для троих охватить подобный объём работы с максимальной производительностью практически невозможно. Именно поэтому профессиональные разработчики мобильных игр объединяются в команды, где задействовано минимум 6 человек.
Итог
Итак, для того, чтобы создать игру своей мечты вам потребуется всего сделать 5 шагов:
-
потренироваться писать текстовые квесты на каком-нибудь простом языке;
-
освоить C# и JavaScript;
-
выбрать “движок” для вашего будущего творения;
-
освоить науку создания ботов;
-
создать команду, которой суждено будет создать великую игру.
Согласитесь, не так уж и сложно. Приступаем?