Статьи

Приветствую старое и новое – инструмент для построения контента MonoGame

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

Мир контента

Еще во времена сена XNA у нас было прекрасное небольшое расширение, которое позволяет нам создавать отдельный проект для всех наших игровых ресурсов, а затем ссылаться на них с помощью одного указателя, это были проекты контента!

образ

XNA Content Project и контентный справочник

Это были фантастические устройства, которые автоматически компилировались, сжимались и встраивали наши ресурсы XNA в наш проект.

Когда MonoGame впервые запустился, они попытались эмулировать это, но вынуждены были повторно использовать существующую настройку Content Project, по-прежнему используя шаблон проекта контента XNA и проект MSBuild с пользовательской сборкой для компиляции файлов XNB, необходимых в ваших игровых решениях.

образ

Проект MonoGame Content Builder и его проект содержимого XNA

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


Введите MGCB — инструмент для создания контента MonoGame

образ

Инструмент построения контента MonoGame (MGCB)

Глубоко в недрах текущей разработки MonoGame находится новый инструмент для работы с контентом, в его стенах есть множество улучшений и изменений для лучшей обработки потребления и упаковки контента, а также упрощения добавления и управления созданием контента с вашими игровыми проектами.

Подобно старому проекту контента XNA, вы создаете новую базу данных активов в инструменте, добавляете в нее свой контент как обычно (устанавливая соответствующие типы импортеров контента для каждого файла) и сохраняете проект в новом определении проекта контента «.MGCB». , Вооружившись новым файлом определения содержимого, вы, наконец, добавляете его в свой проект и устанавливаете для его действия по сборке значение « MonoGameContentReference », а затем скажите, что вы ссылались на свой проект содержимого:

образ

Новая справка по содержанию MGCB

Теперь мы готовим, если все настроено правильно, ваш контент-проект будет построен с вашей игрой (также он не будет перестраиваться, если нет изменений!), И мы почти достигли паритета с простотой старых дней с XNA.


У вас уже есть контент-проект XNA?

Если у вас уже есть проект по настройке контента XNA, который вы хотите, и не хотите тратить время на его сборку заново !, то инструмент для создания контента MonoGame окажет вам поддержку.

образ

Используя опцию «Импорт» в меню файлов, вы просто выбираете существующий «.contentproject», затем он читает старое определение и импортирует все ваши настройки и контент в новый контент-проект, как по волшебству!


Так почему вся эта суета?

Итак, кроме санитарии , медицины, образования, вина, общественного порядка , ирригации , дорог, системы пресной воды и общественного здравоохранения , что римляне когда-либо делали для нас? (Я люблю цитаты Монти Пайтона — http://bit.ly/PythonRomans ).

Кроме простой системы, зачем все это? На что ответ прост. Самая большая проблема с использованием старого решения Content Builder с XNA Content Projects заключалась в том, что оно могло быть построено только на компьютерах с Windows (поскольку именно там лежала основная поддержка XNA).

Однако с новым инструментом MGCB теперь можно создавать контент на всех платформах MonoGame .

Есть один недостаток, над которым команда все еще работает, сам инструмент. На момент написания данного документа сам инструмент все еще находился в разработке и на некоторых платформах еще не завершен:

  • Windows — базовая платформа разработки и в курсе
  • Linux — в основном в комплекте с несколькими процессорами, все еще нуждающимися в тестировании / настройке
  • MacOS / iOS — в настоящее время в тяжелой разработке

Это означает, что вы не только сможете создавать контент в своих проектах, вы также сможете использовать инструмент для создания контент-проектов на различных платформах.

На самом деле, поскольку файл проекта .MGCB является просто текстовым, вы можете настроить его вручную, если хотите, однако я бы не рекомендовал его Улыбка с открытым ртом


Начало работы с MGCB

Если вы хотите использовать инструмент MGCB прямо сейчас, вам просто необходим последний установщик MonoGame, который можно найти в разделе « Сборки разработки» главной страницы загрузки MonoGame, есть установщики для Visual Studio и MonoDevelop для Windows, Linux и Mac. Вот:

http://www.monogame.net/downloads/

После установки у вас будет установлена ​​текущая версия инструмента MGCB. Кроме того, все шаблоны проектов MonoGame были обновлены, чтобы включить определение проекта контента MGCB, в которое вы можете редактировать и добавлять свой контент.

В Windows текущий список шаблонов включает в себя:

образ

* Обратите внимание, вам все еще нужны расширения XAMARIN для Windows, чтобы использовать шаблоны Android, Ouya и iOS. Android все еще может быть собран с помощью MonoDevelop в Windows.

Запустите любое новое решение, и оно будет похоже на решение проекта, показанное ранее (в разделе Enter MGCB)


Образцы обновлений

И еще больше, мультиплатформенные примеры были обновлены для использования нового инструмента Content Builder, вы можете найти их по адресу:

https://github.com/Mono-Game/MonoGame.Samples

Здесь вы найдете 3 основных образца в разных стадиях развития:

  • Пример Platformer 2D — Полностью работает на всех платформах!
  • Образец Neon Shooter — работает на Windows GL, но готов к обновлению для всех платформ
  • Образец SpaceWar — испытательный стенд для разработки, так как он имеет некоторые лидирующие требования к контенту / разработке. (не запускается в данный момент после обновления, но работа продолжается — это БОЛЬШОЙ образец)

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

Да, мы все еще работаем над документацией для каждого образца, это тяжелая работа, и у всех есть только так много времени. Выручай, если можешь !!

Следует отметить, что КАЖДЫЙ образец имеет только ОДИН проект контента, этот проект затем используется ВСЕМИ платформами и создается для правильной платформы во время сборки !!

Не ожидал, что вы


Обновление вашего проекта

Теперь можно обновить ваш проект, чтобы использовать новый инструмент Content Builder, но в настоящее время это ручной процесс. однако это всего лишь несколько шагов:

* Обратите внимание, что на момент написания инструмента MGCB полностью работал только на платформах Windows, вам все еще нужен компьютер с Windows для редактирования конфигурации MGCB. Продолжайте проверять веб-сайт для полной поддержки Linux и MacOS.
Однако Content Project работает и создает контент для ВСЕХ платформ.

  1. Установите последнюю версию установщика Dev (необходимого для установки самого инструмента). Мы рекомендуем сначала удалить старую программу установки, если она у вас уже есть.
  2. Сделайте резервную копию вашего существующего проекта, если вы используете систему контроля версий, просто сначала перенесите последние изменения на сервер.
    Если вы не используете контроль исходного кода !!! Начните использовать его! (ты сумасшедщий?). Также сделайте еще одну резервную копию «на всякий случай» (вы никогда не будете слишком осторожны)
  3. Исключите / удалите и контент / ссылки / сборки процессов, которые у вас уже есть для публикации вашего контента в вашем проекте.
    Просто переместите любые предварительно собранные XNB в другое место, и если у вас есть сценарии сборки, копирующие их, удалите сценарий. Если вы связываете файлы XNB, удалите ссылки из своего проекта. Это должно оставить ваш проект в чистом виде без содержания.
  4. Сохраните ваш проект — далее наступает сложная часть — вручную редактируйте ваш файл csproj (файл проекта)
  5. Откройте файл проекта (.csproj) в вашем любимом текстовом редакторе (или воспользуйтесь функцией редактирования файла проекта VS powertools).
    Вы найдете инструменты Power VS в библиотеке расширений Visual Studio, нажмите «Инструменты -> Расширения и обновления » (в меню VS), а затем искать электроинструменты.
  6. В конце первого раздела <PropertyGroup> добавьте новый раздел <MonoGamePlatform> следующим образом:
    <PropertyGroup>
      <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
      <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
      <ProductVersion>8.0.30703</ProductVersion>
      <SchemaVersion>2.0</SchemaVersion>
      <ProjectGuid>{CAF988BD-5440-405D-95D5-BCAB25FC5240}</ProjectGuid>
      <OutputType>WinExe</OutputType>
      <AppDesignerFolder>Properties</AppDesignerFolder>
      <RootNamespace>Platformer2D</RootNamespace>
      <AssemblyName>Platformer2D</AssemblyName>
      <FileAlignment>512</FileAlignment>
      <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\..\</SolutionDir>
      <RestorePackages>true</RestorePackages>
      <NuGetPackageImportStamp>5c48b287</NuGetPackageImportStamp>
      <MonoGamePlatform>WindowsGL</MonoGamePlatform>
    </PropertyGroup>

  7. Задайте имя платформы, на которое нацелен файл вашего проекта.
    Доступны следующие варианты: Android, iOS, Linux, MacOSX, NativeClient, Ouya, PlayStation4, PlayStationMobile, RaspberryPi, Windows, WindowsGL, WindowsPhone, WindowsPhone8, WindowsStoreApp, Xbox360.
    Примечание для Windows 8 вы должны использовать цель Windows . WindowsStoreApp предназначен для игр 8.1 или универсальных целей Windows.
  8. В конце файла проекта перед маркером </ Project> (желательно с другими разделами <Import>) добавьте следующую строку
    <Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" />

  9. Это активирует действие сборки « MonoGameContentReference » и активирует инструмент.

  10. Добавьте новый текстовый файл в папку «Content» и переименуйте его расширение в «.mgcb» (например, «Content \ mycontent.mgcb») — самый простой способ создания нового проекта MGCB.
    Обратите внимание, вы должны увидеть новый значок для файла. Если этого не произойдет, проверьте установку установщика MonoGame, убедитесь, что это версия dev, а не версия 3.2.
  11. Дважды щелкните файл содержимого MGCB и откройте инструмент MGCB, вручную добавьте свои активы или импортируйте их из старого .contentproject

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

Как только все это будет сделано, сохраните файл проекта и перезагрузите проект в редакторе кода.

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


Ааа, но для роз

Теперь, поскольку это все еще разработка для инструмента, есть несколько предостережений:

  1. Он не завершен на 100% и, возможно, содержит ошибки (однако вы заметите, что образец Platformer обновлен, прекрасно работает и работает на всех платформах!)
  2. Проекты XACT не поддерживаются (на самом деле было обнаружено, что XNA даже не обрабатывает XACT, их просто вытолкнули с другой стороны!, Как ни странно, что вы узнали), просто добавьте свои аудиофайлы по отдельности и используйте их как обычно с Content. Загрузите <Song> и т. Д.
  3. Инструмент для Linux почти у цели — почему бы не помочь проверить его
  4. Как отмечалось выше, инструмент MGCB не всегда открывает файл, из которого вы его запустили. Просто убедитесь, что вы просматриваете правильный файл содержимого, прежде чем вносить изменения. Чтобы быть в безопасности, просто откройте его вручную из инструмента (который был обнаружен в прямом эфире Энди и Томом, это было весело Улыбка с открытым ртом)
  5. Мультиплатформенный контент теперь пустяк! Повеселись.

Если у вас есть какие-либо дополнительные вопросы / запросы / урчание или склонность возиться. Затем перейдите на сайт GitHub, протестируйте и сообщите о проблемах (только если они обнаружены, проблема с надписью «Какой фантастический инструмент» хороша, но бесполезна !!)

Прыгай и участвуй!

* При создании этой статьи не было причинено никакого вреда, но многие соки java были убиты за их сок!