Как создать интересную игру

Совет №1. Не стремитесь к идеалу

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

Многие берутся за разработку в надежде воплотить в жизнь свои блестящие идеи. Иногда у новичков выходит The Stanley Parable — но куда чаще их задумки гибнут ещё на первых этапах разработки, погребённые под грузом амбиций.

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

Иными словами, смотрите на свои первые проекты как на обучающие упражнения. Ведь это они и есть.

Когда появились видеоигры и как развивался этот рынок?

Первый игровой компьютер в истории появился в 1940 году. Американский физик, заместитель директора по исследованиям и развитию компании Westinghouse Electric Эдвард Кондон создал Nimatron – электронно-релейную машину для игры в ним. Ним – математическая игра, в которой два игрока по очереди берут предметы, разложенные на несколько кучек. За один ход может быть взято любое количество предметов (большее нуля) из одной кучки. Выигрывает игрок, взявший последний предмет. В классическом варианте игры число кучек равняется трём. Nimatron предназначался для презентации передовых разработок компании на Всемирной выставке 1939-40 г.г. в Нью-Йорке и претендует на статус первой компьютерной игры, но вместе с тем его влияние на развитие игр и игровых технологий считается незначительным.

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

Первая в мире компьютерная игра

Популярность видеоигры получили в 70-е годы, в развитии игровой индустрии сыграли большую роль такие компании, как Sony, Atari, Sega и Nintendo. Компания Nintendo, кстати, была основана в 1889 и занималась покраской и продажей пластиковых карт для японской игры Ханафуда

Спустя почти 100 лет именно Nintendo начали уделять внимание качеству и стоимости продаваемых для приставки игр на картридже, а также первыми в мире ввели оптоэлектронику, более дешёвые детали для “игровых коробок” и первую игровую консоль с ЖК-экраном и микропроцессором

В 1994 году Sony выпустили самую первую Playstation, следом за ней приставку выпустила Sega, а ответом Nintendo послужила первая консоль, способная работать с 3D-графикой – Nintendo 64. Из конкуренции главных “гигантов” на поле видеоигр и использования ими в этой борьбе всё более новых технологий и появился современный вид видеоигр.

CryEngine 5

CryEngine — игровой движок, созданный немецкой частной компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry.  В середине марта компания предоставила миру новый, пятый  CryEngine. Движок абсолютно бесплатен и воспользоваться им, может любой желающий, с помощью которогоможно создать игру, различного жанра и различной сложности.

  1. CryEngine Sandbox: редактор игры в реальном времени, предлагающий обратную связь «Что Вы видите, то Вы и ИГРАЕТЕ».
  2. Рендерер: интегрированные открытые (англ. outdoor) и закрытые (англ. indoor) локации без швов. Также рендерер поддерживает OpenGL и DirectX 8/9, Xbox с использованием последних аппаратных особенностей, PS2 и GameCube, а также Xbox 360.
  3. Физическая система: поддерживает инверсную кинематику персонажей, транспортные средства, твёрдые тела, жидкость, тряпичные куклы (англ. rag doll), имитацию ткани и эффекты мягкого тела. Система объединена с игрой и инструментами.
  4. Инверсная кинематика персонажей и смешанная анимация: позволяет модели иметь множественные анимации для лучшей реалистичности.
  5. Система игрового искусственного интеллекта: включает командный интеллект и интеллект, определяемый скриптами. Возможность создания особенных врагов и их поведения, не касаясь кода C++.
  6. Интерактивная динамическая система музыки: музыкальные дорожки отвечают действиям игрока и ситуации и предлагают качество CD-диска с полным 5.1 звуковым окружением.

Скачать CryEngine

Добавление объекта

Объекты на экран Scene можно добавить из Asset Store. Для этого на панели инструментов нужно кликнуть на вкладку Window –> General –> Asset Store.

В строке поиска можно по названиям найти нужные компоненты, например, сет Free Platform Game Assets.

Как и другие ассеты, он загружается с помощью кнопки Import.

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

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

Шаг 2. Перенести в область Scene

Что такое Unity

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

Наглядный пример игры, созданной на Unity, которая поддерживает разные устройства, — , успешный мультиплатформенный проект китайской студии miHoYo Limited. Более популярной стала ее мобильная версия, но пользователи могут войти в аккаунт, например, с компьютера и продолжить играть с того же момента, на котором остановились в мобильной версии. Кроме Genshin Impact, на Unity созданы такие известные проекты, как Hearthstone, Outlast, Cuphead, Pokemon GO и многие другие.

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

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

Цель

Первое, что нам понадобится — это определиться с нашей целью. Что в итоге мы хотим получить? Если хотите, чтобы ваша игра «выстрелила», нужно для начала точнее прицелиться, а не бить наугад.

Этапом концепции и определения цели занимается руководитель проекта.

Жанр

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

Смотрим на круглую таблицу жанров как на мишень, и выбираем необходимые нам игровые геймплейные элементы (подробнее о таблице жанров можно узнать в статье «Жанры компьютерных игр»). Какие-то элементы подарят нам высокую популярность среди игроков (уничтожение, соревнование, герой, забота), какие-то – преданных, но придирчивых фанатов (тактика, контроль, уклонение), а какие-то – отсутствие серьезных конкурентов (обучение, логика, путешествие, экономика).

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

Сеттинг

Разделение компьютерных игр на жанры весьма специфично и не похоже на систему жанров фильмов и книг. Игровые жанры определяют лишь основные действия, которые будут совершать игроки в процессе игры, тем самым они отвечают только на вопрос «ЧТО?». На вопросы «ГДЕ?» и «КОГДА?» отвечает другая основная характеристика игры – сеттинг.

Сеттинг – это принадлежность игры к какой-то сюжетной теме или к определённому виртуальному миру. В среде компьютерных игр сформировалось несколько наиболее популярных сеттингов: фэнтези, научная фантастика (sci-fi), вторая мировая война, средневековье, стимпанк, постядерный мир, аниме, комиксы.

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

Как и когда появилась индустрия компьютерных игр?

Двадцать-двадцать пять лет назад любая команда энтузиастов (при этом ни один из участников мог не быть гейм-дизайнером), имела возможность просто создать свою студию разработки и придумать крутую RPG (как это было с BioWare). В наше время сделать это сложнее, и даже инди-студии часто состоят из разработчиков, которые покинули большого издателя и ушли в независимое плавание.

Экшн Anthem от компании BioWare

Создаётся впечатление, что из индустрии уходит “творчество”. Потому, что с точки зрения прибыли выгоднее выпустить очередную FIFA или бесконечную Assassin’s Creed, чем рисковать и делать ставку на действительно стоящий проект, который может не понять и не оценить аудитория.

Но популярность игр растёт. Так, согласно прогнозам Newzoo, к 2021 году количество людей, так или иначе интересующихся видеоиграми, достигнет 2 миллиардов – это четверть населения планеты. В Америке 64% семей владеют каким-то игровым устройством, и как минимум двое человек в таких семьях – геймеры. Средний возраст игрока – 34 года, а 60% жителей Америки играют ежедневно – чаще всего на компьютере. Смартфоны и консоли на втором и, соответственно, третьем месте по популярности.

Плюсы и минусы профессии

Плюсы

  1. Опытный и талантливый программист получит за разработку игр достойную заработную плату.
  2. Есть шанс трудоустроиться в известную компанию и получить популярность в определенных кругах.
  3. Специалисты, работающие на себя, могут творчески реализоваться.
  4. Игры для ПК и мобильных устройств пользуются популярностью, поэтому инвесторы охотно вкладывают средства в продвижение игровых программных продуктов.
  5. Профессия дает возможность работать с разными платформами (ОС, IOS/Android и другие).
  6. Зная языки программирования, программы для создания 3D графики, основы разработки мобильных приложений и другие направления, связанные с профессией, специалист сможет попробовать свои силы в каждой из этих сфер.

Минусы

  1. Разработчик должен отодвигать свои амбиции и творческие замыслы на второй план, ставя на первое место требования инвестора или заказчика.
  2. К опыту и знаниям специалиста выдвигаются серьезные требования, ведь от его профессионализма зависит успешность проекта.

Unity

Проекты на этом движке: Pokemon Go, West of Loathing, , Ori and the Blind Forest.

Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity

Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем!…

Unity

Плюсы Unity:

  • Есть инструменты для быстрого создания прототипа будущей игры;
  • Можно достичь высокого уровня производительности в проекте;
  • Универсальное решение, которое используется как для маленьких проектов, так и для ААА-тайтлов.
  • Проект имеет закрытый исходный код, если вы столкнетесь с каким-то багом, то придется ждать обновления Unity;
  • Редактор кода и отладчик часто работают плохо и отнимают кучу времени у создателя;
  • Не такой низкий порог вхождения, как в других движках. Чтобы сделать на нем игру, придется многое выучить.

Планирование

  • Swamp — дает 1 черную ману (карта земли).
  • Forest — дает 1 зеленую ману (карта земли).
  • Fugitive Wizard — требует 1 синию ману для призыва.
  • Elvish Mystic — требует 1 зеленую ману для призыва.

Простое планирование

1. Сыграть Swamp (результат: Swamp в игре)
2. Сыграть Forest (результат: Forest в игре)
1. Сыграть Swamp (результат: Swamp в игре)
1.1 «Тапнуть» Swamp (результат: Swamp «тапнута», +1 единица черной маны)
Нет доступных действий – КОНЕЦ
2. Сыграть Forest (результат: Forest в игре)
1. Сыграть Swamp (результат: Swamp в игре)
1.1 «Тапнуть» Swamp (результат: Swamp «тапнута», +1 единица черной маны)
Нет доступных действий – КОНЕЦ
2. Сыграть Forest (результат: Forest в игре)
2.1 «Тапнуть» Forest (результат: Forest «тапнута», +1 единица зеленой маны)
2.1.1 Призвать Elvish Mystic (результат: Elvish Mystic в игре, -1 единица зеленой маны)
Нет доступных действий – КОНЕЦ

Описание профессии «Геймдизайнер»

Задачи профессии:

Задача: Придумывать правила игры

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

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

Это самая желанная, но и самая ответственная профессия в индустрии. Мало кто знает ведущих программистов, художников, задействованных в разработке игр, но известные геймдизайнеры у всех на слуху.

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

Что конкретно нужно будет делать?

— Проектирование базовой игровой механики;

— Проектирование игрового баланса;

— Создание образов игровых персонажей;

— Планирование игрового процесса на протяжении всей игры;

— Написание дизайн документа по игре;

— Корректировка концепции игры в процессе разработки

Какие качества важны?

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

Геймдизайнер прежде всего должен быть мудрым человеком, ему необходимо знать множество фактов из самых разных областей науки: истории, географии, биологии, литературы, философии, психологии. Ведь, по сути, он должен придумать целый новый мир, но так, чтобы он был правдоподобен и частично походил на реальный мир.

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

Где учиться?

Хорошее гуманитарное образование, опционально — техническое.

Blender

Blender — бесплатный пакет для создания трехмерной (3D) компьютерной графики, содержащий средства моделирования, анимации, рендеринга, постобработки видео, а также создания игр. Функций Blender вполне достаточно для работы как обычным пользователям, так и профессионалам. В программе есть все основные инструменты, используемые в профессиональных ЗD-редакторах.

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

Основные возможности Blender:

  • Поддержка разнообразных геометрических примитивов (включая полигональные модели, систему быстрого моделирования в режиме SubSurf, кривые Безье, поверхности NURBS, метасферы, скульптурное моделирование и векторные шрифты).
  • Универсальные встроенные механизмы рендеринга и интеграция с внешним рендерером YafRay.
  • Инструменты анимации, среди которых инверсная кинематика, скелетная анимация и сеточная деформация, анимация по ключевым кадрам, нелинейная анимация, редактирование весовых коэффициентов вершин, ограничители, динамика мягких тел, динамика твердых тел, система волос на основе частиц и система частиц с поддержкой коллизий
  • Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта и экспорта файлов, автоматизации задач.
  • Базовые функции нелинейного редактирования и комбинирования видео.
  • Game Blender — подпроект Blender, предоставляющий интерактивные функции, такие как определение коллизий, движок динамики и программируемая логика.

Stencyl

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

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

CraftStudio

Добавляйте и изменяйте объекты в 3D пространстве, прописывайте сценарии и правила, рисуйте анимации и эффекты. Авторы CraftStudio продумали всё, чтобы создание игр на PC с нуля в реальном времени было понятным и увлекательным. При этом все инструменты для моделирования и анимаций встроены в программу и понятно обозначены. То же самое можно сказать и о визуальном редакторе сценариев. Что самое интересное — вы не обнаружите проблем с совместимостью форматов или их конвертацией. Для более продвинутых пользователей предусмотрен текстовый редактор Lua Scripting.

Шаг 1. Придумать сюжет и пространство игры

Необязательно придумывать историю, достойную Вселенной «Звездных войн» — максимально простые сюжеты тоже становятся культовыми (привет червяку Джиму и Марио, которых помнят все, у кого были «Денди» или «Сега»). Дети понимают такие истории, да и взрослых они затягивают.

Лия Костикова, создательница курса «Игры на Python»в детской онлайн-школе Skysmart

Дети могут провести часы в игре, не задумываясь о том, что это работа огромного количества гейм-дизайнеров, которые воспользовались определенной матрицей действий.

Мне кажется, если прийти к ребенку и сказать: «Вот ты три часа играл в Roblox, но на самом деле это просто трюк, который кто-то придумал», — это переориентирует его на то, чтобы он стал сопричастным к созданию этой игры.

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

Чтобы создать классный игровой сюжет, нужна насмотренность. Она складывается не только из стримов на ютубе, но и из общего кругозора: книжек, фильмов, мира вокруг.

А еще в играх вовсю работают законы драматургии. Например, в курсе «Игры на Python» ученики изучают принцип чеховского ружья, по которому в сюжете остаются только те элементы, которые его поддерживают и усиляют, а все остальное — удаляется.

Лия Костикова, создательница курса «Игры на Python»в детской онлайн-школе Skysmart

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

Теоретический блок мы объясняем на пальцах. Например: «Кто-то постучал в дверь. Ты открываешь дверь, а там Годзилла», — это называется твист, неожиданный поворот сюжета.

После теории сразу практикуемся: предлагаем придумать твист для скучной истории. Ученики отвечают: «Кошка легла спать, потом встала, подошла к зеркалу, а в зеркале она не отразилась». Засчитано: ребята поняли, что такое твист.

Все уроки — динамичные. За теорией следует практика — мини-задания, чтобы сразу закрепить знания и задать вопросы. А если ученик столкнулся со сложностями после занятий, он всегда может обратиться к наставникам курса.

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

Запишите ребенка на курс «Игры на Python» в онлайн-школе Skysmart: уже через 5 месяцев он сможет похвастаться не только собственной игрушкой, но и знаниями в драматургии, программировании и дизайне и даже алгебре. А еще прокачает креативность, логику и навыки презентации — себя и своих проектов.

«Жиза ГД». Странные игры

Хронометраж: 1 час

Периодичность: 1 раз в неделю

Тайм-коды: есть

«Жиза ГД» — подкаст компании Pixonic, которая делает мобильные игры. Представители Pixonic обсуждают тенденции индустрии, обучение в геймдеве, прикладное применение и неочевидные аспекты игр. Так, ведущие беседовали с научным сотрудником РАН о применении видеоигр в лечении гиперактивности у детей, а с главой студии Ice-Pick Lodge, Николаем Дыбовским, поговорили об иллюзии выбора.

В одном из эпизодов подкаста обсуждали странные игры. Странными играми называют те, которые нельзя вписать в существующие жанры. Например, Papers, Please — игра о жизни в тоталитарной стране и работе в паспортном контроле. Проверка документов и оплата счетов кажутся скучными занятиями, но игра устроена так, что рутина превращается в увлекательный геймплей.


Скриншот игры Papers, Please

Странные игры тяготеют к искусству и перформансу или к экспериментальному геймплею. В ряду первых ведущие вспоминают проект ШХД: ЗИМА о жизни в хрущёвке, где геймплей сводится к перемещению по квартире и зимнему двору. Среди вторых — игра Return of the Obra Dinn. В ней игрок бродит по опустевшему кораблю и ведёт детективное расследование.

ААА — не значит невозможно

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

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

Ненормированный график работы, постоянный стресс и давление со стороны руководства — это лишь самые распространенные проблемы работников крупных студий

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

Выбрав вакансию в сфере программирования, размещайте свои работы на GitHub, участвуйте в «опенсорсных» проектах. Дизайнерам и художникам дорога на ArtStation, где вдобавок публикуют предложения по работе. Левел-дизайнерам — на Moddb и тот же ArtStation, а звуковикам и композиторам —на Soundcloud.

Также всегда нужны тестировщики, аналитики, пиарщики и сценаристы. Широкий спектр рабочих мест со своими требованиями, стоит только внимательно изучить сайт компании-разработчика в разделе «работа».

Титульная страница сайта Valve с доступными вакансиями

Самым жутким требованием для начинающего разработчика всегда был «опыт работы». Даже от самого простого «джуниора» могут потребовать год на аналогичной вакансии. Здесь вам опять же помогут моддинг, простые инди-игры, участие в Game Jam’ах, опенсорс, тестовые задания и фриланс. Последний, к слову, помимо опыта обогащает портфолио и даёт заработок.

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

В разработке The Last of Us Part II участвовали десятки фрилансеров, пополняя своё портфолио таким громким проектом

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

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

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

***

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

  • Разработчик ремейка S.T.A.L.K.E.R. с новой графикой показал игру в формате 360 градусов
  • Разработчики Dying Light 2 рассказали о судьбе проекта. Спойлер: все не так плохо

Urho3D

Бесплатный кроссплатформенный движок для работы с 2D и 3D, основанный на языке C++ и выпущенный по свободной лицензии Массачусетского технологического института (MIT). Название в переводе с финского означает «герой». Движок частично вдохновлён OGRE и Horde3D. Свободно распространяется на портале GitHub.

Преимущества:

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

Недостатки:

  • высокий порог вхождения для тех, кто не знает основы С++;
  • сложная установка: нужно скачать архив, скомпилировать движок с помощью CMake, включить необходимые параметры (при этом убедиться, что все необходимые папки есть в наличии);
  • перегруженный интерфейс.

Игры на движке: Clinically Dead, Borderline, HellBreaker.

«<…> Я выбрал движок Urho3D, чтобы менять исходный код под свои нужды. На своём опыте я убедился, что это потрясающий инструмент, который поддерживается небольшим, но очень отзывчивым сообществом. Если вы разработчик и находитесь в поиске мультиплатформенного (Windows, Mac, Linux) бесплатного игрового движка — Urho3D обязателен для ознакомления».

Павел Могила (Pawel Mogila), инди-разработчик (Clinically Dead).

Блог разработчика, сентябрь 2015 года

Clinically Dead

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

Совет

Примечание переводчика: на самом деле в 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