Главная » 2013 » Август » 23 » GameMaker: Studio v1.2. Обзор от DeatHSoul
15:12
GameMaker: Studio v1.2. Обзор от DeatHSoul

Вот и вышло долгожданное обновление GameMaker: Studio до версии 1.2. Самые вкусные нововведения этой версии: поддержка шейдеров и появление YoYo Compiler (подробности — ниже). Сегодня мы вспомним все наиболее значимые изменения в GameMaker: Studio 1.2 в сравнении с GameMaker 8.1.

Перед тем, как начать, я хотел бы обратить ваше внимание на несколько видеороликов, которые YoYoGames выложила для демонстрации нововведений:


Несколько месяцев назад GameMaker: Studio исполнился год. Однако всё ещё есть пользователи, которые используют GameMaker 8.х и задаются вопросом: стоит ли переходить на GMS? Попробуем ответить на этот вопрос, перечислив основные изменения.

Сравнение GameMaker: Studio v1.2 и GameMaker v8.1
Первое, и самое главное отличие GameMaker: Studio от GameMaker 8.х — возможность портирования игр на большое количество разных платформ:
  • Windows PC / Windows 8 (javascript, RT native)
  • Mac OS X
  • Linux (Ubuntu)
  • Android
  • iOS
  • Windows Phone 8
  • HTML5 (+WebGL 3D)
  • Tizen

Кроме функции экспорта, GameMaker: Studio также включает немалый функционал из сферы сервисов рекламы, аналитики, внутриигровых покупок, социальных сетей и даже сервиса Steam. Это упрощает реализацию нужных функций и освобождает от необходимости ручного подключения API того или иного сервиса.

Вспомним самые важные нововведения:
  • Шейдеры. Шейдеры версии 1.4 были доступны для GM8.0, подключались с помощью dll билиотеки и для их написания использовался ассемблер. Однако теперь в GMS есть встроенная поддержка шейдеров, которые можно писать на HLSL или GLSL (включая HLSL11), а версия шейдеров ограничена только платформой. Подробнее о том, что такое шейдеры — вы можете прочитать в статье на YoYo Games (в интернете есть много материалов по теме на русском).
  • Компиляция кода (используется технология LLVM). Вскоре будет доступен для покупки отдельный модуль компиляции за $300, который позволит компилировать приложения для всех платформ. Фактически это происходит в два этапа: вначале gml транслируется в С++, а затем компилируется с помощью Clang. В первую очередь это означает значительное ускорение расчёта игровой логики. Увеличение скорости может достигать ста раз! Однако это не касается графического конвеера (т.е. отображения графики), так что fps, конечно, не увеличится в 100 раз. Но расчёт физики, к примеру, теперь будет выполняться в разы быстрее.
  • TexturePages (текстурные страницы, атласы). Отныне вся графика (спрайты, фоны, шрифты) объединяется в одно большое изображение, которое целиком загружается в видеопамять. В виду уменьшения кол-ва texture swaps (загрузки и выгрузки текстур из видеопамяти) повышается общая производительность. Кроме того, текстурные страницы полностью настраиваются, их можно отгружать и подгружать по мере необходимости и даже автоматически создавать копии разного качества для разных платформ.
  • Общее увеличение производительности. Помимо всех нововведений выше, GMS лучше оптимизирован в сравнении с GM8.
  • Физический движок (используется библиотека Box2d). Физический движок интегрирован в IDE, для каждого объекта и комнаты доступны настройки физики. Для объектов доступен редактор масок.
  • Абсолютно новая аудио система (+поддержка Ogg). Значительно расширился функционал аудио системы. Теперь каждый звук — отдельный экземпляр, с которым можно работать индивидуально. Например, ставить на паузу или изменять громкость.
  • Абсолютно новый кроссплатформенный сетевой движок (+функционал буферов).
  • Теперь можно создавать несколько разных конфигураций и наборов констант для игры, и затем компилировать игру под разные платформы с выбранной конфигурацией.
  • Поддержка систем контроля версий (+встроенная поддержка SVN). Вместо привычного файла gmk/gm81 проекты теперь хранятся в виде большого количества файлов, что упрощает подключение системы контроля версий (присутствует возможность экспорта в *.gmz файл, включающий в себе все файлы проекта).
  • Новое событие Draw Gui, которое несколько упрощает отображение интерфейса (особенно в 3d играх, в играх с масштабированием и поворотом вида).
  • Асинхронные события и диалоги (show_message_async, show_question_async, get_string_async, get_integer_async и т.д.)
  • Массивы теперь могут быть переданы в скрипты / возвращены из скриптов и удалены из памяти (при изменении массива в скрипте — массив копируется). Добавлены функции is_array(), array_length_1d() и array_length_2d().
  • Добавлены операторы инкремента и декремента (++ и -- ). Работает и префиксная, и постфиксная формы.
  • Теперь можно устанавливать значения для переменных прямо в блоке var (var a=???, b=???, c=???, и т.д.)
  • Теперь для каждого вида можно установить индекс сурфейса, на который будет рисоваться вся графика (view_surface_id[n]=???). Другими словами, при установке сурфейса вид будет рисоваться не на экран, а на сурфейс. Затем сурфейс можно нарисовать в событии Draw Gui (это позволяет добавить различные пост-эффекты).

Нововведения в интерфейсе:
  • Редактора комнат обновлён: добавлено выделение объектов и тайлов и их копирование / перемещение, настройка image_scale/image_angle/image_color/image_alpha для каждого экземпляра и присваивание ему уникального имени, изменение порядка создания экземпляров в комнате.
  • Редактор кода обновлён: теперь в нём нормально отображаются любые символы (например, кандзи). Кроме этого, окно редактора кода больше не модальное: можно открывать сколько угодно окон (в первую очередь это касается кода в объектах).
  • Редактор изображений обновлён: теперь можно переключать кадры с помощью клавиш 1 и 2 (назад и вперёд соответственно).
  • Окно шрифта обновлено: теперь можно добавлять отдельные диапазоны символов в шрифт.
  • Теперь можно перетащить файлы или папки прямо в проект и они будут добавлены во Вложенные Файлы (Included Files) с сохранением иерархии.
  • Добавлено отображение номеров для DnD действий (F9 для переключения).
  • Можно открыть родительский объект и спрайт маски с помощью соответствующих кнопок в объекте.
  • Теперь в отладочном режиме можно получить список локальных переменных определённого экземпляра выполнив двойной клик на его индентефикаторе в списке экземпляров.

Кроме этого, некоторые полезные функции были удалены. Однако у опытного разработчика вряд ли возникнут проблемы с тем, чтобы выполнить нужное действие без их использования. Для получения индекса ресурса из строки добавлена функция asset_get_index(), а с помощью asset_get_type() можно определить тип ресурса. Есть ещё несколько новинок. Для изменения точности сравнений добавлена функция math_set_epsilon(). Разницу во времени между текущим и последним шагом можно получить с помощью переменной delta_time (только для чтения). Теперь можно отключить использование буффера глубины с помощью функции d3d_set_zwriteenable(). Добавлены три интересные функции, настраивающие запись rgba каналов: draw_set_alpha_test(), draw_set_alpha_test_ref_value() и draw_set_color_write_enable().

Чего ждать в будущем?
Однажды YoYo Games опубликовала GameMaker:Studio Roadmap — план по развитию GMS. Он уже порядком устарел, однако можно получить примерное представление о том, чего нам ждать в будущем:
  • Новый продвинутый отладчик.
  • Пакеты расширений для всех платформ.
  • Импорт flash ресурсов (в том числе векторных изображений и *.psd).
  • Расширение интегрированной поддержки систем контроля версий (git, perforce и т.д.)
  • Поддержка камеры и GPS.
  • Быть может, будет добавлена возможность писать код C++ и Objective-C прямо в GMS.

Заключение
Наконец, хотелось бы написать несколько строк от себя. GameMaker стал действительно серьёзным и удивительно мощным инструментом для разработки кроссплатформенных игр. Он не остался в прошлом и движется в ногу со временем. И это главное, ведь были моменты в его истории, когда мы сомневались, что он будет развиваться дальше. Единственный негативный момент, о котором мне хотелось бы упомянуть, — IDE. Интерфейс среды разработки всё ещё оставляет желать лучшего. И хотя проблемы в работе с ним уже исчезли, он всё ещё выглядит как страшный монстр. С одной стороны пытается быть похожим на что-то современное, с другой — остаётся чем-то кривым и неудобным в мелочах. Разумеется, сейчас команда YoYo Games занята обогащением функционала GM, так что, я надеюсь, в будущем мы увидим красивую кроссплатформенную IDE, которая не будет оставлять странного послевкусия после своего использования.
Пожелаем удачи GameMaker'у!

Источники
http://www.yoyogames.com/news
http://www.yoyogames.com/tech_blog
http://store.yoyogames.com/downloads/gm-studio/release-notes-studio.html
http://store.yoyogames.com/downloads/gm-studio/release-notes-studio-old.html
http://wiki.yoyogames.com/index.php/GameMaker:Studio_Roadmap
http://gmnewsbite.net/2013/04/22/yoyo-games-show-the-power-of-llvm/
http://gmnewsbite.net/2013/04/24/gamemaker-language-compiler-gmlc/
http://gmnewsbite.net/2013/04/25/llvm-gamemaker-users/
Просмотров: 1879 | Добавил: АДМИН | Теги: YoYo Games Team, GMS, Yoyo Games, лицензирование, YYG, Скидка, выгода, GameMaker: Studio, экономия, скидки | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]