MonoGame
![]() | |
Тип | Application framework |
---|---|
Розробник | MonoGame Team |
Перший випуск | 2 вересня 2009 |
Стабільний випуск | 3.0.1[1] (6 березня 2013 ) |
Версії | 3.8.1 (24 липня 2022)[2] |
Платформа | iOS, MacOS, PlayStation Mobile, Android, Linux, Ouya, Windows Phone 8, Windows Store, Windows Desktop |
Операційна система | iOS |
Мова програмування | C Sharp[3] |
Ліцензія | Microsoft Public License[4] |
Репозиторій | github.com/MonoGame/MonoGame |
Вебсайт | www.monogame.net |
MonoGame — альтернативна реалізація Microsoft XNA з відкритим кодом. Ціль проекту — спростити розробку кросплатформих ігор шляхом максимізації повторного використання коду.
Логотип MonoGame являє собою стилізований логотип Mono. На ньому зображений мозок, що з'єднаний з трьома мобільними пристроями які підтримуються MonoGame.
MonoGame працює на багатьох платформах: iOS,Android, Windows, Mac OS X, Linux, Windows 8, Windows Phone 8, PlayStation Mobile та консоль OUYA.
MonoGame майже повністю повторює архітектуру класів та просторів імен XNA. Теоретично, для того щоб перенести проект з використанням XNA на MonoGame, достатньо лише змінити бібліотеку що підключється, не вносячи змін до коду. Така кросплатформність досягається шляхом використання відповідних препроцесорних директив. На різних платформах використовуються різні директиви для підключення бібліотек, реалізації методів, або їх частин, необхідних для роботи фреймворку саме на певній платформі. Для контролю того, під яку платформу відбувається компіляція і які саме директиви використовуються можна встановлювати BUILD правила.
Нижче наведений уривок коду з класу GraphicsDevice, де за допомогою препроцесорних директив підключаються графічні бібліотеки для кожної з підтримуваних платформ :
#if OPENGL
#if MONOMAC
using MonoMac.OpenGL;
#elif WINDOWS || LINUX
using OpenTK.Graphics.OpenGL;
#elif GLES
using OpenTK.Graphics.ES20;
#endif
#elif DIRECTX
using SharpDX;
using SharpDX.Direct3D;
#if WINDOWS_PHONE
using SharpDX.Direct3D11;
З метою повної підтримки на Windows 8, MonoGame використовує бібліотеку SharpDX, проект з відкритим кодом, що дає доступ до DirectX з керованого коду. SharpDX є безкоштовним і розповсюджується під ліцензією MIT.[5] Також використувуються бібліотеки OpenTK та LidGren. OpenTK надає доступ до бібліотек OpenGL та OpenAL. LidGren — бібліотека для роботи з мережею. Система управління контентом агалогічна системі XNA 4. Команда MonoGame створила систему побудови контенту яка може бути інтегрованою з Microsoft Visual Studio і надає можливості побудови контенту на Windows 8 аналогічні до тих які користувачі мали на Windows 7 з Microsoft XNA.
MonoGame може працювати в комбінації з іншими фреймворками та бібліотеками. Наприклад, як фізичний рушій для гри на MonoGame можна використовувати бібліотеки FarseerPhysics [Архівовано 30 травня 2013 у Wayback Machine.] та BEPUphysics [Архівовано 2 червня 2013 у Wayback Machine.] для 2D та 3D фізики відповідно. Для створення інтерфейсу користувача — бібліотеку Runimate [Архівовано 13 травня 2013 у Wayback Machine.]. Також можна використовувати MonoGame у зв'язці з Windows Forms або WPF[6]. MonoGame використовується у деяких ігрових рушіях, як, наприклад, YNA Engine [Архівовано 27 травня 2013 у Wayback Machine.] та DigitalRune [Архівовано 10 травня 2013 у Wayback Machine.].
Windows | Windows 8 | iOS | Android | Mac OS X | Linux | |
---|---|---|---|---|---|---|
Є інсталятор | Так | Так | Ні | Ні | Ні | Ні |
Пристрій | PC | PC | Mac | Mac або PC | Mac | PC |
IDE | Visual Studio | Visual Studio | MonoDevelop | Visual Studio або MonoDevelop | MonoDevelop | MonoDevelop |
Є приклади | Так | Так | Так | Так | Так | Так |
Для підтримки мережі MonoGame використовує бібліотеку LidGren [Архівовано 5 червня 2013 у Wayback Machine.]. Підтримується лише локальна мережа та платформи Windows, Mac, Linux, Android та iOS.
Через те, що різні підтримувані платформи використовують різні мови шейдерних програм (GLSL, HLSL та спеціальні шейдери PlayStation Suite), команда MonoGame розробила власну мову для написання шейдерних ефектів — MGFX, яка має наступні властивості:
- Програми шейдерів мають таку ж структуру як і Microsoft FX файли
- Мають текстовий формат для простоти редагування
- Мають компільовний, оптимізований бінарний формат для використання безпосередньо під час роботи програми
- Кросплатформна, підтримує багато шейдерних мов
- Підходить для подальшого розширення та вдосконалення
Для роботи з MGFX команда MonoGame створила утиліту 2MGFX, яка дозволяє компілювати програми MGFX шейдерів. Як і в XNA, в MonoGame є вбудовані шейдерні ефекти, які підтримуються на всіх платформах:
- BasicEffect
- AlphaTestEffect
- DualTextureEffect
- EnvironmentMapEffect
- SkinnedEffect
MonoGame використовувався при розробці Skulls of The Shogun, гри, що була випущена Microsoft Studios. За допомогою MonoGame гра була портована на Windows Phone 8.[7]
Протягом Xamarin Evolve 2013, Скот Хансельман разом з засновниками Flying Dev Studios обговорює як MonoGame допоміг у портуванні гри Infinite Flight на iOS.[8]
Можливості незалежних розробників для настільної версії Windows дуже великі. Тепер, за допомогою MonoGame, вони можуть розробляти ігри не тільки для настільної версії Windows, а й для багатьох інших платформ.[9]
Зустріч з командою MonoGame на Microsoft Build 2012. Домінік Луї і Том Шпільман дають інтерв'ю Channel 9 про направленість MonoGame на XNA та підтримку ігор для Windows 8 Store. Розповідається про архітектуру MonoGame та те як він використовує DirectX та SharpDX.[10]
MonoGame був використаний у ігровому рушії DigitalRune. За допомогою MonoGame була досягнута підтримка Windows Phone 7.1, Windows Phone 7.8, Windows Phone 8, Windows Desktop (DirectX 11), Windows Store (ARM та x86)[11]
Це лише частковий перелік ігор, що використовують MonoGame на одній або декількох платформах.
Гра | Рік | Платформа | Розробник | Видавець |
---|---|---|---|---|
ARMED! | 2011 | Windows Store, Windows Phone, iOS | Sickhead Games | Sickhead Games |
Skulls of the Shogun | 2013 | Windows Store, Windows Phone, Xbox 360 | 17-BIT | Microsoft Studios |
Draw a Stickman : Epic | 2012 | Windows Store, iOS, Android | Hitcents.com | Hitcents.com |
Bastion | 2011 | Windows, Xbox 360, Chrome, iOS, Linux | Supergiant Games | Warner Bros. Interactive Entertainment |
Infinite Flight | 2011 | iOS, Windows Phone | Flying Development Studio | Flying Development Studio |
Wizorb | 2011 | iOS, Linux, Steam, Mac, Xbox 360, PS Minis | Tribute Games | Tribute Games |
Fez | 2013 | Xbox 360, Microsoft Windows, Linux, Mac OS X | Polytron Corporation | Microsoft Studios, Trapdoor, Polytron |
Поточна версія MonoGame v3.0.1 (станом на 05.14.13). Починаючи з версії 3.0 MonoGame підтримує 3D графіку.
Версія | Дата релізу | Примітки |
---|---|---|
0.0 | 2 вересня, 2009 | Хосе Антоніо Фаріас [Архівовано 3 червня 2013 у Wayback Machine.] починає проект XNATouch. |
0.7 [Архівовано 8 травня 2013 у Wayback Machine.] | 2 грудня 2009 | Перша версія для скачування Codeplex. |
2.0 [Архівовано 19 травня 2013 у Wayback Machine.] | 27 жовтня 2011 | Перший реліз MonoGame 2.0. |
2.1 [Архівовано 13 травня 2013 у Wayback Machine.] | 7 грудня 2011 | Виправлення деяких помилок. |
2.5 [Архівовано 28 травня 2013 у Wayback Machine.] | 29 березня 2012 | Виправлення помилок та оптимізація. |
2.5.1 [Архівовано 5 травня 2013 у Wayback Machine.] | 18 червня 2012 | Останній реліз версії що підтримує лише 2D. |
3.0 beta [Архівовано 19 травня 2013 у Wayback Machine.] | 17 жовтня 2012 | Перший реліз що підтримує 3D графіку. |
3.0 [Архівовано 6 травня 2013 у Wayback Machine.] | 21 січня 2013 | Повна підтримка XNA 4 в MonoGame 3.0. |
3.0.1 [Архівовано 27 травня 2013 у Wayback Machine.] | 6 березня 2013 | Підтримка Xamarin 2.0. |
3.x | — | Модульні і функціональні тести, конвеєр ресурсів гри, більше платформ та можливостей. |
Незважаючи на те, що логотип та назва MonoGame походять від прокту Mono, його розробка повністю незалежна від проекту Mono.
- XNA Framework
- SharpDX [Архівовано 17 травня 2013 у Wayback Machine.]
- MonoXNA [Архівовано 17 травня 2013 у Wayback Machine.]
- ExEn [Архівовано 8 травня 2013 у Wayback Machine.]
- ↑ Архівована копія. Архів оригіналу за 27 травня 2013. Процитовано 14 травня 2013.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Release 3.8.1 — 2022.
- ↑ The monogame Open Source Project on Open Hub: Languages Page — 2006.
- ↑ FAQ: Licensing – MonoGame. Архів оригіналу за 17 липня 2011. Процитовано 2 вересня 2009.
- ↑ Windows 8, XNA and MonoGame. MSDN. 1 серпня 2012. Архів оригіналу за 9 лютого 2013. Процитовано 14 травня 2013.
MonoGame is a recreation of the XNA Namespace Hierarchy and Class Structure. If you dig into the source code of MonoGame, you will find that platform specific code is encapsulated within a #pragma compiler directive...In order to provide a complete implementation of XNA on Windows 8, MonoGame leverages SharpDX , an open-source project delivering the full DirectX API for managed code (.NET) and Windows 8 (WinRT). SharpDX is an open-source project, free of charge available under the following MIT License.
- ↑ Архівована копія. Архів оригіналу за 1 липня 2013. Процитовано 5 червня 2013.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 6 серпня 2013. Процитовано 14 травня 2013.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 7 травня 2015. Процитовано 14 травня 2013.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 9 лютого 2013. Процитовано 14 травня 2013.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Архівована копія. Архів оригіналу за 7 липня 2013. Процитовано 14 травня 2013.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/177/Sponza-Scene-on-Tablets-Phones[недоступне посилання]
- Офіційний вебсайт [Архівовано 30 квітня 2013 у Wayback Machine.]
- Сирцевий код [Архівовано 13 серпня 2013 у Wayback Machine.]
- Обговорення [Архівовано 29 травня 2013 у Wayback Machine.]
- Канал на YouTube [Архівовано 1 квітня 2014 у Wayback Machine.]