Skip to content

ProjectSettings

vasili.kostin edited this page Aug 27, 2021 · 22 revisions

Настройки игрового проекта.

Настройки игрового проекта Thing-Editor находятся в файле thing-project.json в папке проекта. Для быстрого открытия настроек, открытого в Thing-Editor проекта, можно нажать кнопку меню Project Settings. Файл настроек откроется в текстовом редакторе, назначенном системе для редактирования файлов 'json' формата.

В javascript доступ к настройкам проекта осуществляется следующим образом:

import game from "thing-editor/js/engine/game.js";

console.log(game.projectDesc.title);

Ниже приведено описание всех настроек игрового проекта Thing-Editor:


Общие настройки:

title : String

Название проекта, которое будет отображено в списке проектов при открытии проекта в Thing-Editor.


id : String

Уникальный идентификатор игры, который используется как ключ для хранения данных и настроек игры в localStorage. (Подробнее: game.settings). Может быть переопределен разработчиком игры в момент инициализации игры.


icon : String

Путь к иконке, которая будет отображено в списке проектов при открытии проекта в Thing-Editor. К тому же, если путь указывает на иконку, расположенную в папке проекта /img/, то эта иконка будет присваиваться новым спрайтам добавленным на сцену в редакторе сцен.


__group : String

Поле служит для группировки проектов в списке проектов, отображаемом при открытии проекта. Поле должно содержать текстовое название группы, в которую проект будет помещен. Группы могут иметь подгруппы, для этого нужно отделить название подгруппы символом '/'.


Настройки размеров и положения экрана:

screenOrientation : String

Задает ориентацию экрана игры. Допустимые значения для данного параметра:

  • 'landscape' - принудительная горизонтальная ориентация. На мобильных устройствах, в том случае, когда игрок держит экран вертикально, или ориентация экрана зафиксирована в вертикальном положении, корневой контейнер игры (game.stage) будет повернут на 90 градусов, чтобы максимально эффективно использовать экранное пространство.
  • 'portrait' - принудительная вертикальная ориентация. На мобильных устройствах, в том случае, когда игрок держит экран горизонтально, или ориентация экрана зафиксирована в горизонтальном положении, корневой контейнер игры (game.stage) будет повернут на 90 градусов, чтобы максимально эффективно использовать экранное пространство.
  • 'auto' - автоматическое определение ориентации, по размерам области, доступной для расположения игрового экрана. Если ширина доступной области больше высоты - будет включен горизонтальный режим, и наоборот.

Проверить реальную ориентацию экрана во время выполнения игры можно через переменную game.isPortrait;

Включение режима auto подразумевает, что все сцены, фейдеры, и модальные диалоги в игре поддерживают две ориентации, за счет использования компонентов OrientationTrigger и Resizer, и игровая логика, написанная разработчиком в javascript, так же рассчитана на две ориентации. Поддержка данного режима значительно усложняет разработку игры, и может является нецелесообразной.


width : Number

Ширина игрового экрана в горизонтальном режиме, в пикселях.


height : Number

Высота игрового экрана в горизонтальном режиме, в пикселях.


portraitWidth : Number

Ширина игрового экрана в вертикальном режиме, в пикселях.


portraitHeight : Number

Высота игрового экрана в вертикальном режиме, в пикселях.


dynamicStageSize : Boolean

По умолчанию данная настройка имеет значение false - это делает размеры игрового экрана фиксированными. Ширина и высота экрана строго соответствуют размерам, указанным в width, height или portraitWidth, portraitHeight, для горизонтального и вертикального режимов соответственно. Игровой экран вписывается в максимально доступную ему область, сохраняя пропорции.

Установка настройки dynamicStageSize в значение true, включает динамический размер игрового экрана. Либо ширина, либо высота игрового экрана увеличивается до тех пор, пока экран не примет пропорции, необходимые для заполнения им всего доступного пространства. Точка с координатами 0,0 при этом остается в левом верхнем углу.

Включение dynamicStageSize режима подразумевает, что все сцены, фейдеры, и модальные диалоги в игре поддерживают динамический размер экрана, за счет использования компонентов Resizer, который позиционирует элементы сцены в относительных единицах. Игровая логика, написанная разработчиком в javascript, так же должна быть рассчитана на динамический размер экрана. Поддержка данного режима значительно усложняет разработку игры, и может является нецелесообразной.


preventUpscale : Boolean

Включение данной настройки в значение true, ограничивает максимальный размер экрана таким образом, чтобы предотвратить растяжение текстур.

Если данная опция включена одновременно с dynamicStageSize, то в случае, если область, доступная для игрового экрана окажется больше, чем размеры указанные в width, height или portraitWidth, portraitHeight, и высота и ширина игрового экрана будут увеличены до размеров, необходимых для заполнения им всей доступной области. Объекты сцены, при этом, будут иметь размер в пикселях, совпадающий с размерами реальных экранных пикселей, и растяжения текстур не произойдет.


mipmap : Boolean

Включает mipmap фильтрацию для всех текстур в игре. Эта опция позволяет исправить "зернистость" на мелких объектах в игре, которая возникает если объект имеет scale 0.5 или меньше.


renderResolution : Number

Коэффициент, повышающий разрешение рендера при запуске игры в desktop браузерах. Присвоения данной настройке значения 2 или более, повышает резкость шрифтов. Однако, это может привести к снижению производительности. Для мобильных устройств данный параметр задается отдельно, параметром renderResolutionMobile.


renderResolutionMobile : Number

Коэффициент, повышающий разрешение рендера при запуске игры на мобильных устройствах. Присвоения данной настройке значения 2 или более, повышает резкость шрифтов. Однако, это может привести к снижению производительности.


framesSkipLimit : Number

Ограничивает количество обновлений игровой логики на каждый отрисованный кадр.

Игровая логика в Thing-Engine работает с фиксированной частотой - 60 кадров в секунду. На слабых устройствах, отрисовка сцены может занимать время, слишком долгое, чтобы успеть отрисовать сцену 60 раз за секунду. Для того, чтобы скорость игры не замедлялась на таких слабых устройствах, игровая логика обновляется более чем один раз на каждый отрисованный кадр. Параметр framesSkipLimit задает максимально допустимое количество обновлений игровой логики на один отрисованный кадр.


autoFullscreenDesktop : Boolean

Включает автоматический переход в полноэкранный режим при клике игрового экрана в Desktop браузере.


autoFullscreenMobile : Boolean

Включает автоматический переход в полноэкранный режим при клике игрового экрана на мобильном устройстве.


loadOnDemandTextures : Object

Данный объект хранит режим загрузки для каждой текстуры. Данный параметр имеет интерфейс пользователя в окне просмотра текстур и как правило, не требует ручного редактирования. Подробнее: Настройка загрузки текстур.


__loadOnDemandTexturesFolders : Object

Данный объект хранит режим загрузки, враппинга и mipmap фильтрации для подпапок с текстурами. Данный параметр имеет интерфейс пользователя в окне просмотра текстур и как правило, не требует ручного редактирования. Подробнее: Настройка загрузки текстур.


jpgQuality : Number

Данная настройка отвечает за качество сжатия jpg текстур при экспорте релизного билда игры. Значение передается в mozjpeg плагин webpack, и может принимать любое допустимое для данного плагина значение.


pngQuality : Array<Number>

Данная настройка отвечает за качество сжатия png текстур при экспорте релизного билда игры. Значение передается в pngquant плагин webpack, и может принимать любое допустимое для данного плагина значение.


__proxyFetchesViaNodeServer : String

Включает проксирование запросов, отправляемых через javascript метод fetch.

При разработке игры, отправляющей запросы к игровому серверу, может возникнуть ситуация, когда запросы блокируются из-за крос-доменной политики. Включение данного параметра отправляет все запросы через node.js сервер Thing-Editor, крос-доменная политика при этом игнорируется. Данная настройка работает только в игровом редакторе, и не попадает в релизную сборку игры.


__lastSceneName : String

Имя сцены, которая будет загружена при следующем запуске игрового редактора. Данная настройка необходима только в игровом редакторе, и не попадает в релизную сборку игры._____________________________________________

__suspendWarnings : Array<Number>

Список кодов предупреждений, отображение которых будет отключено.


Настройки шрифтов:

defaultFont : String

Название шрифта, который будет использован текстовыми полями (компонент Text), по умолчанию. Поддерживаются значения, корректные для свойства CSS font-family.


webfontloader : WebFontLoaderOptions

Данный блок опций передается в модуль webfontloader, отвечающий за загрузку шрифтов. Подробно настройки данного модуля описаны по ссылке.


fontHolderText : String

Текстовый блок, который будет присоединен к телу страницы. Данный блок должен содержать как минимум один символ из каждого используемого в игре языка. Иначе, некоторые браузеры могу выгрузить шрифты в процессе работы игры, в целях оптимизации, и текст в игре будет отображаться с системным шрифтом.


Настройки звука:

soundFormats : Array<String>

Данная настройка содержит список звуковых форматов, которые будут генерироваться для каждого звука. Так как разные браузеры поддерживают ограниченный список звуковых форматов, релизный билд должен содержать звуки в нескольких форматах, для того, чтобы обеспечить работу звука на максимальном количестве платформ. Обычно, для данного поля достаточно форматов ogg и aac. Подробнее о работе со звуками.


loadOnDemandSounds : Object

Данный объект хранит режим загрузки для каждого звука. Данный параметр имеет интерфейс пользователя в окне звуков и как правило, не требует ручного редактирования. Подробнее: Настройка загрузки звуков.


muteOnFocusLost : Boolean

Отвечает за отключение звука при сворачивании игры, или переходе на другую вкладку.


soundDefaultBitrate : Number

Данный параметр устанавливает качество звуков (битрейт) по умолчанию, при конвертировании звуков в форматы, заданные в настройке soundFormats. Значения, допустимые для данного поля, ограничены значениями битрейта, поддерживаемого кодеками библиотеки ffmpeg. Как правило это значения: 48, 64, 80, 96, 112, 128, 160. Но некоторые форматы поддерживают как меньший так и больший битрейт.


soundBitrates : Object

Данный объект позволяет задать качество конвертации (битрейт) для каждого звука в отдельности. Данный параметр имеет интерфейс пользователя в окне звуков и как правило, не требует ручного редактирования. Подробнее: Настройка качества звуков.


defaultSoundsVol : Number

Задает уровень громкости звуков по умолчанию. Подробнее: game.Sound.soundsVol


defaultMusVol : Number

Задает уровень громкости музыки по умолчанию. Подробнее: game.Sound.musicVol


keepSoundWhilePageUpdate : Boolean

По умолчанию, при потере фокуса, звук на странице с игрой автоматически затихает, даже если станица с игрой при этом видима. Если данная опция имеет значение true, то звук на странице не пропадет до тех пор, пока страница с игрой остается на переднем плане.


Настройки локализации:

defaultLanguage : String

Определяет язык, который будет включен в игре по умолчанию, в случае когда в игре отсутствует язык, установленный в браузере игрока как системный.


embedLocales : Boolean

Определяет, будут ли данные локализации в финальном билде храниться внутри файла assets.js, или грузиться отдельно из внешнего файла. Как правило, данная настройка не требует изменения и имеет значение true. Устанавливайте значение false, только в том случае, если этого требует ваша существующая инфраструктура локализации проектов.


__localesNewKeysPrefix : String

Позволяет задать автоматически подставляемый префикс для вновь создаваемого ключа в окне текстовых ресурсов. Данная настройка не попадает в финальный билд и используется только в игровом редакторе.


__externalLocalesSource : String

Данная настройка позволяет задать путь к внешнему файлу с данными локализации. Текст, загруженный из данного файла, будет доступен для использования в текстовых полях сцены. Используйте данную настройку, если у вас имеется собственная инфраструктура локализации проектов.


Прочие настройки:

__webpack : Object

Задает пути к debug и production файлам конфигурации webpack, используемым для сборки проекта.

<- Предыдущая страница Следующая страница ->

Связанные темы:

Редактор текстовых ресурсов

Текстовое поле Text

Переключение текущего языка в окне сцены

Clone this wiki locally