MonoGame – пишем однажды, играем везде

Грэг Дункан

Мир разработки велик (капитан Очевидность снова здесь…). Хотя кому-то может нравиться оставаться внутри своего маленького разработческого мирка, никогда не покидая выбранной платформы, при росте других платформ, такая позиция может оказаться больше нежизнеспособной. Да, это здорово, если мы можем применить то, что уже знаем. Применить наш опыт C#-разработки и использовать его при разработке игр для других платформ…

MonoGame – пишем однажды, играем везде

Что такое MonoGame ?

MonoGame – это бесплатная OpenGL-реализация XNA Framework OpenGL для MonoTouch, MonoDroid, Mac OS X, Windows, а вскоре и Linux. Наша цель – дать возможность XNA-разработчикам на Windows и Windows Phone 7 портировать свои игры на iPhone / iPod / Android / Mac OS X (и обратно) и минимальными сложностями.

ПЕРЕХОД НА GITHUB

Самый последний, прекрасный и передовой код для MonoGame теперь можно найти здесь – https://github.com/mono/MonoGame.

Если вы до этого никогда не использовали GitHub, познакомьтесь с моим руководством по GitHub.

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

Текущий план

  1. Добавить поддержку OpenGL ES 2.0 чтобы можно было использовать текстуры 2048x2048 и после этого поддержку шейдера. Если ES 2.0 не обнаружено на устройстве, то возвращаемся к ES 1.1, поэтому ES 1.1 работает должным образом до перехода на поддержку ES 2.0.
  2. Как только ES 2.0 с возвратом к ES 1.1 заработает и станет стабильным, мы выпустим MonoGame 2.5.
  3. После того, как мы станем счастливы от того, что 2D – самый лучший, возможно, мы добавим поддержку 3D.
  4. Как только поддержка 3D станет стабильной, мы сможем выпустить MonoGame 3.0 clip_image002.

clip_image004

Есть ли тут примеры, которые можно запустить на Windows? Конечно!

Примеры MonoGame

clip_image006

clip_image008

И это действительно работает? Да!

clip_image010

Некоторые замечания для получения работающих примеров

  • В коде есть ссылки на платформу OpenTK. Я использовал Nuget и нашел «неофициальный» пакет OpenTK, который вроде бы нормально работает.
  • Примеры Windows также ссылаются на проекты «Lidgren.Network.Windows» и «MonoGame.Framework.Windows» но не включают их. Поэтому скачайте исходники со станицы git, mono / MonoGame, и замените битые проекты ссылками на эти.
  • Там есть ссылка на SDL.DLL, которая также может быть испорчена. Этот файл также доступен в закачиваемом пакете в папке \ThirdParty.

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

Какие виды примеров доступны?

clip_image011

clip_image013clip_image015clip_image017clip_image019clip_image021clip_image023

Кроме того, доступны наборы для начала работы.

clip_image025

Наконец, давайте взглянем на саму платформу. Это сложный проект…

clip_image027

clip_image029

Если вы чувствуете необходимость кодирования для различных аппаратных платформ, писать игры, использующие C# и XNA и работающие во многих местах, MonoGame может вам понравиться…