Программы для программирования в стиме
Три проекта, которые могут помочь на пути к профессии.
Автор портала Rock, Paper, Shotgun Мэтт Сэйер (Matt Sayer) написал статью, в которой рассмотрел три игры из библиотеки Steam, использующие основные концепции программирования в игровом процессе. Сэйер проверил, могут ли игры научить программированию и как они это делают.
DTF публикует перевод материала.
Когда я говорю людям, что я программист, их глаза сразу стекленеют, на лице появляется вежливая улыбка, и они пытаются сменить тему. Если повезёт, они поделятся со мной потрясающей идеей для приложения, которое нас всех озолотит. Если нет, мне придётся оказывать им техническую поддержку до конца моей жизни. Хотя, как бы безумно это ни звучало, программирование может быть гораздо более весёлым, чем люди думают. Достаточно весёлым, чтобы породить свой собственный жанр видеоигр.
Но насколько хорошо эти игры могут обучить? Можно ли стать программистом, поиграв в них? Я нашёл в Steam трёх многообещающих кандидатов. Давайте рассмотрим их и узнаем, можно ли с их помощью получить навыки для работы программистом.
Также необходимо заметить, что ни одна из этих игр не обещает научить игроков программированию, просто мы думаем, что они могли бы. Вперёд!
HRM объясняет концепции очень доступно, давая время запомнить новую команду, прежде чем игра представит следующую. Ещё можно замедлить время, когда рабочий выполняет программу, чтобы пошагово изучить код и понять, почему что-то работает не так, как вы задумывали. Учитывая, сколько времени программисты тратят на отладку, умение «прочёсывать» программу построчно точно пригодится.
Но доступность — лишь один аспект из необходимых. Самый важный вопрос: может ли HRM научить программированию? Чтобы ответить на него, давайте рассмотрим концепции, представленные на уровнях игры, поближе.
Концепция: Базисные переменные
Работа с неизвестными данными, будь то конвейер со случайными цифрами и буквами или молниеносные нажатия кнопок на клавиатуре киберспортсмена, — это фундаментальный компонент практически каждой программы в мире. Раз программы не могут предсказывать будущее (по крайней мере пока), им необходимы ячейки для хранения и обращения к неизвестным данным во время работы. Для этого и нужны переменные. Переменная — это отдельно обозначенная ёмкость для данных, которую можно заполнять и использовать по мере надобности.
В HRM клетки на полу служат прообразом переменных. В каждой комнате-загадке пол посередине разделён решёткой, в которой можно временно хранить числа и буквы, поставляемые конвейером. В списке команд к этим клеткам можно обращаться по номеру, начиная с нуля, потому что в программировании счёт всегда начинается с нуля, а не с единицы. Или вы можете дать им свои названия, например, «ПервыйСумматор» или «Итог», чтобы было легче понимать код. Эта техника широко используется в программировании, особенно когда над одной программой работает несколько человек. Правильно названные переменные могут играть решающую роль в том, насколько быстро вы найдёте ошибку в коде.
Концепция: Массивы
Переменные используются для обращения к одному значению или объекту, а к массивам прибегают, когда надо сгруппировать похожие объекты. Вместо того, чтобы назначать каждому слоту в инвентаре свою переменную, можно создать один массив «инвентарь», в котором будут находиться все предметы игрока. Плюс такого подхода в том, что к этим предметам можно обратиться через объект «инвентарь», к примеру, инвентарь[0], инвентарь[1], инвентарь[2]… Так проще написать код, проверяющий все слоты инвентаря, к тому же, массивы обрабатываются гораздо быстрее, чем отдельные переменные.
HRM не церемонится со своей механикой массивов. Вместо обращения к клеткам пола напрямую через их названия, можно использовать значение внутри одной клетки в качестве обозначения другой. Например, клетка «0» может содержать номер 7. Если использовать на ней стандартную команду copyfrom «0», то получишь 7. А если ввести copyfrom [0], программа прочитает 7 как название другой клетки, и вернёт значение из клетки 7. Не страшно, если звучит сложно. Чтобы понять, как работают массивы, достаточно увидеть их в действии. Несколько продуманных задачек в HRM как раз позволяют запомнить эту концепцию.
Концепция: Условные выражения (или операторы IF…THEN)
В программах не было бы особого смысла, если бы они выдавали один и тот же результат вне зависимости от данных, которые они получают. Это было бы похоже на игру, которая играет сама в себя, игнорируя управление игрока. Программы должны принимать решения, от простых, типа определения большего из двух чисел, до вычислений, попал ли арбалетный болт игрока во врага. Условные выражения — это настоящие «мозги» программы.
HRM предлагает два типа условных выражений: «переход, если ноль» и «переход, если отрицательное». Эти команды проверяют значение, находящееся в руках у рабочего, и «прыгают» в другую часть программы, если условие верное. Если рабочий держит -5, то команда «переход, если отрицательное» сработает и проследует за стрелкой перехода в часть программы, в которую вы её направили. Если ваш рабочий держит 1, то программа продолжит выполнение как обычно. Звучит просто, но на поздних уровнях требуется сразу несколько команд перехода одновременно, и в их пересекающихся стрелках легко запутаться.
Концепция: Циклы
Повторение — жизненно важная часть программирования. Мы пишем программы, чтобы они выполняли задания, на которые у нас нет времени, и для этого используем циклы. Циклы заставляют патрульных NPC повторять один и тот же маршрут. Циклы наносят урон горящим врагам каждую секунду горения. Циклы повышают скорость машины при разгоне. Прописывать каждый проход цикла вручную было бы ужасно неэффективно, а неэффективность в программировании — это грех.
HRM совмещает вышеупомянутые условные выражения с командой перехода для создания циклов. Игра обучает двум типам циклов: for и while. Циклы for совершают набор команд определённое число раз. В игре они представлены клеткой-счётчиком, значение которой уменьшается до тех пор, пока не соответствует проверке «переход, если ноль». Циклы while работают похоже, но они выполняются не определённое количество раз, а пока какое-то условие не выполнится. По мере усложнения задач приходится использовать оба типа циклов вкупе с массивами, чтобы обрабатывать потоки данных неизвестной длины. Это ещё одна важная часть программирования, и HRM обучает ей постепенно, позволяя запомнить все составляющие.
Human Resource Machine использует знакомые каждому концепции конвейерных лент и клеток и использует совсем небольшой список команд. Эти команды обозначены разными цветами, а переходы — стрелками, и это упрощает наблюдение за ходом выполнения программы. В игре есть команды типа copyfrom и bump, у которых нет полных эквивалентов в современных языках программирования, но пониманию основных концепций это не мешает. После прохождения HRM вы будете готовы учиться настоящему программированию.
Если вам захочется подготовиться ещё немного перед погружением в мир программирования, то вам понадобится Hack ‘n’ Slash. На первый взгляд это типичная игра в стиле Legend of Zelda, но только здесь вы «взламываете» врагов своим мечом-флэшкой и перестраиваете их поведение. Почти все объекты в игре можно перепрограммировать, можно даже заставить игру закрыться, переписав слишком много кода. Это одновременно и плюс игры, и недостаток. С одной стороны, для решения каждой задачки есть огромное количество вариантов, но с другой — когда не понимаешь, почему твоё решение не работает, испытываешь сильную фрустрацию. Хотя, честно говоря, в программировании всё точно так же.
Главная проблема Hack ‘n’ Slash — что это, по сути, две игры. Одна — головоломка в стиле Zelda, которая глубоко исследует концепции программирования, а другая — настоящая программа отладки, закидывающая игрока в сырой код без каких-либо объяснений. Из-за этого скачка сложности играть в Hack ‘n’ Slash бывает нелегко, но если вам удастся через него пройти, вы сможете узнать много полезного.
Концепция: Усложнённые переменные
Как мы уже сказали, переменные — это способ хранения и обращения к данным в программе. В Hack ‘n’ Slash они используются для хранения более продвинутых типов информации, чем в Human Resource Machine, и их воздействие на поведение программы более очевидное.
Hack ‘n’ Slash расширяет понятие переменных, представляя то, что мы называем типизированными переменными. Эти переменные могут хранить только определённый тип значений: например, только числа или только значения «true» или «false». Когда вы взламываете врага, появляется список переменных, которые вы можете изменить. Но их значения можно менять только в рамках их типов: в числовой переменной нельзя хранить буквы, а число нельзя сделать больше определённого предела. Благодаря этим негласным правилам можно постепенно познать разницу между булевскими, целочисленными и строковыми переменными, даже если вы не знаете их названий.
Самое главное в изучении переменных через Hack ‘n’ Slash то, что эффект от изменений виден сразу. Выбор значения для переменной — полезное умственное упражнение для любого программиста, особенно во время тестирований и отладок. Программа должна уметь работать с любой вводимой информацией, в том числе и отбрасывать данные, которые могут привести к неадекватным результатам. Осознание того, насколько легко «сломать» врагов в Hack ‘n’ Slash, сменив наносимый урон на -1, — красноречивая демонстрация важности тестирования.
Концепция: Синтаксис
Как и в языках, на которых мы общаемся, в языках программирования есть правила расположения слов в предложениях. Это называется синтаксис. Хотя он может быть уникальным для каждого языка, большая часть современных языков программирования следует стандартам, учреждённым C около 40 лет назад.
Эта концепция появляется в Hack ‘n’ Slash во второй половине игры, когда развлечения с переменными сменяются голым кодом. Внутриигровой код, основанный на языке Lua, не так уж строг с точки зрения синтаксиса. Скорее всего это сделано, чтобы новичкам было легче его понимать. Правда, выдуманная терминология заменяет одну путаницу другой, ограничивая свою применимость в реальном мире. Но самые распространённые элементы синтаксиса всё равно присутствуют, что позволяет познакомиться с общей структурой современного кода.
Эти элементы включают точечный синтаксис, используемый в ссылках типа Port.Value (которая обращается к переменной Value в объекте Port) и структуру выражений if. then. Чтобы помочь игроку расшифровать эти правила синтаксиса, Hack ‘n’ Slash показывает ему визуализированную версию кода. В ней переменные представлены в виде разноцветных кристаллов, которые помещаются в механизмы, выполняющие определённые действия. Цветные линии между механизмами показывают ход выполнения программы, хотя машины стоят так близко друг к другу, что за порядком операций часто сложно уследить.
Концепция: Функции
У программистов есть поговорка, что 90% времени выполнения программы занимает обработка 10% кода. Иными словами, программы тратят очень много времени на повторение одних и тех же операций. Поэтому для удобства мы разделяем часто используемые фрагменты кода на отдельные функции, и каждый раз, когда нам надо, чтобы программа выполнила эти команды, мы просто вызываем функцию с помощью строчки типа funFunction(). Это позволяет нам не повторять один и тот же код много раз, и, что важнее, изменять только один фрагмент кода, если в этой функции надо что-то изменить.
В игре функции имеют вид больших механизмов. Их можно взламывать так же, как и остальные объекты. Изменения, внесённые в код функции, останутся на протяжении всей игры и могут привести к неожиданным последствиям на следующих уровнях. Это огромная опасность в программировании, особенно в крупных проектах, и узнать о возможных эффектах даже самых небольших изменений может быть очень полезно.
Как игра Hack ‘n’ Slash очень спорная, но как способ обучения программированию она довольно полезна. Делая акцент на изменении переменных и представляя функции в виде физических механизмов, она обучает концепциям, необходимым всем начинающим программистам. Hack ‘n’ Slash хорошо даёт понять, какие системы и процессы лежат в основе всех современных языков программирования.
Если вы учитесь программировать, знайте, что это можно делать веселее. Вам могут помочь разные курсы, но программирование игр — самый популярный инструмент, чтобы научить вас основным принципам. Программирование игр, за некоторыми исключениями, находится на грани игрового сообщества. Играми интересуются только энтузиасты-программисты или люди, которые хотели бы улучшить программирование.
Тем не менее, есть несколько разработчиков, которые просто делают программирование игр. Поэтому выбор игр для программирования достаточно велик, и у вас есть из чего выбрать.
Чтобы вам было легче выбрать интересные игры, мы подготовили для вас этот список. Здесь вы найдете самые интересные программные игры (и аналогичные), которые продаются в Steam. Для дополнительного разнообразия мы добавили несколько технических игр, которые не полностью посвящены программированию, но посвящены несколько другим областям (например, созданию собственного ПК).
Silicon Zeroes
Silicon Zeroes — одна из лучших инди-игр для логики и программирования, которая обучает основам компьютерных технологий. В отличие от программирования Human Resource Machine, эта игра ориентирована на основы электроники и работы на ПК. В общей сложности 70 уровней объяснят основы и приведут вас к созданию собственного процессора. Игра довольно тяжелая, и конечно, не подходит для начинающих.
Else Heart.Break
Else Heart.Break расскажет вам историю Себастьяна, молодого мальчика, который отправляется на работу в далекий город Дорисбург. В этом городе он встречает много людей, в том числе своих будущих друзей.
Проект задуман как приключенческая игра. Вместо классических логических головоломок, таких как сборка правильных шаблонов или сборка последовательности чисел, вы учитесь изменять реальность с помощью программирования.
While True: Learn
В True: learn вы становитесь специалистом по компьютерам, который зарабатывает на хлеб выпуклым путем визуального программирования. В игре вы решаете простые задачи, такие как сортировка анкет и более сложные задачи, такие как обновление ваших программ и баз данных. Игра имеет приятный, неформальный пользовательский интерфейс, и даже начинающие программисты её поймут.
Human Resource Machine
Human Resource Machine от студии Tomorrow Corporation, которая приобрела популярность благодаря своей маленькой, но игривой инди-игре Little Inferno. Human Resource Machine использует ту же графическую стилизацию, но ее центральная концепция отличается.
В Human Resource Machine вы становитесь сотрудником многонациональной корпорации. Ваша задача состоит в том, чтобы автоматизировать производственный процесс так, чтобы в конце процесса появилась продукция.
На практике, вы получаете задачу, например, переносить коробки с одного уровня на другой. Затем вы должны загрузить необходимые команды в список команд в порядке выполнения этой задачи. Получив его, вы получите более сложную задачу, которая часто основана на новом решении (и команде).
Вся игра предназначена для широкой публики, поэтому она не содержит каких-либо сложных проблем или настроек. Управление очень простое, и обучение также построено очень хорошо. Игра подойдет для ваших детей.
LogicBots
LogicBots — это игра-головоломка, которая полностью выдвигает основную идею логических игр и требует решения логических головоломок. В LogicBots вы строите роботов, которые будут решать головоломки за вас. Звучит просто, но будьте уверены, что эта игра прекрасно продувает ваши мозги.
Hacknet
Hacknet — одна из самых популярных игр для программирования. У него нет сложной графики, в большинстве случаев это командные строки, команды Unix и процессы взлома.
Hacknet построен как настоящий симулятор, но даже более преданные новички могут в неё сыграть — у него есть система поддержки, которая не требует никаких команд Unix. Возможно, именно поэтому Hacket так популярен.
SpaceChem
SpaceChem — это не столько игра программирования, сколько игра химии. SpaceChem был одним из их первых достижений в Steam и смог пробить дыру в мире.
Человечество в колонизации мира должно найти способ добывать все необходимые элементы и соединения. Для этого есть реактор, который производит все элементы и соединения, но он крайне ненадежен, поэтому вы придумаете совершенно новую технику. Вы должны наблюдать и эксплуатировать реактор, чтобы он делал то, что должен, и никому не угрожал.
И тут есть некоторые технические проблемы. Вы должны принести все необходимые материалы в реакторы, а затем все элементы, сделанные вокруг вас. И для этого нужно строить транспортные схемы. Геймплей углубляется из-за фазы строительства, и его сложность возрастает. Игра не одна из самых сложных.
Infinifactory
В Steam Infinifactory представлена как «игра-головоломка с песочницей», в которой вы производите продукты для своих инопланетных мастеров и стараетесь не умереть. Infinifactory описывается как «SpaceChem in 3D», но отдаленно напоминает мне логическое Minecraft.
У вас есть множество доступных функций, таких как блоки, ремни, разъемы, датчики, кулисы, роторы и многое другое. В отличие от других логических игр, вы не привязаны к тому, как выглядят производственные процессы. Никто не говорит вам, сколько кубиков использовать, где строить. Все зависит от вас.
Хорошая новость заключается в том, что Infinifactory включает в себя Steam Workshop.
TIS-100
TIS-100 содержит более двадцати уровней. Мультиплеер также доступен, чтобы помочь вам измерить свои навыки с друзьями или другими людьми по всему миру.
SHENZHEN I / O
В SHENZHEN I / O вы создаете схемы из различных компонентов от разных производителей, таких как микроконтроллеры, память, логические шлюзы и ЖК-экраны, и пишете свой собственный код на собственном языке программирования игры.
Звучит хорошо? Но будь осторожен! SHENZHEN I / O — одна из самых сложных программных игр в Steam. Даже для активных программистов некоторые из его уровней могут быть действительно сложными. Обучения беспощадное, и вы просто не сможете обойтись без внимательного прочтения 30-страничного руководства.
Opus Magnum
В Opus Magnum вы играете роль алхимика. Ваша задача — смешать нужные вещества. Для этой цели вы можете использовать разные вращающиеся и движущиеся руки для создания устройств трансмутации, которые затем смешивают вещества.
Сама сложность Opus Magnum не так высока, но здесь вы сражаетесь в основном с эффективностью и скоростью.
Duskers
У вас есть слабость к фильму «Чужой» (или, по крайней мере, к некоторым из этих фильмов), и вам не кажется странным программирование? По мнению некоторых людей, вы не можете найти лучшую игру, чем Duskers. Duskers гораздо лучше представляли Alien, чем Alien: Isolation.
В Duskers вы играете роль оператора беспилотника, с которым вы ищете негостеприимную внеземную среду и выполняете различные задачи. В игре не очень сложная графика и командная строка является основным средством управления дронами.
Quadrilateral Cowboy
Quadrilateral Cowboy входит в число приключенческих игр с элементами киберпанка и историей. Тем не менее, наиболее интересными в этой игре являются весьма необычные головоломки, в основе которых лежит умная система взлома. Геймплей вполне доступен, но если у вас нет командного опыта, вы, вероятно, пропустите её.
Mainlining
Mainlining позволит вам узнать, каково быть сотрудником секретной службы MI7, который ищет подозреваемых в штаб-квартире вашей организации. Жанр Mainlining входит в число приключенческих игр типа «укажи и щелкни», в которых играет сложная история, а затем интересные головоломки. Mainlining построена на вашей способности решать задачи весьма оригинальными способами. Как сотрудник службы безопасности, в вашем распоряжении около десяти различных программ.
В дополнение к полной версии игры в Steam также есть демоверсия. Так что, если вы не совсем уверены, что эта игра веселая, начните с нее.
В MHRD вы можете испытать технологический бум в 1980-х годах. В игре вы становитесь управляющим и единственным техническим специалистом по аппаратному запуску Microhard. Ваша задача — проектировать новые аппаратные схемы, писать собственные программы, создавать аппаратные сборки и многое другое, что связано с проектированием ПК. Игра имеет простой пользовательский интерфейс.
Screeps
Screeps — это MMO RTS с открытым исходным кодом для программистов, которая вращается вокруг одного диска — программных модулей искусственного интеллекта. В игре вы управляете своим юнитом с помощью написания JavaScript. Дело в том, что агрегат работает 24 часа 7 дней в неделю.
Lightbot: Code Hour
Игра была создана с целью научить детей основным принципам программирования простым способом, но благодаря возрастающей сложности взрослые также получат удовольствие от Lightbot: Code Hour.
В принципе, это простая игра программирования, в которой вы пытаетесь создать последовательности, из команд которых робот должен включить выбранные платформы. Существуют основные команды, такие как поворот вперед или влево, прыжок или поворот. Позже вы начнете напрягаться и узнаете, как использовать условия, циклы и процедуры.
Lightbot: Code Hour доступен для Android и iOS.
SpriteBox: Code
SpriteBox: Code Hour принадлежит тому же разработчику, что и предыдущий проект, и, подобно ему, предлагает возможность изучать программирование, сначала с помощью значков, затем добавляет текстовые команды и изучение основ синтаксиса Swift / Java. I SpriteBox: Code Hour можно бесплатно загрузить на свой мобильный телефон.
Bit by Bit — программирование игр
Наверняка многие геймеры задумывались о том, что было бы неплохо сделать свою игру. На первый взгляд, сам процесс разработки кажется невероятно сложным. Да и опираясь на современные ААА-тайтлы, мы прекрасно знаем, что редко проект делается в одиночку, как правило, над ним трудится команда из десятков, а то и сотен людей.
Тем не менее существуют игровые движки, которые помогут реализовать игру вашей мечты даже самому, нужно только немного терпения и энтузиазма. Сегодня разберем именно их. Возможно, какие-то движки из списка станут фундаментом для вашего будущего проекта!
GameMaker Studio 2
Именно GameMaker Studio 2 – это тот движок, на который стоит обратить внимание в первую очередь. Он подойдет людям, которые ничего не понимают в игростое и не имеют соответствующего образования. Он простой в освоении за счет встроенного языка сценариев, который придумали создатели движка, чтобы разработка игр стала максимально доступной.
Идеально подойдет для разработки 2D платформеров и ролевых игр. Также движок позволяет легко реализовать кросс-плей в своих проектах. Есть пробный период для тестирования возможностей, но если захочется серьезно заняться созданием игр, придется заплатить $99 за постоянную лицензию, то есть никаких месячных или готовых платежей – платим один раз и получаем инструмент навсегда.
Плюсы GameMaker Studio 2:
- Обширная документация, которая написана понятным языком;
- Простой язык сценариев для разработки;
- Большое сообщество разработчиков, которое поможет прокачать свои скиллы в создании игр.
Минусы GameMaker Studio 2:
- Слишком простой язык сценариев, в котором легко запутаться, если проект большой;
- Из-за простоты языка программирования теряется производительность проекта;
- Если долго сидеть на этом движке, то в будущем будет сложно перейти на более продвинутый, например, Unity или Unreal Engine 4.
Ren’Py
Движок был специально создан под язык программирования Python. Довольно простой в освоении и, по сути, зная один язык программирования и любой графический редактор, уже можно садиться и делать игру. Это идеальное решение для тех, кто решил выучить Python, и потом думает, как практиковать полученные знания.
Используется Ren’Py в основном для простых симуляторов и 2D квестов. Делать что-то сложнее на нем, скорее всего, не получится, но при желании можно попробовать. У движка открытый исходный код, поэтому к нему часто выходят различные дополнения для разработки. А еще довольно большое комьюнити, с которым можно пообщаться и получить бесценный опыт.
Плюсы Ren’Py:
- Кроссплатформенный движок, который позволяет делать игры под любые устройства;
- Удобен в использовании и наглядно показывает, что писать код во время разработки не так страшно, как кажется;
- Лучшее решение для квестов и визуальных новел.
Минусы Ren’Py:
- Есть ограничения в поддержке различных механик;
- Ориентирован в первую очередь на 2D проекты, поэтому с 3D работать сложно;
- Изначально был заточен под конкретные жанры, соответственно, какой-то шутер от первого лица или стратегию в реальном времени на нем сделать практически нереально.
Construct 2
Идеальный вариант для тех, кого начинает трясти от фразы «нужно писать код». Construct 2 устроен таким образом, что предоставляет возможность создавать игры из различных моделей и выбирать встроенные механики. Например, можно взять готовые спрайты для персонажей или нарисовать свои, затем выбрать один из вариантов физики и на скорую руку сделать платформер или что-то подобное.
Как создаются видеоигры от идеи до продажи
Разбор всех этапов разработки видеоигр начиная от цели будущего проекта и заканчивая старатом продаж.
Здесь очень легко сделать прототип игры, а затем навешивать на него интересный контент. При этом движок подходит исключительно для 2D игр, сделать на нем что-то в 3D крайне сложно и долго, проще воспользоваться тем же Unity или аналогами. Несмотря на это, сложные 2D игры вроде длинных jRPG на нем сделать реально, но придется брать бизнес-версию, которая обойдется в $4 в месяц или $60 в год. Это при условии, что движок будет использовать один человек. Есть и другие пакеты бизнес-версии, и там расценки отличаются.
Плюсы Construct 2:
- Не нужно писать код, идеально подойдет новичку;
- Множество инструментов для простой разработки 2D игр;
- Интуитивно понятный интерфейс, легко разобраться с тем, как создавать игры.
Минусы Construct 2:
- Неудобно использовать для 3D игр;
- Чтобы сделать игру более проработанной, придется платить;
- Редко появляются обновления движка с новыми возможностями. Как правило, просто шлифуется готовое.
libGDX
Простой в освоении кроссплатформенный движок, который написан на языке Java и отлично работает с OpenGL. Есть возможность публиковать готовую игру сразу на нескольких платформах. Сегодня активно используется для создания мобильных игр, но и десктопный проект на нем вполне реально реализовать.
Отдельно стоит отметить поддержку со стороны сообщества. Именно с помощью других разработчиков вы сможете узнать много полезной информации о разработке и получить навыки игростроения. Также тут есть понятная документация, чтобы максимально быстро начать создавать свои игры. Идеальный вариант, чтобы начать разработку.
Плюсы libGDX:
- Позволяет делать кроссплатформенные проекты;
- Предлагает удобную и понятную документацию;
- Много инструментов, чтобы комфортно делать игры именно под смартфоны и планшеты.
Минусы libGDX:
- Слишком медленно развивается, обновления выходят с задержками;
- Количество инструментов ограничено, проект ААА класса на нем не реально сделать;
- Полностью без языка программирования обойтись не получится.
Phaser
Сразу уточним, на этом движке сделаны не оригинальные Snake и Pacman, а их усовершенствованные копии. Когда создавались оригиналы, данного движка еще в помине не было. Суть Phaser в том, что он позволяет делать различные 2D проекты максимально удобным способом. Он поддерживает язык HTML, соответственно, разработка игры на нем чем-то напоминает создание сайта. При этом есть масса готовых инструментов, которые помогут быстро собрать простенький проект.
Именно Phaser сейчас используется, чтобы дать вторую жизнь старым играм наподобие Snake и Pacman. Умельцы по всему миру собирают на них игры своего детства или делают что-то похожее. У движка отличная документация и очень активное сообщество. Здесь вам всегда помогут с реализацией проекта, и это одна из причин, по которой движок берут для своей первой игры. Также на официальном сайте есть раздел с кучей готовых спрайтов, уровней, модулей с физикой к игре, аудиодорожками и всем остальным. Из наработок сообщества вполне реально собрать оригинальную и затягивающую игру.
Плюсы Phaser:
- Очень прост в освоении и не требует глубоких знаний в программировании;
- Идеально подходит для создания 2D игр, причем к этому подталкивают сами создатели движка;
- Есть куча готовых инструментов, из которых можно собрать готовую игру.
Минусы Phaser:
- Слишком сложно сделать что-то в 3D;
- Мало ресурсов для того, чтобы реализовать крупный проект, придется обходиться простыми десктопными платформерами и браузерными играми;
- Обновления движка выходят редко.
Unity
Сегодня это основной движок для инди-разработчиков. На нем сделано огромное количество 2D и 3D игр. При этом для тех, кто не знаком с созданием видеоигр, он окажется достаточно сложным в освоении. К счастью, есть отлично прописанная документация, которая поможет что-то сделать даже с минимум понимания процесса разработки. Нужно только терпение и желание создать свою игру.
Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity
Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем.
Также стоит отметить встроенный магазин, в котором есть множество готовых ресурсов для создания игр. Например, Corgi Engine и Rex Engine, которые предлагают готовый набор для управления игрой и реализации физики. Что касается спрайтов и 3D моделей, то их тут десятки тысяч, есть платные и бесплатные. Сам же Unity распространяется в виде бесплатной версии, Unity Plus за $35 в месяц и Unity Pro за $125 в месяц.
Плюсы Unity:
- Есть инструменты для быстрого создания прототипа будущей игры;
- Можно достичь высокого уровня производительности в проекте;
- Универсальное решение, которое используется как для маленьких проектов, так и для ААА-тайтлов.
Минусы Unity:
- Проект имеет закрытый исходный код, если вы столкнетесь с каким-то багом, то придется ждать обновления Unity;
- Редактор кода и отладчик часто работают плохо и отнимают кучу времени у создателя;
- Не такой низкий порог вхождения, как в других движках. Чтобы сделать на нем игру, придется многое выучить.
CryEngine
Один из самых популярных движков среди разработчиков. Еще один вариант для тех, кто серьезно хочет заняться созданием игр. Здесь не получится просто перетаскивать готовые модели на экран и добавлять физику, но что-то простое вполне реально сделать даже без знания программирования.
Движок стал популярен после выхода Crysis и показал, насколько красивыми можно делать игры. Если ваша основная цель сделать игру с потрясающей графикой, то это одно из лучших решений. Тут есть масса инструментов для работы с внешним видом проекта. К тому же постоянно выходят обновления с новыми моделями для создателей игр. Движок имеет бесплатную версию, но чтобы получить больше возможностей, придется платить $10 в месяц за продвинутую версию. Также этот инструмент имеет встроенный магазин с моделями, физикой и многим другим для создателей игр. Причем продают все эти дополнения как создатели CryEngine, так и независимые разработчики.
Плюсы CryEngine:
- Масса инструментов для работы с графикой;
- Постоянное развитие, обновления с новыми возможностями выпускают очень часто;
- Огромный магазин с инструментами для ваших будущих игр.
Минусы CryEngine:
- Для создания качественной игры придется учить программирование;
- Очень сложно делать многопользовательские проекты из-за ограничений движка;
- Скромное комьюнити, которое состоит в основном из разработчиков известных студий, а они вряд ли вам помогут с вашим первым проектом.
Unreal Engine 4
Пожалуй, самый сложный движок для новичков из нашего списка, но он однозначно заслуживает внимания. Дело в том, что Unreal Engine 4 можно назвать финальным шагом для того, кто серьезно задумался над разработкой. Сразу можно попробовать движки, которые предлагают более простой язык сценариев и кучу вспомогательных инструментов, но если решили делать что-то крупное и качественное, то без UE 4 не обойтись.
Оказывается, Unreal Engine 4 может быть невероятно фотореалистичным, а не только мультяшным
Профессиональные разработчики поделились скриншотами локаций на движке Unreal Engine 4, которые доказывают, что на нем можно не только мультяшные.
Преимущество движка в том, что создатели выпустили несколько серий обучающих роликов. С их помощью даже при минимальных познаниях в программировании можно попробовать сделать свою игру. К тому же здесь простой интерфейс и удобная система программирования элементов, которая состоит из специальных блоков. UE 4 подойдет для создания игр любого жанра, причем как в 2D, так и в 3D. Он абсолютно бесплатный, но если ваш проект взлетит и заработает более $3000, то придется постоянно платить создателям движка роялти в размере 5%.
Плюсы UE 4:
- Есть огромное количество инструментов, чтобы создавать любые игры;
- Удобный интерфейс, в котором разберется даже новичок в игрострое;
- Разработчики сделали отличную документацию и даже выпустили обучающие видеокурсы для пользователей.
Минусы UE 4:
- Высокий порог вхождения, до UE 4 лучше попрактиковаться на более простых движках и начать изучать программирование;
- Если проект выстрелит, то вам придется платить создателям движка пожизненно;
- Не самые удобные инструменты для 2D проектов, и именно с ними здесь часто возникают проблемы во время разработки.
На этом наш топ доступных игровых движков подошел к концу. Какие-то из них позволят вам сделать простую игру за вечер, другие предназначены для сложных проектов, над которыми придется работать месяцами, а то и годами. В любом случае каждый из них можно освоить, и большинство из вышеперечисленных примеров имеют бесплатные версии.
Если у вас есть невероятное желание создать свою игру, то наша подборка вам точно поможет. А если вы уже этим занимаетесь или когда-то пытались что-то сделать, то расскажите в комментариях, с каким движком работали и как ваши успехи.
Если вы планируете сделать карьеру разработчика видеоигр, ваш первый шаг — научиться программировать на языке, который используют профессионалы для создания величайших игр в мире. Но какой из многих языков программирования игр вам следует изучить в первую очередь?
Это очень важное решение. Чтобы выучить хоть один язык программирования, потребуется много времени, и лучше не тратить его на проходняк, который является лишь «изюминкой месяца».
Вместо этого вы хотите выучить язык, который ценится ведущими игровыми компаниями, такими как Sony, Activision или Nintendo. Так какие языки программирования помогут вам устроиться на работу в ведущую игровую компанию?
Популярность или немного статистики
Чтобы ответить на этот вопрос, мы возьмем 70 объявлений о вакансиях от 16 ведущих разработчиков игр со всего мира, чтобы выяснить, что им требуются от кандидатов на вакансии инженеров. Результаты представлены ниже.
Лучший язык программирования для игр: C/C++
Как видно из диаграммы выше, C/C++, по мнению ведущих игровых компаний мира, на сегодняшний день является лучшим языком программирования для игр. Более половины объявлений о вакансиях указали C/C++ как требование.
И речь идет не о каких-то низкоуровневых должностях, близким к уборщику. Этот язык фигурирует в качестве требования в широком спектре вакансий, включая программиста инструментов, графического инженера, программиста AI, Backend-программиста, программиста ответственного за геймплей и многих других.
Так что, если вы ищете язык для первого изучения, вы просто не можете ошибиться с C/C++. Очевидно, что он откроет для вас много-много дверей в профессии разработчика игр.
Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем.
«Или эквивалент»
Несомненно, важно быть знакомым с лучшими языками программирования. Тем не менее факт состоит в том, что, зная один язык программирования, гораздо легче выучить другие. Вот почему в 14% объявлений о вакансиях указывается требование к знанию языка, но затем делается оговорка: «или эквивалент».
Эти компании понимают, что любой хороший программист может изучать новые языки по мере необходимости. Именно поэтому они открыты для заявок от кандидатов, имеющих опыт программирования на других языках.
А как насчет всех остальных языков?
В большинстве случаев менее используемые языки характерны для конкретной студии, что, вероятно, указывает на то, что некоторые студии имеют узкоспецифические инструменты разработки игр и технологии, построенные на нестандартных языках программирования.
В других случаях определенные языки были предпочтительны для конкретных типов вакансий. Например, язык ассемблера требовался для работы программистом движка, что вполне логично, поскольку ассемблер используется почти исключительно в сверхвысокопроизводительных областях игрового движка. А Java был упомянут несколькими игровыми компаниями, но в основном для работы в области бэкэнд и сетевого программирования.
Вывод
Если вы хотите начать успешную карьеру программиста видеоигр, совершенно очевидно, что изучение языка C/C++ станет важным шагом на вашем пути. Он уже несколько десятилетий занимает лидирующие позиции благодаря своей высокой производительности по сравнению с другими языками, и это вряд ли изменится в ближайшем будущем.
Тем не менее это не означает, что вам обязательно нужно начинать с C/C++. Изучение любого языка программирования поможет вам стать разработчиком программного обеспечения, и есть много других языков, которые легче выучить — даже профессиональные игровые компании знают, что как только вы научитесь писать на одном языке, вам будет легче изучать «эквивалентные» языки по мере необходимости.
Так что, если вы предпочитаете начать с чего-то менее популярного, но более легкого в освоении, дерзайте! Многие курсы программирования начинаются с обучения языкам «высокого уровня», таким как Lua или Python, поэтому не стесняйтесь начинать с них, если появилась такая возможность.
Вы всегда можете начать изучать C/C++ после того, как разберетесь с основными понятиями, которые применимы ко всем языкам программирования. Не успеете оглянуться, как вы уже будете осваивать новые языки программирования буквально на автомате.
В магазине игр Steam появился новый интересный представитель из жанра «песочница» — Screeps. Механика игры заключается в управлении колонией посредством программирования AI юнитов на JavaScript. Кстати, мы уже писали о программировании нейронной сети на JS.
Вот такой трейлер игры можно найти в Steam:
Поиграть в Screeps можно прямо из браузера, но в реальном (не тренировочном) игровом мире, видимо, все равно придется платить за использование вычислительных мощностей, чтобы ваши скрипты могли исполняться.
В целом Screeps — это традиционная стратегия, в которой целью игры является наращивание влияния в игровом мире.
К слову, игровой мир там общий: нет никаких отдельных серверов, колония игрока управляется написанным им кодом 24/7 в едином мире с колониями других пользователей. На момент написания материала игра опубликована со статусом «в раннем доступе», и разработчики как раз продолжают работу над возможностью играть в локальном мире или на выделенном сервере по сети с друзьями. Выпуск окончательной версии и сервера с открытым исходным кодом намечен на июль-август 2016 года.
Что касается рабочей среды: код можно писать как во встроенном редакторе, так и в любом другом — в частности, в удобной вам IDE.
Механика игры порождает интересный эффект: игроку не нужно принимать непосредственное участие в управлении своей колонией — достаточно заходить время от времени, чтобы проверить, что все идет как надо.
Базовые навыки уже должны программирования иметься у игроков. Создатели утверждают, что игра не обучает программированию, а позволяет продемонстрировать свое мастерство. Правда, возможность подключения дополнительных библиотек нигде не упомянута, так что вас может неприятно удивить тот факт, что jQuery — это не то же самое, что JavaScript.
По заверению пользователей, игра очень мотивирует писать код, вы только взгляните на активность в репозитории игрока BonzaiFerroni:
Сейчас на счету игры в Steam много отзывов, причем на момент написания материала только положительных. Хотя у автора статьи возникла проблема со входом и через GitHub, и через Steam. Если будете пробовать войти первым способом, обязательно указывайте свой e-mail, иначе на следующем шаге вам не будет прислано письмо для подтверждения регистрации и игра зависнет в ожидании.
Читайте также: