GameMaker: Studio EA 1.99.177

Список изменений:

Android SDK Tools

  • Если вы уже обновились до последней версии Android API, вы увидели, что там перемещён zipalign, что нарушает сборку .apk
  • Эта EA версия содержит исправление для поддержки и старого и нового местоположения программы.

 Редактор изображений

(всё, кроме последнего пункта, только для пользователей Pro/Master)

  • Теперь можно создавать пользовательские палитры. Чтобы задать пользовательский цвет, нужно нажать MMB на палитре. Палитры можно сохранять и загружать.
  • Сделан режим onion-skinning (калькирование) для отображения предыдущих/последующих кадров одновременно с текущим, что очень удобно для анимаций.
  • Можно изменять масштаб предпросмотра двойным кликом на нём.
  • Правая кнопка мыши может быть настроена в качестве ластика, вместо фонового цвета. RMB на ластике.
  • Нажатие J переключает на запасную страницу для редактирования изображения (для обратного переключения нужно повторно нажать J).
  • Можно перемещать вид при нажатых MMB или пробеле.

 Другое в IDE

  • Редактор комнат корректно проверяет, что фон внутри группы индивидуально отмечен как тайлсет или нет.
  • Экспортирование .gml скрипта снова добавляет корректное имя, даже если содержится несколько вкладок.
  • Окна кода таймлайнов больше не могут “отсоединить” момент от тамлайна.
  • Добавлена настройка, позволяющая всем окнам открываться в развёрнутом на весь экран виде.

 В игре

  • os_browser теперь определяет IE11.
  • surface_reset_target() теперь корректно восстанавливает предыдущий размер GUI, а не сбрасывает в значение по умолчанию.
  • Новые константы для событий рисования, которых не было.
  • Сглаживание в SWF теперь применяется и к линиям, и к заливке.
  • SWF AA теперь поддерживается на JS платформах.
  • Исправление для вызова функции расширения из другого расширения.
  • Исправлена ошибка компилятора при использовании enum внутри скрипта до того, как оно было объявлено объектом.
  • script_exists() теперь поддерживает JS платформы.
  • Исправления некоторых LiquidFun get/set функций для узлов.

 Разное

  • Экран проверки лицензии теперь указывает на корректный FAQ
  • Несколько исправлений в Marketplace при экспорте/импорте для расширений, содержащих только код.

 

Скачать GameMaker: Studio EA 1.99.177 можно здесь.

GameMaker: Studio EA 1.99.161, EA 1.99.170

Версия 1.99.161

Изменения (относительно версии EA97)

GameMaker: Marketplace

  • Теперь у вас есть доступ к ранней версии GameMaker: Marketplace. Вы увидите новую строку меню с этой опцией.
  • Просматривать и приобретать что-либо можно с платной лицензией Standard или выше.
  • Для создания своего издательского аккаунта требуется лицензия Pro или выше.
  • Подробности можно посмотреть в категории Marketplace базы знаний.

Изменения в IDE

  • Теперь можно осуществлять поиск по дереву ресурсов, а также включать фильтрацию отображения для просмотра только результатов поиска.
  • Нажатие Ok/Cancel на объекте также закроет все связанные скрипты (аналогично v1354).
  • Фоны, не отмеченные как тайлсеты, теперь не могут быть использованы в качестве тайлсетов в редакторе комнат.
  • Размер комнат по умолчанию теперь задан как 1024*768 вместо 640*480.
  • Ошибки компилятора теперь содержат ссылки на объект и его свойства и можно сразу перейти к указанной строке.
  • Также в поиске по скриптам (Search in Scripts). Если это встроенная переменная или функция, вы можете перейти в документацию отсюда.
  • Окне лога компиляции теперь отображается состояние прогресса при обработке SWF.
  • Android GGS теперь требует иконки в строке с текущими требованиями (аналогично v1354).
  • Теперь одиночные скрипты не будут иметь записи #define, экспортированные в предыдущих версиях, которые имели вкладки.
  • Вам всё равно придётся “почистить” скрипты с вкладками используя эту инструкцию.
  • Кнопка предумножения альфы теперь работает правильно.
  • Объекты теперь содержат список всех потомков в окне свойств. Можно напрямую переключаться между потомком и родителем.

Обновление SVN инструментария

  • Теперь включена текущая версия (1.8) SVN инструментария для использования с репозиториями, созданными сторонними SVN клиентами.
  • Для совместимости также оставлена старая 1.7 версия. GM будет определять, какая версия используется в проекте.
  • В настройках можно выбрать, какой формат/инструментарий использовать при создании или добавлении проекта в репозиторий.
  • Интеграция SVN теперь производится только если в настройках проекта указано использование SVN.

Расширения

  • Процесс создания расширений был немного изменён в сторону стиля “мастера”.
  • Если вы выбираете iOS/Android, заполнители и структура папок будут созданы автоматически.
  • Далее код выбирается через файловый диалог и копируется в правильную папку проекта.
  • Если расширение не указано корректным для выбранной платформы, при компиляции будут автоматически сгенерированы “заглушки”.

Макросы

  • “Константы” в IDE были переименованы в “Макросы”, чтобы больше соответствовать их сути.
  • Конечный результат должен быть рассчитан во время сборки приложения, но это делает более понятным, что он не является статическим.
  • В панели Файл -> Настройки можно указать, хотите ли вы, чтобы автоматически вставлялись значения BUILD_DATE и BUILD_TIME.

Перечисления (Enums)

  • Перечисления можно задавать в C-стиле, вроде: enum MYENUM { ENUM1, ENUM2, ENUM3 }; myVariable = MYENUM.ENUM1;

In-Game

  • Win 8 N игры снова будут корректно масштабироваться в соответствии с настройками.
  • YYC сборка получила исправление для запуска .dll расширений.
  • Несколько точных спрайтов снова будут содержать “объединённую точную” (merged precise) маску (как в pre v1.2).
  • При использовании бесплатной версии, заголовок окна теперь содержит “Made with GameMaker: Studio” (сделано с помощью GMS).

 Дата и время

  • date_get_timezone()/date_set_timezone() переключает время между локальным и UTC для всех остальных функций даты и времени.

Всплывающие уведомления

  • Теперь можно отменить локальные уведомления.
  • Теперь также можно получить список ожидающих локальных уведомлений и пропускать их.

Spine

  • Функциональность была обновлена и теперь включает деформации и дополнительную строку в атласе.
  • Дополнительные функции для проверки продолжительности анимации.
  • Помните, что так как Spine обновляется достаточно часто, мы можем отставать от текущей версии.

SWF

  • Было добавлено экспериментальное сглаживание для SWF-файлов для нативных платформ (не JS).
  • Для использования требуется лицензия Pro.
  • draw_enable_swf_aa(enable) чтобы включить или отключить сглаживание.
  • draw_set_swf_aa_level(aa_level) где aa_level – значение от 0.0 до 1.0 (по умолчанию задано 1.0).
  • draw_get_swf_aa_level() чтобы узнать текущее значение.
  • Пока что нет никакой дополнительной документации.

Буферы для поверхностей

  • buffer_get_surface(buffer, surface, mode, offset, modulo)
  • buffer – буфер для использования; surface – поверхность для взятия; mode – режим пока что всегда равен 0; offset – смещение при добавление в буфер; modulo – дельта, которая будет добавляться в конец каждой строки к смещению.
  • Пока что нет никакой дополнительной документации.

Разное

  • Подходит для использования с Ad Provider Demos v2 (аналогично v1354).
  • Большое количество оптимизаций при загрузке в IDE звуков, спрайтов и т.д, для уменьшения использования памяти.
  • Большое количество оптимизаций компилятора для ускорения создания сборки.
  • Были удалены пробелы из названий всех примеров и уроков. И многие из них были также обновлены. Пожалуйста, удалите и скачайте их заново.
  • Был добавлен новый пример изометрической игры.
  • Xcode и ваше хранилище ключей теперь изящно освобождаются после сборки iOS / iOS YYC.

 

Версия 1.99.170

Изменения (относительно EA161)

IDE

  • ВНИМАНИЕ! Если вы загрузили в магазин пакет с пользовательскими шрифтами используя EA161, обновите его с помощью этой версии!
  • Шрифты: опция “Include in asset package” (Включить в пакет ресурсов) теперь требует от вас предоставление исходного файла шрифта.
  • В настоящий момент разработчики, которые хотят использовать импортированные шрифты, должны установить их вручную в папку проекта [имя расширения]fonts
  • Клик правой кнопкой на расширении и выбор “Create Asset Package” (создать пакет ресурсов) теперь корректно добавляет его в менеджер пакетов.
  • Шейдеры, загруженные из маркета, теперь будут корректно прочитаны при импорте.
  • Теперь возможно создание пакета расширения, содержащего только код.

Steam IDE

  • К сожалению, это в настоящее время невозможно использовать Marketplace пользователям с лицензией Steam.
  • Таким образом, он не будет появляться в IDE для Steam установок, пока эта проблема не будет решена.

 

Скачать версию 1.99.170 можно здесь

 

GameMaker: Studio 1.3.1354

Версия 1.3.1354

  • Разносторонние улучшения
    • При закрытии окна свойств объекта также будут закрыты любые окна с кодом этого объекта (чтобы исключить возможность дублирования окон).
    • Окно компилятора теперь должно быть более отзывчивым при отображении большого количества отладочного текста или информации о построении.
    • Исправлено частое запрашивание лицензии, происходившее в некоторых случаях.
    • Окно лицензирования теперь определяет не свои ключи и не даёт использовать их (с пояснением, почему).
    • Исправление изображения для Windows 8 таргета в случае, если этот модуль отсутствует.
  • Переработанные примеры использования рекламы (версия 2)
    • Вы могли заметить, что мы выпустили обновлённые примеры категории Ad Providers – они теперь содержат «v2» в описании.
    • Для обновления уже установленной версии, вам нужно сначала удалить старую версию из %appdata%GameMaker-Studiodemo и после скачать новую версию.
    • Вы увидите обновлённые описания функций, гораздо больше функционала и некоторое расширенное описание в readme и комментариях.
    • Так же, как и прежде – протестируйте, используя пример, затем экспортируйте его в .gmez и после импортируйте в свой проект.
    • Более подробная информация и некоторые подробности о реализации здесь.
  • Изменения в документации
    • В связи с тем, что версия Standard стала бесплатной, внесены правки в документацию.
    • Обратите внимание на то, что справка предполагает, что все лицензии Standard – нового бесплатного типа. Если у вас уже есть Mac и Windows 8, то они сохранятся.
    • Многочисленные исправления по описаниям функций.
    • Несколько небольших исправлений примеров и уроков.

Скачать здесь.

GameMaker: Studio 1.3.1344

Версия 1.3.1344

  • Изменения в Application Surface
    • application_surface_enable() может отключить новую систему рисования 1.3. Полезно для устройств, которые плохо работали с сурфейсами. При этом также отключится aspect ratio и все исправления GUI из 1.3.
    • Помните, что вы можете включать и выключать её многократно, если захотите. Включение вернёт обратно aspect ratio и т.д.
    • с помощью application_surface_is_enabled() можно узнать, какая система – старая или новая – используется в текущий момент.
  • Изменения в IDE
    • Теперь нет долгой загрузки аудио при запуске IDE, что экономит много времени и памяти в случае проектов, нагруженных аудио.
    • Исправлена серия проблем с импортом проектов GM8.1

И, как обычно, исправления багов.

Скачать здесь.

GameMaker: Studio 1.3.1336

В неё вошли почти все изменения из EA 1.99.97, поэтому весь список повторять не буду.
Отличия с EA:

  • Нет табов и закладок в редакторе скриптов.
  • Не используется новый физический движок LiquidFun.

Добавлено по сравнению с EA97:

  • Теперь запоминается последний выбранный пользователем каталог при сохранении ресурсов.
  • В настройках добавлены кнопки очистки кэша и временных файлов. Также можно задать автоматическую очистку с помощью галочки.
  • Внимание: в глобальных настройках игры обновлены иконки Андроид в соответствии с требуемыми. Вам необходимо заново добавить иконки в проект, иначе они окажутся либо испорченными, либо заменятся дефолтными изображениями.
  • Примеры и уроки
    • Добавлено несколько уроков по application surface, а также множество других примеров было обновлено.
    • Все примеры и уроки были переименованы, чтобы в именах не осталось пробелов. Это означает, что вам нужно будет либо переименовать свои файлы, либо скачать их заново.
    • Имейте в виду, что некоторые старые примеры и уроки были обновлены и переименованы, либо просто убраны, так как их заменили другие.

И, конечно же, как обычно – исправлено множество ошибок.

Скачать можно здесь.

Скелетная анимация спрайтов с использованием Spine

Author: Mark Alexander
Перевод: Dmi7ry
Оригинал здесь

Version: GameMaker: Studio 1.3+

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

GameMaker: Studio теперь поддерживает этот тип анимации спрайтов – можно импортировать файлы, созданные с помощью программы Spine, которая является фантастическим инструментом для создания скелетной анимации (вы можете узнать больше о Spine здесь ). Обратите внимание, что Spine – это очень мощная программа с огромными возможностями и для того, чтобы объяснить, как это всё работает, одной короткой статьи совершенно не достаточно! Однако, мы дадим краткий обзор некоторых ключевых моментов, которые связаны с реализацией скелетной анимации в Gamemaker: Studio.

ПРИМЕЧАНИЕ: Spine имеет trial-версию, которая доступна для скачивания здесь: http://esotericsoftware.com/spine-download 

Обзор Spine

Spine позволяет создать «скелет», а затем менять его позу для создания анимации. Скелет состоит из “костей”, которые могут быть соединены и перемещены относительно друг друга в установленный период времени, а на окончательную анимацию может быть натянута “шкурка” (то есть текстура) для финальной анимации. Для добавления в ваш проект GameMaker: Studio, эта анимация может быть экспортирована или в виде стрипа растрового спрайта, или в виде Spine JSON файла.

Spine_MainScreen

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

Например, вы можете иметь один спрайт и создать несколько анимаций для него (например, набор анимаций из ходьбы, бега и прыжков). Можно создать несколько скинов для вашей анимации, так что один скелет может быть использован для разных персонажей (с теми же движениями, конечно), и вы также можете присоединять к своим спрайтам “вложения”, чтобы в дальнейшем менять их внешний вид. Также все эти вещи доступны для использования в GameMaker: Studio при импорте JSON спрайтов.

ПРИМЕЧАНИЕ: вы можете найти дополнительную документацию о том, как использовать Spine, здесь: http://esotericsoftware.com/spine-documentation/

Основы

Прежде чем изучать GameMaker: Studio с этой стороны, пройдёмся по некоторым ключевым принципам, используемых в Spine. Первый из них – это то, что вам нужно дать название вашим костям и некоторым другим вещам. Эти имена будут использоваться для управления анимациями при работе с ними в GameMaker: Studio, поэтому старайтесь делать их запоминающимися и последовательным.

Также вам нужно обратить внимание на то, где находится центр вашей анимации (то есть её основа, корень, root). Центр анимации – это точка, относительно которой Spine анимация будет закреплена в мировом пространстве. При импорте вашего спрайта в GameMaker: Studio, она будет переведена как координаты центра спрайта (orign), которые нельзя редактировать в этом типе спрайта. Большинство ваших расчетов для движущихся частей скелета также будут зависеть от этой точки.

 Spine_Root

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

Также к вашим Spine спрайтам можно прикрепить “слоты” – это точки, где вы можете отображать отдельное изображение, который не имеет костей. Оно будет перемещаться вместе с родительской костью, что позволит вам добавить вашим анимациям несколько под-изображений, для крепления в пределах одного спрайта. Эти прикрепляемые слоты также должны быть названы в соответствии с изображениями, которые они содержат, так как эти имена будут использоваться в GameMaker: Studio для изменения изображения слота во время игры.

Импорт спрайта Spine

При экспорте спрайта со скелетной анимацией из Spine как JSON, вы на самом деле создадите три отдельных файла. Основной JSON, который содержит все данные костей и анимации, файл атласа, который содержит данные о том, как упакованы текстуры и файл PNG, который содержит непосредственно текстурный атлас. GameMaker: Studio требуются все три файла для создания вашего Spine спрайта, поэтому при импорте они все должны быть в той же папке.

Spine_Import

Добавление таких спрайтов в GameMaker: Studio практически идентично добавлению обычных растровых изображений: нужно создать новый спрайт, и вызвать обычный диалог загрузки спрайта. Перед тем, как выбрать место, в которое вы сохранили ваши spine-спрайты, нужно убедиться, что тип файла в нижней части выбран *.json и далее просто выбрать спрайт, который вы хотите импортировать.

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

ПРИМЕЧАНИЕ: В связи со сложностью скелетных анимаций, полученное изображение, показанное в редакторе спрайта, не предназначено для точного представления анимации, а всего лишь даёт вам простой образ, представляющий анимацию, для визуализации в редакторе комнаты.

Использование спрайтов Spine в GameMaker

После загрузки спрайта в GameMaker: Studio, вы можете использовать его так же, как и любой другой спрайт. Вы можете назначить его объекту, или установить его для экземпляра в коде, и они также будут реагировать на большинство переменных экземпляра спрайта: во время игры их можно масштабировать, вращать, смешивать с цветом и задавать прозрачность. Также их можно рисовать с помощью расширенных функций draw_sprite (за исключением draw_sprite_pos и draw_sprite_part), как и любой другой спрайт.

Spine_GMSprites

И всё же основной смысл в использовании Spine – это создание спрайта со скелетной анимацией с несколькими позами и скинами, что достаточно сильно отличается от обычного растрового спрайта. Для этого GameMaker: Studio имеет множество новых функций skeleton_*, а также новое событие “Animation Update” (обновление анимации) событие для поддержки такого типа спрайтов. Далее в этой статье будут рассмотрены эти функции и описано, что они делают, но вы можете найти более полное объяснение каждой из них в документации.

Анимации

skeleton_animation_get()

skeleton_animation_set(name)

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

skeleton_animation_get_ext(track)

skeleton_animation_set_ext(name, track)

Это похоже на предыдущие функции, но немного сложнее. Spine позволяет вам задать костную анимацию для части скелета, а затем создать отдельные наборы анимации для этих частей и проигрывать их вместе. Каждая анимация присвоена треку, и при этом track0 всегда является основой, анимацией по умолчанию. Таким образом, вы можете иметь, например, фигуру с присвоенной ей анимацией “ходьба” и эта анимация влияет только на ноги. Далее вы можете иметь различные другие анимации (где перемещаются, например, только руки, или голова, или верхняя часть туловища и т.д.) и назначить одну из них на трек 1, используя эти функции. И GameMaker: Studio будет играть обе эти анимации вместе.

skeleton_animation_mix

Эта маленькая функция, возможно, одна из наиболее важных, когда дело касается окончательного внешнего вида вашего импортированного спрайта. Вы можете изменить анимацию в любое время с помощью упомянутой выше функции skeleton_animation_set(), но при этом image_index будет сброшен в 0, что может сделать “скачок” при переходе, так как одна поза меняется на другую. Для растровых спрайтов это вполне ожидаемо и может быть даже желательным, но со скелетной анимацией спрайтов это выглядит странно и багнуто. Однако это можно исправить это с помощью функции skeleton_animation_mix(), которая будет интерполировать данные наборов анимаций, чтобы они плавно перетекали друг в друга естественным образом.Например, вы можете установить смешивание вашей анимации “бег” в анимацию “прыжок”, затем установить следующее смешивание – теперь анимацию “прыжок” в анимацию “бег” – и теперь ваш спрайт будет плавно анимироваться между двумя этими наборами естественным образом.

Скины

skeleton_skin_get()

skeleton_skin_set(skinname)

Отдельная скелетная анимация может иметь одну или несколько шкурок, и они могут переключаться с помощью вышеуказанных функций. Это означает, что вы можете иметь несколько различных персонажей в вашей игре, использующих один и тот же базовый спрайт анимации. Важно отметить, что Gamemaker: Studio поддерживает только один текстурный атлас на спрайт, и поэтому, когда вы создали свой Spine спрайт, вы должны учитывать целевую платформу, чтобы использовать подходящий размер текстуры. Например, если вы ориентируетесь на мобильные устройства, вы можете установить размер текстурного атласа Spine как 1024×1024.

Spine_TexturePacker

Прикрепления

skeleton_attachment_get()

skeleton_attachment_set(slotname, imagename)

skeleton_attachment_create(imagename, sprite, ind, xo, yo, xs, ys, rot);

Как упоминалось ранее, вы можете “прикрепить” (зафиксировать) изображения к скелетной анимации спрайта, и они будут вести себя так, как будто являются частью структуры костей в этой анимации. Для этого используются данные функции – просто задав имя слота и имя вложения для него (в соответствии с тем, как это задано в Spine). Также у вас есть возможность использовать один из спрайтов, используемый в вашей игре – либо как часть основных ресурсов, либо как подключаемый файл, что даёт этим спрайтам еще более гибкие возможности для игр.

Отображение

skeleton_collision_draw_set(flag)

draw_skeleton_collision(sprite, animname, image_index, x, y, xscale, yscale, rot, colour)

draw_skeleton(sprite, animname, skinname, image_index, x, y, xscale, yscale, rot, colour, alpha)

Обычно для рисования спрайта со скелетной анимацией используется функция draw_sprite, но бывают случаи, когда вы можете захотеть рисовать какие-то дополнительные вещи, либо только один кадр анимации (например, для экрана паузы, специального эффекта и т.д). Почему были добавлены эти функции. Первая из них просто задаёт, нужно ли отображать данные столкновения или нет. Если флаг установлен в true, то вы увидите ограничивающий прямоугольник и точную маску, нарисованную на спрайт, на экране (эти данные задаются при создании спрайта в Spine). Вторая функция при этом позволяет вам рисовать данные столкновения для отдельного кадра любой анимации.

Spine_Masks

Заключение

Исходя из написанного выше, вы можете понять, что скелетная анимация – это невероятно мощный инструмент. Это позволяет получить естественные анимации с минимальными усилиями, и (спасибо функции смешивания) эти анимации плавно перетекают друг в друга, чтобы пользователи получали только положительный опыт в ваших играх. Функции скинов и фиксации, доступные в GameMaker: Studio также означают, что вы можете упростить создание нескольких спрайтов из одного источника, и также позволяют игроку настроить их прямо во время выполнения игры. Очевидно, что это система не применима ко всем играм, но если вы проверите веб-сайт Spine и демо, вы увидите, что это на удивление универсально и определённо стоит времени и усилий, необходимые на создание спрайта и его импорта в GameMaker: Studio.

GameMaker: Studio Early Acces 1.99.97

Изменения относительно версии 1.3.1307 на бета-канале

Изменения в Application Surface

  • ВНИМАНИЕ: Мы изменили слой GUI таким образом, чтобы он изначально был привязан к application surface. Проекты из 1.2 скорее всего будут отображаться так, как вы и ожидаете, но проекты, исправленные в 1.3/EA для изменения положения текста GUI и т.д., возможно, теперь придётся изменить снова.
  • Если вы уже исправляли свой проект для 1.3 и хотите, чтобы он работал как в 1.2, то display_set_gui_size() может задать размер application_surface.
  • display_set_gui_maximise() заставит вашу игру продолжать работать так, как работали проекты 1.3 до настоящего момента.
  • Используя display_set_gui_maximise() вы также можете ввести и смещение и масштабирование, которое может быть применено в событии pre-draw для перемещения пользовательского интерфейса, скрытия того, что за пределами экрана и т.д.

Изменения в IDE

  • Теперь все окна можно сделать плавающими и вынести за пределы IDE. Настройка была поменяна с “выносить окна с кодом” на “выносить окна”.
    • Во время работы GM, каждый открытый ресурс запомнит своё расположение и размер при закрытии. Однако выключение GM сохранит только последние 10 окон (на данный момент).
    • В данный момент возможно некоторое мерцание при открытии и закрытии окон редактора.
    • Сейчас установлено ограничение на 64 окна, открытых одновременно. При попытке открыть больше окон, появится предупреждение.
  • Скрипты теперь могут содержать несколько вкладок в одном окне. Это секции одного и того же скрипта, а не разных скриптов в одном окне.
  • Также можно поставить закладки, чтобы перескочить в нужную позицию с помощью клавиатуры. Ctrl+shift+цифра для установки и Ctrl+цифра для перехода.
    • Открытие этого скрипта в других версиях GM покажет строки #define. Смотрите этот FAQ чтобы всё правильно исправить.
    • Эти два изменения сделаны только для скриптов – не для кода в объектах. Возможно, что поддержка этого добавится в будущих версиях.
  • Список очередности создания экземпляров в редакторе комнат теперь содержит имя ресурса, подсвечивает этот экземпляр в комнате и позволяет переименовать, удалить, изменить и задать код создания.
  • В редакторе комнат, во вкладке View добавлена опция отключения очистки фона, которая может быть использована для повышения производительности – специально для замедления на Андроид.
    • Если вы используете сохранение соотношения сторон в своей игре, вы, вероятно, не хотите отключать очистку буфера дисплея.
    • Существующая опция выключения заполнения фона цветом также все еще эффективна в повышении производительности.
  • Было добавлено и восстановлено много подсказок, особенно в глобальных настройках проекта.
    • С включенной опцией “pop out windows” только окно новостей не должно быть максимизировано. С выключенной опцией максимизация окон будет всё ещё ломаться.
  • Поиск и замена во всех скриптах/вкладках.

Изменения в отладчике

  • Был добавлен профилировщик, поэтому вы можете увидеть “узкие места” в своём проекте. Можно смотреть ваш GML и вызовы движка. Смотрите этот блог для получения более подробной информации.

Новый движок физики – LiquidFun

  • Теперь используется LiquidFun, поэтому добавилась физика элементарных частиц и расчет жидкостей.
  • Пожалуйста, изучите документацию, так как было добавлено много новых функций physics_…() и есть некоторые едва различимые изменения всей функциональности физики.
  • Если ваш проект использует физику, пожалуйста, очень тщательно проверьте его!

Много изменений в базовой функциональности HTML5

  • В HTML5 была серия довольно значительных изменений, поэтому пожалуйста, тщательно проверьте свою игру.
  • В этой EA версии также присутствуют исправления производительности из Helpdesk pre-release v1312.

Изменения в расширениях и провайдерах рекламы

  • iOS и Android теперь используют расширения для всех провайдеров рекламы – экраны в глобальных настройках скоро будут удалены. Функция ads_enable() ничего не делает.
  • Мы предоставляем небольшой демо-пример для каждого провайдера рекламы в новом канале Demo. Скачайте пример, посмотрите, как это работает и после экспортируйте .gmez в свой собственный проект.
    • Прямо сейчас представлена только основная функциональность – их SDK, возможно, содержит больше возможностей, но вам придётся добавить функции самостоятельно.
  • Добавлено больше платформ. Читайте этот блог для получения более подробной информации.
  • Файлы-заготовки и папки будут добавлены для вас при создании нового файла, либо через опцию меню “Add Placeholder”, доступному по правой кнопке мыши.
  • В добавлена опция разрешения сохранения на ваш Mac дополнительных типов и дополнительного кода.
  • Аналитика еще не была сделана в новой системе и всё ещё не функциональна на iOS.
  • Если вы не делаете Android/iOS, все остаётся как прежде – вы не должны использовать новые расширения для своей рекламы.

Разное

  • Производительность сурфейсов на Андроид была значительно улучшена, но вы всегда должны об размере создаваемого вами сурфейса и сохранять его в разумных пределах.
    • Событие pre-draw всё ещё ухудшает производительность, но не настолько сильно, как прежде. Там, где возможно, переместите код в события draw/post-draw для улучшения производительности.
  • Если в вашем коде встретится ошибка из-за использования в сравнении noone, в качестве недопустимого типа, то появится диалог ошибки вместо молчаливого игнорирования.
  • show_debug_message() теперь незаметно преобразует ваши числа в строку, подобно тому, как всегда делала show_message().

Совсем скоро в GameMaker: Studio появится возможность заниматься профилированием написанного кода. Разработчики опубликовали пост об этом в соответствующем блоге. Теперь есть возможность выявить слабые места в производительности своей игры и более целенаправленно заниматься оптимизацией.