Work in progress.
Эффект аккордеона для GMS
Скрипт для GameMaker: Studio, отображающий картинку с эффектом аккордеона.
- использует функции 3d, поэтому отображается в перспективной проекции
- пример использует сурфейс для отображения
draw_accordion(x, y, full_width, current_width, full_height, number_of_segments, delta_of_height, shadow_value, image);
Пример (.exe) можно скачать здесь
GameMaker: Studio 1.4.1598
Внимание! Это очень большое обновление, поэтому, пожалуйста, внимательно прочтите весь список изменений!
Список изменений:
Учётная запись YoYo
- Восстановите информацию о своей GM лицензии, войдя в свою учётную запись, привязанную к вашему ключу (опционально)
- Это также означает, что пользователи Steam могут использовать свои лицензии с автономным установщиком
- Подключайтесь к Marketplace и Player используя один процесс входа
- Подробности смотрите в этих FAQ
Лицензирование/обновление
- Если GM обнаружит недостающие папки модуля, будет предложено исправить пропущенные загрузки
- Теперь есть возможность повторно лицензировать и перезапустить Студию, но кнопки Run/Create для этого модуля будут отключены, если было выбрано “позже”
- Это также касается SVN и других инструментов, также предоставленных в модуле Pro. Поэтому, если вы получили предупреждение, советуем исправить ситуацию как можно скорее!
IDE
- Несколько исправлений и изменений в системе состояний сохранения проекта – когда что-то было изменено и т.п. Пожалуйста, СДЕЛАЙТЕ бэкап!
- IDE теперь может адресовать до 4ГБ ОЗУ на Windows 64bit
- Исправление “Backup on save”
- Исправление ошибок “invalid file name %s” (обычно появляющихся при лицензировании Студии, либо при экспорте в .gmz)
- Исправление лицензирования с вкладкой GGS > Extras
- Удалена нежелательная проверка на одинаковые макросы
- Уменьшено потребление памяти и улучшена перерисовка фонов и тайлов в редакторе путей
- Отмена в редакторе кода стала более аккуратной
- Esc всегда закрывает окно автозавершения кода, если оно открыто (игнорируя любые пользовательские настройки горячих клавиш)
- Скрипты с несколькими вкладками снова должным образом помечают проект изменённым, если вы их удаляете
- Закрытие формы скрипта при переименовании вкладки теперь не изменяет название “основного” скрипта
- Теперь веб-сервер выполняет поиск имени, если обнаружено что-то отличное от допустимого IP4 адреса
- Исправление запуска на Windows XP для пользователей Steam
- Исправление “падения” при завершении работы, замеченного некоторыми пользователями
- Исправление потенциально возможной проблемы лицензирования если имя пользователя или название временной директории содержит отличные от ANSI символы
- Исправление “падения” при попытке импортирования GMK файла
- Исправление ошибки “index out of bounds” при автообновлении пользовательских активов из Marketplace, при запуске
- Теперь доступна портретная ориентация splash изображений в GGS > iOS
- Устранена проблема, когда удаление шейдера не уменьшало счётчик перед запуском игры, что приводило к проблемам на некоторых Андроид устройствах
- Редактору изображений установлен более подходящий лимит ОЗУ для его очереди отмены, что должно предотвратить ошибки нехватки памяти
- Исправлена проблема, когда некоторые нажатия клавиш отправлялись в отладчик вместо игры
- Сниппеты теперь находятся в папке %localappdata% и не будут уничтожаться при обновлении Студии
- Теперь, если в макросах есть пропущенные значения или имена, будет сообщение об ошибке во время сборки
- Теперь при импортировании спрайта из Spine, центр всегда помещается в середину изображения и не может меняться в окне свойств спрайта
- Теперь для спрайтов Spine в окне свойств предпросмотр отображается гораздо качественнее
- Исправлено открытие внешнего редактора изображений из контекстного меню, вызываемого правой кнопкой мыши в дереве ресурсов
- Сделано определение и блокирование пустого спрайта, передаваемого во внешний редактор изображений
- Шейдеры теперь проверяются на совпадение имён, так же, как и другие ресурсы
- Перетаскивание файлов шейдера в IDE теперь корректно добавляет их в шейдеры, а не в Included Files
- “Open in Explorer” на шейдере теперь подсвечивает нужный файл
- Добавлена настройка для открытия внешнего проигрывателя звуков. Если не заполнено, то используется внутренний проигрыватель
- Добавлена настройка для скрытия элементов управления фильтрации дерева ресурсов
- Добавлена настройка для постоянной фильтрации дерева ресурсов по выбранному текущему ресурсу, вместо необходимости вводить его имя в поле поиска
- Добавлена настройка для указания продолжительности показа всплывающих подсказок
- Подпапки в дереве ресурсов теперь не будут сворачиваться при наведении
- Дерево ресурсов будет сдвигаться вверх/вниз при перетягивании в верхнюю или нижнюю часть панели
- Теперь можно перетаскивать спрайты/объекты из дерева ресурсов в подходящие области окна свойств объекта, чтобы установить спрайт, маску, родителя или потомка
- Выпадающий список текстурных групп в настройках шрифтов, спрайтов и фонов, теперь отсортирован. Также можно начать печатать, чтобы найти группу
- Поиск в скриптах теперь может быть запущен по выбранному слову или функции нажатием Shift+MMB, либо Shift+F12
- Поиск в скриптах теперь может включать DND действия (“кнопки”) и макросы в поиске
- Поиск в скриптах теперь также подсвечивает устаревшие события trigger и любые неизвестные события
- Теперь скрипт, указанный в действии Execute Script можно открыть нажатием средней кнопки мыши. Также добавлена кнопка “Edit” в форму свойств
- Исправлена возможность открыть дважды одно и то же действие из разных объектов
- Домашняя папка (“Home folder”)
- Добавлена новая настройка для указания вашей предпочтительной (“домашней”) директории, где будут создаваться ваши проекты
- Добавлена новая кнопка в окно File > New/Import/Demos/Tutorials, при нажатии которой путь проекта будет установлен в домашней директории
- Устаревшие расширения
- Убраны устаревшие элементы интерфейса для установки расширений, добавления их в проект и т.п.
- Обратите внимание, что довольно долго вы могли перетаскивать .gex или использовать правую кнопку мыши и добавить в расширения, так же, как и .gmez
- Эта система будет использоваться в будущем
- Редактор комнат
- Теперь у каждой комнаты свой собственный список очерёдности создания экземпляров
- В области отображения свойств значения X/Y экземпляров и тайлов стали редактируемыми
- Мы также изменили местоположение этих значений и сделали поле предварительного просмотра немного больше
- Клавиши со стрелками теперь можно использовать для точного перемещения экземпляров на 1 пиксель, 5 пикселей (ctrl) и 10 пикселей (shift)
- Ctrl+Shift+стрелки будет перемещать экземпляр на следующую позицию в сетке
- Теперь можно открыть одновременно несколько окон с кодом создания экземпляра
- Объекты размером 1 пиксель теперь не будут блокировать редактор комнат
- Исправлены проблемы с окном очерёдности создания экземпляров
- Поиск следующего или предыдущего экземпляра приводил к ошибочному множественному выделению
- Добавлена возможность открытия кода создания экземпляра двойным кликом по экземпляру
- Добавлены настраиваемая горячая клавиша для перемещения фокуса в поле поиска (Ctrl+F по умолчанию, задаётся в Key Bindings)
- Добавлена возможность использования Enter в поле поиска для перехода к следующему результату и Shift+Enter к предыдущему
- Разрешено открытие кода создания комнаты и кода создания экземпляра непосредственно из окна поиска
- Редактор изображений
- Добавлена поддержка стрелок на клавиатуре для перемещения выбранной области. Обратите внимание, что сначала нужно нажать на выбранную область, чтобы активировать возможность перемещения стрелками
- Enter теперь “подтверждает” множество действий – например, начало новой секции при использовании инструментов рисования фигур и линий
- Функция “Crop” в меню теперь переименована в более точное “Trim”
- Теперь также можно использовать Shift + Left Click для редактирования пользовательской палитры, если у вас нет средней кнопки мыши
- В меню редактора изображений добавлена опция переключения на дополнительное изображение – “черновик” (scratch pad)
- Help > “Required SDKs”
- Новый пункт меню, который содержит ссылку на FAQ, в котором находится список требуемых/рекомендуемых SDK
- Пожалуйста, проверяйте этот FAQ перед обновлением внешних SDK или инструментов (одни из самых частых вопросов касаются Spine, Xcode и Android NDK)
- Добавлена система ссылок для ресурсов
- Объекты, скрипты и таймлайны теперь устанавливают ссылки друг на друга при подключении (родительские объекты/потомки или вызовы скриптов/таймлайнов объектом)
- Должны исчезнуть проблемы с переименованными объектами, становящимися осиротевшими родителями или потомками
- В контекстное меню дерева ресурсов добавлена опция “Check Resources”, которая покажет связанные с выбранным элементом ресурсы
- Дополнительное предупреждение при удалении ресурса, используемого другим ресурсом
- Изменение экспорта GMZ
- Если вы не меняли изначальные конфигурационные файлы, тогда они не будут добавлены в .gmz архив, что уменьшает размер файла
- ПРИМЕЧАНИЕ: прямо сейчас мы рекомендуем вдоль и поперёк проверить ваши .gmz и в случае любых проблем сообщить об этом в техподдержку, добавив туда zip архив своего проекта и gmz
- Контроль версий
- Отключено автоматическое сохранение при создании ресурса, если используется система контроля версий – сделайте коммит, либо сохраните самостоятельно!
- Исправлена проблема с созданием нового проекта в существующем репозитории, когда проект не проверялся должным образом
- Увеличена скорость обновления статуса SCM
- Все команды теперь запускаются с флагом non-interactive, чтобы исключить любые остановки и запросы подтверждения
- Добавлена система ожидания для определения ситуации, когда вы не добавили файлы перед коммитом
- Добавлена возможность улавливания конфликтов в “невидимых” файлах проекта (например, изображения спрайтов)
- Обновление CommitLog, чтобы происходил анализ обновлений статуса вместо обработки имени каждого файла, который будет найден
- Исправлены проблемы, когда обновление SCM приводило к ошибке в IDE из-за пересозданных нод, так как SCM всё ещё помнила старые ноды
- Исправлена проблема, когда коммит происходил некорректно и GM “зацикливалась”, пытаясь передать изменённые файлы
- Исправлены проблемы, когда было возможно добавить конфликтующие файлы
- Исправлена проблема, когда полный откат конфликтного состояния не сбрасывал флаг конфликта
- Исправлена проблема, когда неверно присваивались иконки неверсионным файлам со статусом conflicted/resolved
- Исправлена проблема замены иконки – значок добавляется, а не удаляется
- Исправлено окно статуса, которое не обновлялось так, как надо и мигало
- Добавлена возможность откатить изменения используя SCM_History
- Исправлен импорт проектов git/Mercurial в репозиторий. ПРИМЕЧАНИЕ: имя пользователя и пароль в Preferences – Source Control должны быть корректными!
Новая SWF система
- Используется новая сторонняя система событий SWF. Делайте тщательное тестирование, если используете SWF и, пожалуйста, сообщайте о любых проблемах!
- Оптимизации для улучшения производительности
Поддержка Spine обновлена до версии 2.1.08 (Github репозиторий)
- Исправлена проблема с переворачиванием основной кости в конце скелета. Обратите внимание, что проблема с зеркальным отражением кости относится к самому Spine
- Исправлены различные проблемы с JS платформами
- Теперь меши работают в HTML5
- MeshAttachments теперь считаются как часть ограничивающего прямоугольника скелета
Steamworks SDK v1.33a
- Поддержка недавней версии 1.33a SDK (у вас она также должна быть установлена!)
- Расширены асинхронные события для событий Steam UGC, чтобы возвращать большее количество информации
- Исправлена проблема с белыми списками контента
Windows
- В настройках проекта снова включена опция для показа вашего загрузочного изображения, если вы являетесь Pro-пользователем
- ПРИМЕЧАНИЕ: это полезно только для очень больших игр, так как оно не останавливает игру
Ubuntu
- Добавлена новая платформа – Ubuntu YYC. Пожалуйста, проводите тщательное тестирование!
- Добавлен новый формат .deb (формат пакетов Debian), доступный в выпадающем меню окна создания exe
Mac OSX
- Восстановлена поддержка геймпадов для Mac (только для сборки не для AppStore)
- ПРИМЕЧАНИЕ: это значит, что опцию GGS > Mac OSX > AppStore > “Build for Mac AppStore” нужно отключить, чтобы поддержку любого геймпада
- Добавлена функциональность directory_destroy
- Добавлена функциональность window_get_visible_rects
- Исправлено позиционирование и изменение размера окна на многомониторных системах
- Исправлены события колёсика мыши
- Существующие экземпляры игры теперь выключаются при отправке на Мак новой сборки
- Для сборки YYC теперь не требуется подписывать код, если он не для AppStore
Android
- Поддержка NDK обновлена до 10d. Версии 10c и ниже больше не поддерживаются, так как в 10d сделаны несовместимые изменения
- ПРИМЕЧАНИЕ: вам необходимо установить версию 10d и указать её в настройках File > Preferences > Android
- Поддержка SDK обновлена для использования новых инструментов сборки версии 22.0.1
- ПРИМЕЧАНИЕ: для этого пришлось отключить поддержку геймпадов Moga до выпуска следующей EA версии
- Увеличено максимальное число обнаруживаемых идентификаторов геймпадов, поддерживаемых библиотекой, что должно остановить “падения” игры
- Несколько встроенных событий для прикосновений и движения теперь могут использоваться расширениями
- Теперь в случае ошибки компиляции ресурсов, сборка прерывается, подобно другим платформам
- Добавлена поддержка портретной ориентации загрузочных изображений (наряду с давно существующей альбомной ориентацией)
- Для этого была переработана вкладка настроек загрузочных экранов игры
iOS
- Исправление падений 64-битных расширений, которые могли происходить при запуске или переключении фокуса на приложение
- Исправлена распаковка нескольких архивов, являющихся частью одного расширения
- Добавлена поддержка портретной ориентации загрузочных изображений (наряду с давно существующей альбомной ориентацией)
- Для этого была переработана вкладка настроек загрузочных экранов игры
- Новая галочка в настройках игры для поддержки уменьшенных вдвое текстур для iPad 1
- Исправлена проблема с очень низким уровнем звука на iOS 8.3 в последних EA версиях
Application Oven
- Убраны избыточные функции из пользовательского интерфейса (в любом случае, вам никогда не потребуется открывать Application Oven!)
- Исправлено возвращение неверных данных об сертификатах и профилях в настройках игры
Примеры/Уроки – рекламные расширения
- Все расширения для рекламы были обновлены, чтобы они работали с iOS8 и поддерживали 64 бита, но вам потребуется эта версия GMS, чтобы использовать их
- То же самое относится к двум провайдерам аналитики
- Пожалуйста, обратите внимание, что множество других примеров и уроков также были обновлены и многие из них были переименованы (не содержат пробелы), поэтому их потребуется скачивать заново
Различные внутриигровые изменения
- Перезапуск игры с помощью DND действий или GML кода теперь затирает большее количество значений объектов, делая перезапуск более похожим на первый запуск
- Исправлен вывод звука 7.1 на платформах, поддерживающих его
- Расширенная поддержка микрофона на Win 8 N, WP8, iOS и Android
- Игры под Windows стали лучше обрабатывать события ухода/возвращения мыши в окно
- HTML5 игры теперь поддерживают клавиши + и – рядом с backspace (на нумпаде уже были поддержаны)
- HTML5 игры в iFrames теперь полностью перехватывают клавиши со стрелками и пробел, поэтому страница не будет сдвигаться
- Исправлено некорректное восстановление звука после потери фокуса на Андроид
- Исправлены неверные данные ключей в информации об покупке/продукте некоторых внутриигровых покупок
- Исправлено падение игры, когда шрифт не видел свою текстурную страницу
- Исправление сравнений с неопределёнными значениями
- Были некоторые утечки памяти – если вы используете частицы, то хорошо тестируйте!
- Добавлена функция gml_pragma() для передачи команд оптимизации компилятору ресурсов
- Добавлена функция network_create_socket_ext() для winsock платформ
- Расширена os_get_info(), в которую добавлена информация об спецификации GPU (Windows/Mac/Ubuntu)
- Исправлена функция asset_get_index(), чтобы она также работала и с шейдерами
- draw_text_ext() теперь всегда делает перенос на заданной ширине, а не на следующем за ней пробеле
- Отладочные диалоги show_question(), get_integet() и get_string() будут изменять размер, подстраиваясь под текст
- Добавлена функция vertex_format_delete()
- Для платформ Windows и PS4 добавлена функция buffer_set_surface()
- Расширена функция sprite_get_uvs(), которая теперь также возвращает отступы обрезки и масштабирование
- Добавлена функция steam_current_game_language()
- Добавлена функция steam_available_languages()
- string_width() и string_height() теперь проверяют, чтобы переданное значение было строкой и будут выдавать ошибку, если передано что-то другое
- network_send_broadcast() теперь требуется клиентский UDP сокет, созданный с помощью network_create_socket_ext(), чтобы получить какие-нибудь сигналы (смотрите руководство)
- Исправление для функции place_meeting() и события столкновения, чтобы привести их в соответствие друг другу после предыдущего исправления функции place_meeting() в версии 1.4.1567
- Добавлена функция math_get_epsilon()
- Добавлена функция string_ord_at()
- Исправления для path_start()
- Исправлена ошибка, когда функция surface_copy() возвращала перевёрнутое изображение на OpenGL платформах
- Исправлена ошибка, обычно возникающая при использовании структуры данных, возвращаемой функцией iap_product_details()
Скачать GameMaker: Studio 1.4.1598 можно здесь
DFormat – форматирование D кода в Sublime Text
Сделал интеграцию dfmt (утилита для форматирования кода языка D) с Sublime Text. Установить можно из Package Control.
Небольшие полезные скрипты для GameMaker: Studio
Скачать в Marketplace (бесплатно)
Список:
- Одномерные массивы
- array_create(value, …)
- array_create_from_string(separator, is_real, string)
- array_to_string(separator, pure, array)
- array_sort(array, ascend, change_source)
- Конвертирование
- convert_dec_to_hex(value, [digits])
- convert_hex_to_dec(value)
- convert_dec_to_bin(value, [digits])
- convert_bin_to_dec(value)
- convert_range(from_range, to_range, pos)
- convert_gm_color_to_hex(color)
- Отладка / Строки
- log(val[, val2, val3…])
- string_build(val[, val2, val3…])
- string_build_comma(val[, val2, val3…])
- Разное
- draw_set_colour_reverse(colour)
Одномерные массивы
array_create(value, …)
Создание массива (не более 16 элементов)
res = array_create(10, 20, 30) -> res[0] = 10, res[1] = 20, res[2] = 30 res = array_create("A", "B", "C") -> res[0] = "A", res[1] = "B", res[2] = "C"
array_create_from_string(separator, is_real, string)
Создание массива из строки
res = array_create_from_string(",", false, "10,20,30") -> res[0] = "10", res[1] = "20", res[1] = "30" res = array_create_from_string(",", true, "10,20,30") -> res[0] = 10, res[1] = 20, res[1] = 30 res = array_create_from_string(";", false, "A;B;C") -> res[0] = "A", res[1] = "B", res[1] = "C"
array_to_string(separator, pure, array)
Преобразование массива в строку
data[0] = "Array"; data[1] = "To"; data[2] = "String"; array_to_string(";", true, data) -> "Array;To;String" array_to_string(";", false, data) -> "{ Array; To; String }" array_to_string(",", false, data) -> "{ Array, To, String }"
array_sort(array, ascend, change_source)
Сортировка массива
Конвертирование
convert_dec_to_hex(value, [digits])
Получение шестнадцатеричного представления числа
convert_dec_to_hex(123456, 6) -> "01E240" convert_dec_to_hex($ff00ff, 8) -> "00FF00FF"
convert_hex_to_dec(value)
Получение десятичного числа из шестнадцатеричного представления
convert_hex_to_dec("1E240") -> 123456 convert_hex_to_dec("FF00FF") -> 16711935
convert_dec_to_bin(value, [digits])
Получение двоичного представления числа
convert_dec_to_bin(4504) -> "1000110011000" convert_dec_to_bin(65535) -> "1111111111111111"
convert_bin_to_dec(value)
Получение десятичного числа из двоичного представления
convert_bin_to_dec("1000110011000") -> 4504 convert_bin_to_dec("1111111111111111") -> 65535
convert_range(from_range, to_range, pos)
Преобразование числа из одного диапазона в другой диапазон
convert_range(1000, 1, 500) -> 0.5 (из 0..1000 в 0..1)
convert_gm_color_to_hex(color)
Получение шестнадцатеричного представления вида RRGGBB из цвета GMS (BBGGRR)
convert_gm_color_to_hex(c_red) -> "FF0000" convert_gm_color_to_hex(c_green) -> "008000" convert_gm_color_to_hex(c_blue) -> "0000FF" convert_gm_color_to_hex($0000ff) -> "FF0000"
Отладка / строки
log(val[, val2, val3…])
Печать данных в отладочную консоль (то есть, в compile form).
log("Width: ", 10, ", Height: ", 20) -> "Width: 10, Height: 20" log("View x: ", view_xview[0], ", y: ", view_yview[0]) -> "View x: 0, y: 0"
string_build(val[, val2, val3…])
Объединение данных в строку
string_build("Count: ", 100) -> "Count: 100" string_build("Count: ", 100, ", index: ", 5) -> "Count: 100, index: 5"
string_build_comma(val[, val2, val3…])
Объединение данных в строку с перечислением их через запятую
string_build_comma(100, 10, 25, 30) -> "100, 10, 25, 30" "View: " + string_build_comma(view_xview[0], view_yview[0]) -> "View: 0, 0"
Разное
draw_set_colour_reverse(colour)
Задать цвет рисования, используя нормальное RRGGBB (то есть, не перевёрнутое) значение
draw_set_colour_reverse($ff0000) -> то же самое, что with draw_set_colour($0000ff) // c_red draw_set_colour_reverse($00ff00) -> draw_set_colour($00ff00) // c_lime draw_set_colour_reverse($0000ff) -> draw_set_colour($ff0000) // c_blue
Что нового в GameMaker: Studio 1.4?
Оригинал: What’s New In GameMaker: Studio 1.4? (Mark Alexander, 28 ноября 2014)
Перевод: Dmi7ry
На этой неделе вышло большое обновление GameMaker: Studio. Это обновление добавляет множество новых возможностей и, хотя все изменения перечислены в Release Notes, они не дают полной картины и кому-то могут показаться неоднозначными. Поэтому в данной статье мы хотим рассмотреть, что изменилось, что появилось нового и приведём ссылки на некоторые из предыдущих статей в техническом блоге, которые рассматривают эти функции более подробно.
Новый установщик
Первое, что вы заметите при обновлении до 1.4 – то, что изменился процесс установки. Из-за большого числа модулей, доступных для GameMaker: Studio, размер файла стал раздуваться, поэтому новый установщик содержит только ядро GameMaker: Studio, а все модули, на которые у вас есть лицензия, будут скачаны при установке. Из-за этого изменения у некоторых людей могут возникнуть проблемы с неправильно загруженными модулями или с компилятором. Если вам не повезло и у вас что-то не работает, попробуйте следующее:
- Если GameMaker: Studio работает, но у вас есть проблемы с модулями или файлами, откройте меню Help и нажмите Update License. Снова введите свою лицензию и перезапустите GameMaker – пропущенные файлы должны будут загрузиться.
- Если у вас возникли проблемы с использованием утилиты обновления, например, “застревание” при загрузке или при неправильной установке, тогда вы можете скачать автономный установщик по следующей ссылке: GMStudio-Installer-1.4.1474.exe
- Если ничего не помогло, вы можете деинсталлировать GameMaker: Studio и удалить все его файлы из папок %appdata% и %localappdata% (убедитесь, что создали резервную копию всех важных, например, Android Keystore), после чего перезагрузите компьютер и установите GameMaker: Studio из указанной выше ссылки.
Если у вас какие-то другие проблемы, пожалуйста, обратитесь в службу технической поддержки: http://help.yoyogames.com
Новые модули и YYC
Существенным изменением в модулях стало введение полной поддержки консолей PS4, PS3, PSVita и Xbox One, а также поддержка YYC для Windows Phone и Windows 8. Также теперь YYC идёт в комплекте со всеми модулями для пользователей Pro и выше, поэтому, если у вас есть, например, модуль Android, то у вас также будет доступен Android (YYC) (возможно, что потребуется обновить лицензию через меню Help, чтобы получить модуль). Обратите внимание, что для экспорта на консоли, вы должны быть зарегистрированным разработчиком Sony или иметь лицензию Xbox-разработчика Microsoft, и после вам нужно будет связаться с YoYo Games.
GameMaker: Player и GameMaker: Marketplace
Обновление 1.4 даёт всем пользователям доступ к GameMaker: Player и GameMaker: Marketplace. Marketplace существует не так давно и первую запись об нём мы сделали в июле. Тем не менее, он значительно вырос с тех пор и стал важнейшим ресурсом для многих разработчиков – и как источник новых инструментов и ресурсов для игр, и как источник дохода. Регистрация проста и с аккаунтом разработчика вы сможете продавать свои ассеты, если хотите, а в базе знаний по GameMaker: Marketplace есть подробные статьи о том, как всё установить и как использовать приобретённые вами вещи.
GameMaker: Player был запущен совсем недавно и пока находится в стадии бета-тестирования, но мы надеемся, что он станет витриной для всех лучших игр, созданных в GameMaker. Player – это игровой сервис, в котором можно играть в игры, которые были загружены вами или другими пользователями GameMaker: Studio, а также покупать и продавать их. Это независимое приложение, которое поставляется вместе с GameMaker: Studio и устанавливается вместе с обновлением 1.4, либо его можно скачать напрямую со страницы YoYo Games. Это значит, что вы не должны быть разработчиком, чтобы наслаждаться играми и мы призываем вас приглашать своих друзей, потому что каждый может поделиться доступными названиями. В настоящее время любой может загрузить игры в Player, но есть ряд правил и рекомендаций, а также руководство по стилю, которым необходимо следовать. Всю информацию о том, как использовать Player, а так же о том, как покупать и продавать загруженные игры, вы можете найти в базе знаний по GameMaker: Player.
Улучшенные функции аудио
Имеются некоторые очень важные изменения, сделанные в аудио системе GameMaker: Studio. Первое – функции для работы с музыкой (вроде audio_play_music()) стали устаревшими и теперь работа с любыми звуковыми файлами делается одинаково. В ваших проектах, эти функции могут очень легко быть заменены их эквивалентами, а при попытке использовать их, будет ошибка.
Второе изменение заключается в добавлении аудио групп в IDE и GML-функций для работы с ними. Подобно спрайтам и текстурным страницам, ваши аудио ресурсы теперь могут быть сгруппированы в IDE и загружаться в память только при необходимости (и выгружаться позже, когда они больше не нужны). Вы также можете управлять громкостью целой группы, что, позволит гораздо проще сделать затухание звуков, например, на экране паузы игры, или при её окончании.
Эти аудио группы также привязаны к системе конфигураций, что означает возможность создавать различные группы для различных конфигураций и целевых платформ. Стоит отметить, что сами звуковые ресурсы не привязаны к конфигурациям – они привязываются только к одной выбранной группе, независимо от конфигурации.
Следующим важным дополнением является возможность использования аудио буферов для хранения звука, полученного из внешнего файла или из источника записи, и их воспроизведения в своей игре. Мы уже рассказывали, как записывать аудио в техническом блоге Recording and Streaming Audio и вы можете использовать новую функцию audio_create_buffer_sound() для создания идентификатора звука, чтобы играть буферизированный звук в своих играх.
Улучшенные возможности IDE
Список новых возможностей IDE достаточно большой и многие их них уже рассматривались в Release Notes, но есть такие, о которых стоит упомянуть более подробно.
В первую очередь, это возможность переназначать большую часть горячих клавиш, которые используются в GameMaker: Studio. Это довольно большое дополнение и мы ещё в сентябре написали статью об этом в техническом блоге: Key Bindings
Другим важным изменением стало внедрение системы контроля версий в IDE. Старая система была полностью переработана и была добавлена поддержка Git и Mercurial, как и возможность использовать другие решения и создание пользовательских конфигураций системы контроля версий. Всё об этом вы можете прочитать в нашей статье Source Control Management в базе знаний.
Также были обновлены расширения: добавлена поддержка Windows 8 и Windows Phone, а также IDE теперь позволяет вам добавлять proxy-файлы, благодаря чему можно поставить несколько версий расширения для различных платформ. Ещё была введена поддержка переменных аргументов для вызовов расширений (вы можете проверить чек-бокс в функции расширения).
Также вы должны знать, что аналитика для Android и iOS была удалена из IDE и теперь доступна в виде расширений, подобно тому, как произошло с рекламными расширениями при выпуске версии 1.3. Вы можете загрузить эти расширения из ленты Demo при запуске GameMaker: Studio.
И, наконец, стоит также упомянуть, что в редакторе комнат теперь есть галочка, чтобы спрятать все слои тайлов, кроме выбранного. Это должно облегчить работу с тайлами на сложных картах.
Важные изменения в коде
Среди всех более мелких изменений в 1.4, есть два, о которых стоит упомянуть дополнительно, так как они могут нарушить работоспособность игры у некоторых пользователей.
В предыдущих версиях GameMaker: Studio была ошибка, из-за которой ссылка на не существующий экземпляр, при использовании доступа через точку <instance>.<var>, обрабатывалась молча, без сообщения об ошибке, хотя экземпляра на самом деле не существует. Это поведение не является корректным, но, к сожалению, многие пользователи стали полагаться на него в своих играх, из-за чего в этих проектах могут появиться ошибки вроде “Unable to find any instance for object index” (невозможно найти экземпляр указанного объекта) при запуске после обновления Студии. В большинстве случаев, достаточно будет просто добавить проверку instance_exists(), чтобы решить проблему.
Второе изменение заключается в введении возвращаемого типа <undefined> (“не определено”). Он будет возвращен, если структура данных не может найти требуемую ячейку или значение, вместо ранее используемого 0. Таким образом, при вызове, например, ds_map_find_value(), будет возращено <undefined>, а не 0, если данный ключ не существует. Для проверки этого значения есть функция is_undefined();
Ниже идёт простой пример, показывающий, как теперь нужно делать проверку
var val = ds_map_find_value(game_map, "score"); if (is_undefined(val)) { ds_map_add(game_map, "score", 0); val = 0; }
И ещё больше…
Если вышеупомянутых особенностей недостаточно, это обновление добавляет множество других дополнительных возможностей и мы не будем подробно останавливаться на них, так как в значительной степени они рассказывают сами за себя:
- Поддержка iOS 8 и поддержка iPhone 6 и 6+
- Физика частиц через Liquid fun (мы рассказывали об этом в техническом блоге здесь)
- Теперь можно использовать sprite_add() для загрузки файлов в формате *.gif и *.jpg/jpeg
- Было обновлено SDK для Facebook в соответствии с новыми правилами по линковке SDK с играми
- Редактор шрифтов теперь содержит возможность отображения шрифтов с высоким качеством (галочка “High Quality”), чтобы получить более чёткие шрифты (может вызывать небольшое снижение производительности)
- Новые функции для получения информации о вершинных буферах и для манипуляций ими
Как вы можете видеть, на всех уровнях было добавлено очень многое и это довольно крупное обновление GameMaker: Studio. Мы надеемся, что переход от версии 1.3 на 1.4 будет гладким, но если у вас возникнут проблемы, вы можете получить помощь от сообщества GameMaker, либо можете связаться с технической поддержкой YoYo Games.
GameMaker: Studio EA 1.99.296
Список изменений:
Installer / Updater
- Установщик теперь содержит данные только для Standard установки, что потенциально сэкономит 150 Мб при скачивании и ещё больше при установке на HDD
- Updater проверяет вашу лицензию и скачивает только те модули, которые необходимы
- ПРИМЕЧАНИЕ: Это означает, что вам необходимо интернет-соединение после скачивания установщика
- Если происходит ошибка сети, то модули могут быть скачаны позже, чтобы “починить” вашу установку
- Изменение вашей лицензии также запустит программу обновления на скачивание недостающих модулей при следующем запуске
- Если возникают какие-либо ошибки, пожалуйста, сообщите о них в Helpdesk и прикрепите ваш файл %localappdata%\GameMaker-Studio-Early-Access\trace.log
IDE
- Редактор комнат теперь может показывать только текущий слой тайлов, скрывая все остальные
- Скорость проверки синтаксиса в редакторе кода теперь можно настроить в File > Preferences, если текущая вас не устраивает
- Редактор фигур физики теперь подстраивает рабочую область под окно
- HTML5 снова учитывает настройки размера текстур
- Исправления для свежеобновлённых пакетов магазина (Marketplace) дают разработчику возможность получить не обновлённую версию
- Задержка на открытие групп при перетаскивании элементов в дереве ресурсов была увеличена и также вынесена в настройки
iPhone 6 и 6+
- Добавлены константы os_device для устройств «device_ios_iphone6» и «device_ios_iphone6plus»
- Правки, связанные с разрешением экрана, особенно 6+
Misc In-Game
- sprite_add() теперь может загружать .jpg/.jpeg и .gif из Included Files
GameMaker: Player v1.1
- Множество исправлений пользовательского интерфейса и больше стабильности, более подробно в собственном release notes
Скачать GameMaker: Studio EA 1.9.296 можно здесь
GameMaker: Studio EA 1.99.269
Список изменений:
GameMaker: Player
- GameMaker: Player
- Добавлена новая платформа для экспорта – GameMaker: Player
- Таким образом игра загрузится в нашу новую песочницу, где вы можете поделиться своей игрой и (в скором времени) продавать, если захотите
- Пожалуйста, создайте аккаунт, либо залогиньтесь на player.yoyogames.com (логин от Marketplace также можно использовать)
- После входа в аккаунт, создайте нового разработчика. Вам также необходимо создать сертификат внутри самой GM
- Создание/обновление и загрузка нового пакета достигается через создание запускаемого файла с выбранной платформой GameMaker: Player
- Более подробно о GameMaker: Player можно узнать в этой FAQ категории Helpdesk’а
- ПРИМЕЧАНИЕ: Player является автономным приложением и его также можно загрузить отсюда
iOS 8 Push Notifications
- Apple изменили метод регистрации всплывающих уведомлений для iOS 8. Данная версия поддерживает также и новый способ.
GameMaker: Studio EA 1.99.262
Список изменений:
IDE
- Исправлена ситуация, когда ресурсы и файлы со словом error в имени выдавали ложные сообщения об ошибках, хотя сборка выполнялась нормально
- Теперь при перетаскивании большого количества ресурсов появляется диалог подтверждения, что позволяет отменить действие
- Студия больше не открывает любые .gmx под-файлы – будут приниматься только правильные .project.gmx
- Предпросмотр .ogg файлов теперь будет открывать ваш собственный музыкальный проигрыватель для прослушивания звука (если задано в настройках)
- Несколько исправлений в .lib файлах ваших расширений для их корректного импортирования
- Расширения теперь проверяют другие расширения на совпадение имён и также снова позволяют содержать пробелы в именах
- Теперь можно задавать собственные горячие клавиши для большинства элементов интерфейса. Многие надписи были добавлены/исправлены для поддержки этого
- Имя издателя в глобальных настройках игры для Windows 8 теперь фактически передался в ваш game manifest
- Автоматическое отключение расширений на не допустимых платформах было испорчено а последнем релизе, сейчас снова работает
- Очистка проекта теперь сбрасывает флаг, проверяющий все ресурсы на ошибки при следующем запуске/сборке
- Аудио функции music_ стали устаревшими, вам необходимо поменять их на audio_play_sound…
- В настройках HTML5 игр теперь есть опция не создавать изображения с частицами при экспорте
GameMaker: Marketplace
- GameMaker: Marketplace теперь доступен и для пользователей Steam. Смотрите подробности в этом FAQ
- Теперь вы можете создать аккаунт в Marketplace, используя Steam User ID instead of a GM: S license
- Исправлена проверка владельца расширения
- Теперь можно отсортировать ваш список пакетов по алфавиту и по статусу
- Теперь можно смотреть текущий рейтинг пакетов непосредственно из IDE
- Улучшена поддержка локализаций, которые используют запятые в качестве разделителей
Контроль версий
- Интеграция контроля версий была полностью пересмотрена и в значительной мере переписана
- SVN теперь более надёжен
- Теперь вы также можете использовать git и Mercurial, если укажете на уже установленные инструменты
- Конфигурационные файлы контроля версий были изменены/удалены, где это возможно, чтобы свести к минимуму нежелательные фиксации изменений
Отладчик
- Старый windows-отладчик убран (HTML5 остался тем же)
- Отладчик теперь работает с обновлениями в реальном времени
- Новый отладчик всегда должен выдавать значимый номер строки
- Добавлена настройка, позволяющая вручную указать IP устройства для подключения отладчика
- Добавлена настройка, позволяющая задать номер порта для подключения
Звук
- В глобальные настройки приложения добавлены группы. Они работают подобно текстурным страницам, уменьшая использование памяти при одномоментной загрузке файлов
- Audio события теперь могут быть использованы для запуска/остановки/изменения звука и т.п.
- Звук теперь можно загрузить используя buffer_load_audio(), которая вернёт обычный идентификатор для использования в других аудио функциях
Поддержка работы с микрофоном
- Захват звука в буфер и возможность использовать его в игре
- Новые асинхронные события для начала записи и её окончания
- buffer_save может быть использован для сохранения захваченных данных. Обратите внимание, что вы не получите готовый .wav/mp3/ogg
Ubuntu 14
- Whilst Ubuntu versions in between have always worked if you modified our Helpdesk guide, we’ve now moved support from 12.10 (32bit) to 14.04 LTS (64bit)
- Наш Helpdesk FAQ и руководство будут скоро обновлены
Высококачественное отображение шрифтов
- Задаётся отдельно для каждого шрифта, отключено по умолчанию
Поддержка iOS 8 и iPhone 6
- ПРИМЕЧАНИЕ: Необходимо обновление до Xcode 6 (“Gold Master” также подойдёт)
- EA212 имел только поддержку раннера для iOS 8, а теперь вы можете создавать также и приложения
- ПРИМЕЧАНИЕ: Вам необходимо включить Preferences > Developer > “Enable UI Automation” на вашем iOS 8 устройстве, иначе сборка не удастся
- ПРИМЕЧАНИЕ: Устройства с iOS 7 часто будут показывать такое же сообщение об ошибке, так как теперь инструменты ищут только iOS 8
- Более подробную информацию/проблемы по iOS 8 можно узнать в этом FAQ
- Добавлены исправления для проектов, содержащих пробелы в имени, в том числе, при распаковке Facebook SDK
- Добавлены исправления для экранов iPhone 6 и 6+, включая новые сплэш-заставки в глобальных настройках игры.
- Добавлены новые константы для управления методом, которым ваше приложение будет подключаться
- Добавлена поддержка для iOS через интеграцию метода ОС, что должно исправить отказ Apple из-за использования Safari
- Добавлена поддержка для in-app overlay login method, что позволит всем платформам оставаться в игре и не использовать любые диалоги ОС
Analytics Providers
- Поддержка Flurry была убрана из раннера, что должно исправить отказ Apple из-за неиспользуемого AdsIdentifier
- Flurry и Google Analytics были убраны из глобальных настроек игры
- Google Analytics и Flurry будут возвращены в ближайшее время в виде расширений
- (Вышесказанное относится к Android и iOS)
Разное
- Исправлено, что instance creation code не применялся к YYC платформам
- Интеграция со стимом теперь работает с YYC сборками
- Новые функции для получения информации об vertex buffers, плюс конвертирование vertex buffers в regular buffers
- Android устройства с иммерсивным режимом теперь сообщают корректную высоту дисплея, с учётом того, включен режим, или нет
- Внутриигровые покупки магазина Amazon снова подключены и нормально работают
- DS maps возвращают неопределённый тип если они не определены, а не просто 0. Добавлена константа “undefined” и функция is_undefined()
- Сделано ещё одно исправление для использования функции asset_get_index() с звуковыми файлами
- Google Play Services были обновлены до версии 5077000
- Игры для Mac не будут менять размер окна при полноэкранном режиме – теперь они будут помнить размер при выходе из полноэкранного режима
- Порядок градиентов SWF теперь соответствует тому, который использует Flash, поэтому они должны выглядеть так, как ожидается
- Осуществлена поддержка клонирования анимации Spine, для чего добавлены новые функции
- Сенсорные события WP8 стали намного более надежными, особенно на высокопроизводительных устройствах, таких как недавние Nokia Lumia
- url_open() больше не отключает полноэкранный режим – при возвращении в игру снова будет включен полноэкранный режим (Windows and Mac)