Craftomation 101 — компьютерная игра, несущая под своей оболочкой образовательный смысл. Какие еще существуют способы более увлекательного знакомства с новыми вещами, чем через игровой опыт? Craftomation 101 создает ситуации, когда игрок сталкивается с монотонными заданиями, которые не хочется выполнять вручную, тем самым стимулируя к автоматизации с помощью программирования.
Программируем роботов в игре
Итак, сначала игроку предлагается выполнить задачу вручную, а затем он получает инструкции о том, как автоматизировать повторяющийся процесс с помощью роботов и визуального программирования.
Игра начинается с момента посадки ракеты на замерзший астероид, под поверхностью которого скрыты полезные ресурсы, запасы и другие интересные объекты. Первым заданием будет разогреть эту ракету. Процесс крафта основан на сочетании двух элементов: если стукнуть два камня друг о друга, мы получим искру. Затем добавляем эту искру к куску угля и получаем огонь.
После того, как игрок создал огонь и растопил лед на корпусе ракеты, она выпускает своего первого помощника-робота по имени Крафтомат. Затем объясняется, что Крафтомату необходимо топливо/энергия для работы, уровень которого отображается на индикаторе на его голове. Через несколько минут мы переходим к созданию нашей первой программы. Под руководством и из небольшого набора блоков мы разрабатываем программу, в рамках которой робот будет циклично добывать огонь и пополнять его запасы в кострах.
Костры являются ключевым двигателем прогресса в игре. Они создают область тепла, которая позволяет таять снегу и обнаруживать новые ресурсы. Эти ресурсы и их производные необходимы для выполнения заданий. Выполнение задач приносит игроку очки исследований, которые можно обменять на апгрейды для получения новых блоков программирования.
После нескольких апгрейдов игроку становятся доступны функции. В каждой функции может быть записан свой набор инструкций. Таким образом, функции помогают игроку избежать необходимости писать повторяющийся код. Например, все роботы разряжаются, поэтому им нужно проверять уровень заряда и заряжать их при низком уровне. Этот код можно разумно организовать в виде функции для удобства использования.
Joycasino — это популярное онлайн-казино, предлагающее широкий выбор азартных игр, включая слоты, рулетку, блэкджек и многое другое. Сайт Joycasino известен своими высокими бонусами для новых игроков, регулярными акциями и турнирами. Казино также предлагает удобные способы пополнения и вывода средств, а также круглосуточную поддержку игроков. Joycasino — отличный выбор для любителей азартных развлечений в онлайне.
В текущей версии игры у вас есть только один робот в начале, так как ракета не способна перевезти больше. Однако, после того как вы освоите систему крафта и основы визуального программирования, вы сможете собрать целую команду маленьких рабочих! И да, вы даже сможете научить роботов создавать других роботов, если вы достаточно умны и настойчивы!
Интервью разработчика
Мы стремились создать игру с простой и интуитивно понятной системой создания, где вы просто объединяли два предмета, чтобы получить новый. Например, можно было ударить камень об другой камень и получить искру, а затем бросить искру на уголь, чтобы получить огонь. Если соединить огонь и воду, то получится пар.
Однако, мы задались вопросом о возможности автоматизации этого процесса. Нам нужен был кто-то, кто мог бы объединять объекты за нас. Этот существо должно было уметь брать предметы из определенного места, держать два предмета двумя руками и комбинировать их для создания новых. Мы поручили нашему художнику попытаться изобразить такое существо. Первые результаты были довольно необычными.
Мы столкнулись с задачей упрощения для игроков выбора конкретного места на карте для программирования. Для этого мы начали использовать визуальные элементы карты, напоминающие шахматную доску. Первоначальная реализация программирования была вдохновлена ассемблером, где добавление и выполнение команд пошагово было достаточно удобным. Летом 2021 года мы решили провести эксперимент с визуальным программированием, так как уже имели опыт работы с подобными системами в Unreal Engine, что было очень увлекательно. Именно поэтому мы решили сделать системы визуального программирования основой для игры, хотя это была скорее песочница для головоломок, а не настоящая среда программирования.
Когда наш программист загрузил первую версию, стало очевидно, что визуальное программирование значительно превосходит стек команд. Более того, это позволило нам расширить функционал программирования функциями, библиотеками, пользовательскими узлами и другими возможностями, которые ценят программисты. После того, как мы определили концепцию, рабочее пространство и персонажей, наш следующий вопрос был: что дальше? Мы начали с цикла добычи ресурсов: загружайте элементы в ракету, чтобы получить награду — новые программные модули для ваших роботов. Позже, когда мы усвоили основы, мы наконец перешли к первоначальной идее использования роботов для терраформирования планеты. Теперь вашей целью стало превратить планету, растопив лед, создав атмосферу, посадив деревья и организовав производство продуктов питания и воды, чтобы сделать планету пригодной для жизни.
Деревья, производство продуктов питания и здания должны были создаваться так же, как базовые элементы или роботы: путем столкновения базовых элементов. Это можно было делать вручную или программировать роботов на выполнение этих задач.
В итоге мы пришли к идее таяния льда на планете. Сначала ракета растапливала снег и лед вокруг места посадки, но затем игроки оставались один на один с этим процессом. Для расширения своего влияния игрокам приходилось разводить костры и поддерживать их горение. Если костер погас, земля вокруг начинала снова замерзать. Если игроки предпочитали ручной труд, процесс быстро превращался в бесконечное микроуправление, становясь настоящим испытанием.