Кроссплатформенная разработка для мобильных устройств в Visual Studio
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Используя Visual Studio, можно создавать приложения для устройств Android, iOS и Windows. При разработке приложения вы можете использовать инструменты Visual Studio для добавления подключенных служб, таких как Microsoft 365, Служба приложений Azure и Application Insights.
Поддерживается создание приложений с помощью C# и .NET Framework, HTML и JavaScript или C++. Существует возможность совместного использования кода, строк, изображений, а в некоторых случаях даже пользовательского интерфейса.
Для создания игр или мощных графических приложений установите инструменты Visual Studio для Unity. Это позволит максимально эффективно использовать функции Visual Studio и Unity — популярного движка и среды разработки для игр и мощных графических приложений в Windows, iOS, Android и на других платформах.
Сборка приложений для устройств Android, iOS и Windows (.NET Framework)

С помощью инструментов Visual Studio для Xamarin вы можете указать Android, iOS и Windows в качестве целевых устройств в одном и том же решении, при этом код и даже пользовательский интерфейс будут использоваться совместно.
| Подробнее |
|---|
| Установка Visual Studio (VisualStudio.com) |
| Сведения о Xamarin в Visual Studio (VisualStudio.com) |
| Документация для разработки мобильных приложений Xamarin |
| DevOps с приложениями Xamarin |
| См. дополнительные сведения об универсальных приложениях Windows в Visual Studio (VisualStudio.com) |
| Сведения о сходстве между Swift и C# (download.microsoft.com) |
Целевые устройства Android, iOS и Windows из единой базы кода
Вы можете создавать собственные приложения для Android, iOS и Windows с помощью C# и F# (Visual Basic сейчас не поддерживается). Для начала работы установите Visual Studio, выберите в установщике параметр Разработка мобильных приложений на .NET.
Если у вас уже установлена Visual Studio, повторно запустите Visual Studio Installer и выберите тот же параметр Разработка мобильных приложений на .NET для Xamarin (как показано ранее).
После окончания установки шаблоны проектов появятся в диалоговом окне Новый проект. Чтобы найти шаблоны Xamarin, проще всего ввести «Xamarin» в строке поиска.
Xamarin предоставляет собственные функции Android, iOS и Windows в виде классов и методов .NET. Ваши приложения будут иметь полный доступ к собственным API-интерфейсам и собственным элементам управления и будут вести себя так же, как приложения, написанные на собственных языках платформ.
После создания проекта вы сможете использовать все функции повышения продуктивности в составе Visual Studio. Например, вы сможете создавать страницы с помощью конструктора и изучить собственные API-интерфейсы мобильных платформ с помощью IntelliSense. Для запуска готового приложения и оценки его интерфейса можно использовать эмулятор пакета SDK для Android и запускать приложения в собственной среде Windows. Вы также можете использовать связанные устройства Android и Windows напрямую. Для проектов iOS необходимо подключиться к компьютеру Mac, подключенному к сети, и запустить эмулятор iOS из Visual Studio или подключиться к связанному устройству.
Создание одного набора страниц, отображаемого на всех устройствах, с помощью Xamarin.Forms
В зависимости от сложности конструкции приложения, возможно, имеет смысл использовать для его создания шаблоны Xamarin.Forms в группе шаблонов проектов Мобильные приложения . Xamarin.Forms — это набор средств разработки пользовательского интерфейса, с помощью которого можно создать единый интерфейс приложения для совместного использования на устройствах Android, iOS и Windows. При компиляции решения Xamarin.Forms вы получаете приложение для Android, приложение для iOS и приложение для Windows. Дополнительные сведения см. в разделе Дополнительные сведения о разработке мобильных приложений с помощью Xamarin и в документации по Xamarin.Forms.
Совместное использование кода приложениями Android, iOS и Windows
Если вы не используете Xamarin.Forms и предпочитаете разрабатывать приложения для каждой платформы отдельно, вы можете совместно использовать большую часть кода, не относящегося к пользовательскому интерфейсу, в проектах для разных платформ (Android, iOS и Windows). К нему относятся любая бизнес-логика, интеграция в облаке, доступ к базе данных или любой другой код, предназначенный для платформы .NET Framework. Единственным кодом, который нельзя совместно использовать, является код, предназначенный для конкретной платформы.

Код можно совместно использовать с помощью общего проекта, проекта переносимой библиотеки классов или обоих этих проектов. Может оказаться, что какой-то код больше подходит в общем проекте, а другой код лучше себя ведет в рамках проекта переносимой библиотеки классов.
| Подробнее |
|---|
| Варианты совместного использования кода (Xamarin) |
| Варианты общего доступа к коду в .NET |
Целевые устройства Windows 10

Если вы хотите создать одно приложение, предназначенное для полного спектра устройств Windows 10, создайте универсальное приложение Windows. Разработка приложения будет осуществляться с помощью одного проекта, а страницы будут отображаться должным образом независимо от того, какое устройство используется для их просмотра.
Начните с шаблона проекта приложения на универсальной платформе Windows (UWP). Вы можете визуально разрабатывать страницы, а затем открывать их в окне предварительного просмотра, чтобы увидеть, как они будут отображаться для различных типов устройств. Если вас не устраивает, как страница отображается на устройстве, вы можете оптимизировать ее в соответствии с размером экрана, разрешением или ориентацией (горизонтальной или вертикальной). Все это можно сделать с помощью удобных инструментальных окон и пунктов меню в Visual Studio. Когда вы будете готовы к запуску приложения и пошаговому выполнению кода, вы сможете найти все эмуляторы и имитаторы для различных типов устройств в одном раскрывающемся списке на стандартной панели инструментов.
| Подробнее |
|---|
| Общие сведения об универсальной платформе Windows |
| Создание своего первого приложения |
| Разработка приложений для универсальной платформы Windows (UWP) |
Создание приложения для Android, iOS и Windows (C++)

Сначала установите Visual Studio и рабочую нагрузку Разработка мобильных приложений на C++. Затем вы сможете создать приложение Native Activity для Android, Windows или iOS. Одно и то же решение можно ориентировать на устройства Android, iOS и Windows, а затем наладить совместное использование кода между ними с помощью общей кроссплатформенной статической или динамической библиотеки.
Если вам нужно создать приложение для Android, требующее сложных операций с графикой (например, игру), можно воспользоваться C++. Начните с проекта Native Activity (Android). В этом проекте реализована полная поддержка цепочки инструментов Clang.

Для запуска готового приложения и оценки его интерфейса воспользуйтесь Android Emulator. Это быстрый, надежный и простой в установке и настройке инструмент.
Вы можете создавать приложения, ориентированные на весь спектр устройств под управлением Windows 10, с помощью C++ и шаблона проекта приложения универсальной платформы Windows (UWP). Дополнительные сведения см. в разделе Целевые устройства Windows 10 ранее в этой статье.
С помощью статической или динамической общей библиотеки вы сможете совместно использовать код С++ между устройствами Android, iOS и Windows.

Эту библиотеку можно использовать в проекте Windows, iOS или Android, как описано ранее в этой статье. Также ее можно использовать в приложении, созданном с помощью Xamarin, Java или любого другого языка, который позволяет вызывать функции в неуправляемой библиотеке DLL.
При написании кода в этих библиотеках можно использовать IntelliSense для просмотра собственных API платформ Android и Windows. Эти проекты библиотек полностью интегрированы с отладчиком Visual Studio, чтобы можно было задать точки останова. Пошаговые инструкции по коду, поиску и устранению проблем с помощью всех расширенных функций отладчика.
| Подробнее |
|---|
| Загрузка Visual Studio (VisualStudio.com) |
| Установка Visual C++ для разработки кроссплатформенных мобильных приложений на языке C++ |
| Дополнительные сведения об использовании C++ для настройки для нескольких платформ (VisualStudio.com) |
| Установка нужных компонентов и создание нативного приложения С++ для Android |
| Дополнительные сведения о совместном использовании кода C++ с приложениями Android и Windows (VisualStudio.com) |
| Примеры разработки кроссплатформенных мобильных приложений для C++ |
Создание кросс-платформенной игры для устройств Android, iOS и Windows с использованием инструментов Visual Studio для Unity
Инструменты Visual Studio для Unity представляют собой бесплатное расширение Visual Studio, которое интегрирует мощные функции редактирования кода, повышения продуктивности и средства отладки в составе Visual Studio с Unity, популярной кроссплатформенной системой и средой разработки для игр и мощных графических приложений на платформах Windows, iOS, Android и других платформах, включая веб-приложения.

Средства Visual Studio для Unity (VSTU) позволяют использовать Visual Studio для создания сценариев игр и редакторов на языке C#, а затем использовать его мощный отладчик для поиска и исправления ошибок. В последнем выпуске VSTU реализована поддержка Unity 2019.4, включена цветовая маркировка синтаксиса для языка шейдера ShaderLab системы Unity, усовершенствована синхронизация с Unity, добавлены дополнительные функции отладки и улучшены механизмы создания кода благодаря использованию мастера MonoBehavior. VSTU также объединяет файлы проекта Unity, сообщения консоли и возможность запускать игру в Visual Studio, чтобы тратить меньше времени на переключение в редактор Unity Editor и из него при написании кода.
| Подробнее |
|---|
| Дополнительные сведения о построении игр Unity с помощью Visual Studio |
| Подробнее об инструментах Visual Studio для Unity |
| Начало работы с инструментами Visual Studio для Unity |
| Читать о последних возможностях Visual Studio Tools для предварительной версии Unity 2.0 (блог Visual Studio) |
| Смотреть видео с введением в Visual Studio Tools для предварительной версии Unity 2.0 (видео) |
| Сведения о Unity (веб-сайт Unity) |
См. также
- Добро пожаловать в программу разработчиков Microsoft 365
- Службы приложений Azure — мобильные приложения
- Центр приложений Visual Studio
На каких языках программирования пишут мобильные игры

Изначально видеоигры создавались для персональных компьютеров, простых консолей, со временем мобильные версии стали приоритетом разработчиков. Далее расскажем, на каком языке пишут игры для мобильных устройств и рассмотрим популярные варианты.
На каком языке пишут мобильные игры
За историю развития программирования человечество создало более 700 самостоятельных и уникальных языков программирования: от реально используемых, до разработанных «for fun». Учитывая вариации (форки) каждого языка, можно насчитать до 10 000 ЯП, многие из которых не получили широкого распространения.
Рассматривая вопрос, на каком языке пишут игры для Android чаще всего, нельзя игнорировать тройку лидеров:
Выбор конкретного языка зависит от квалификации разработчика и потребностей проекта. C++ – удел опытных программистов, поскольку считается одним из наиболее сложных в освоении. Он универсален, демонстрирует быструю работу, активно поддерживается сообществом программистов, поэтому востребован специалистами.
Разработка C# учитывала недостатки предшественников: C++, Delphi, Modula, Smalltalk. Язык отлично подходит движку Unity, предлагающему набор необходимых инструментов и готовые пресеты для создания игры без глубоких знаний программирования.
Java легко освоить при наличии базовых знаний о принципах программирования и функционирования ЯП. Язык изначально лишен привязки к определенной платформе, по данной причине считается универсальным. Но некоторые движки (например, Unity) не работают с Java по причине несовместимости.
Важную роль выполняет вышеупомянутый движок – набор центральных компонентов игры (физики, механики, трехмерной графики), используемый для разработки уникальных продуктов. Использование готового движка экономит время, оставляя свободу действий в ключе расширения возможностей. Например, в середине 90-х годов Quake engine (от одноименной игры) использовали для разработки HeXen II, Laser Arena, X-Men: The Ravages of Apocalypse, некоторых других видеоигр.
Выделяют три популярных движка:
- Unity. Инди-разработчики и крупные студии создали тысячи игр с помощью данного движка. Вы получаете визуальную среду разработки, модульную систему элементов, кроссплатформенность.
- Unreal Engine. Движок от Epic Games поддерживает разработку на C++, предоставляется бесплатно. Если за квартал продукт принесет более 3000$ прибыли, издатель обязан выплатить роялти – 5% дохода. Инди-разработчики часто используют данный движок, особенно при создании тестовых версий.
- Frostbite Engine. Для разработки под iOS/Android компания EA Digital Illusions CE создала версию Go. Движок имеет большой выбор функций, инструментов, его главная фишка – разрушаемость объектов и окружающего ландшафта.
Выбор движка зависит от ваших знаний программирования. Уточните, на каком языке пишут в Unreal Engine и других вариантах ПО. Например, UE поддерживает разработку на C++, а Unity – C#, писать на других языках не получится.
Наиболее популярные языки для создания игр в GameDev
Написание функционального, эффективного игрового кода требует знания нескольких языков. Начинать однозначно стоит с HTML, CSS, JavaScript – осваивайте теорию, пробуйте создавать полноценные проекты. Осуществлять разработку серверной части помогают знания баз данных, объектно-ориентированного программирования.
Каждое направление разработки имеет свои ЯП:
- backend (разработка функциональной части ПО) – Java, PHP, Python, C#;
- frontend (интерфейс, прочие видимые части игры) – CSS, HTML, JavaScript, дополнительно изучают фреймворки React, Angular, Vue.
Программисты-универсалы ценятся, но востребованы и просто frontend-разработчики. Языки имеют различия по платформе: на Android следует учить Java, Kotlin, для iOS достаточно знания Swift.
В чём отличие языков для создания игр: основные факторы
Выбор языка программирования для новичка – нелегкая задача (вспомните о количестве существующих ЯП). Подойти к процессу следует максимально рассудительно, рассмотрев основные отличия:
- возможность синхронизации – редкий проект пишется на одном языке. Часто разработчик использует разные ЯП, например, использует для обработки информации C, создает логику на Java, frontend прорабатывает на JavaScript;
- оптимизация – некоторые языки самостоятельно собирают мусор в коде, другие требуют участия программиста для успешного результата;
- платформа – для Apple – Objective-C (в прошлом) и Swift (в настоящем), для Android – Java, Cotlin, Python и некоторые другие. При наличии планов работать лишь с одной платформой, не стоит распыляться на неподходящие языки.
Запомните, что каждый язык имеет свою цель, архитектуру, типизацию, классовость. Скажем, написать игру на PHP если и получится, то с ужасными результатами, ведь это язык веб-программирования. Сравнивайте, изучайте, анализируйте – скрупулезная подготовка помогает продуктивно работать в будущем.
Какой язык выбрать для разработки игры высокого качества
Абзацем ранее мы выяснили отсутствие универсального языка, способного решить любую задачу – это сложно реализовать. Выбор делают, исходя из поставленных целей, приоритетного жанра, платформы разработки, ряда иных факторов, мы сосредоточимся на языках для мобильного ПО.
Это динамично развивающаяся отрасль геймдева за счет доступности смартфонов и планшетов – пользователи могут играть в любое время. Индустрия представлена онлайн- и оффлайн-играми, продуктами различных жанров и масштабов, особенно популярны инди-игры с необычными концепциями.
Несмотря на визуальную простоту, длительность и сложность цикла разработки мобильных игр имеет минимум отличий от других платформ. Даже на простенькую аркаду, доведенную до абсолюта, тратится минимум полгода. Игры уровня Manor Matters, имеющие разветвленный сюжет, качественную графику, насыщенную геймплейную часть, разрабатываются годами.
Зачастую мобильные проекты собираются из C# и JavaScript, идеально работающих вместе. Спарка позволяет проектировать разнообразные жанры: головоломки, платформеры, аркады, полноценные RPG, шутеры. Выбор C# объясняют преимущества:
- широкий функционал, решающий большинство задач;
- понятная структура синтаксиса, упрощающая освоение языка;
- совместимость с движком Unity (хитом мобильного геймдева);
- наличие базовых библиотек, предзагруженных в базу.
С C# программист может создавать игры, облачные сервисы, веб-дополнения, многое другое. Среди наиболее известных мобильных тайтлов, написанных на данном языке, присутствуют Pokemon GO, Temple Run, Beholder. Особенно популярен язык у инди-разработчиков, ведь часто изучается в учебных заведениях и делает разработку бесплатной.
Где учиться программированию в геймдеве
Программирование – сложная сфера, которую можно освоить самостоятельно, но без посторонней поддержки процесс может затянуться. Есть два основных пути обучения:
- Курсы. Онлайн-сервисы и IT-школы постоянно объявляют набор в образовательные группы, которые обучают отдельным отраслям программирования. Обычно курсы ориентированы на практическую отработку полученной теории и предполагают, что ученики выпустят первый игровой продукт (хотя бы рабочий прототип) для мобильной платформы к концу обучения. В среднем курс занимает 4–6 месяцев, за которые человек получает нужные знания и навыки.
- Университеты. Высшие учебные заведения не обучают конкретно программированию для геймдева. Многие технические специальности уделяют время изучению данного предмета. Обычно специальность называется «Информационные системы и технологии», но также встречаются названия, связанные с прикладной информатикой и другими специфическими терминами.
Отрасль мобильного геймдева требует постоянного развития сотрудника. Берите дополнительные курсы, читайте литературу, штурмуйте специализированные сайты. Не помешает разбираться в визуальных эффектах, игровой концепции, основах моделирования, даже юриспруденции (особенно важно для инди-разработчиков). Множество популярных игр написано небольшими командами программистов-универсалов.
Каждый язык программирования индивидуален, делайте выбор на основе поставленных целей и задач. Рекомендуем начать с базового языка (Java или C++), позволяющего в дальнейшем перейти к другим ЯП с четким пониманием структуры и принципов написания программного обеспечения.
Начало разработки под Android
Разработка игр для устройств с Android OS требует подхода, схожего с разработкой под iOS. С другой стороны, аппаратное обеспечение Android-устройств не подчиняется чётким стандартам, что заставляет решать вопросы, которые отсутствуют при работе с iOS. Также присутствуют различия между версиями Unity для Android и iOS.
Подготовка среды разработки для Android
Прежде чем вы сможете протестировать свои игры на устройстве, вам нужно будет подготовить среду разработки. В частности — скачать и установить Android SDK нужной платформы и добавить ваше устройство в систему (этот процесс отличается для Windows и Mac). Об этом подробно написано на сайте Android-разработчиков, а также дополнительную информацию может предоставлять производитель вашего устройства. Так как это достаточно сложный процесс, мы приготовили небольшую инструкцию которая поможет вам подготовить всё необходимое для разработки. Если вам понадобится больше информации, вы сможете получить её на портале Android-разработчиков.
Доступ к функциям Android
Unity предоставляет API для доступа к средствам ввода и настройкам Android. Доступные классы задокументированы на странице Написание кода для Android сборок.
Привязка C, C++ или Java кода к скриптам
Unity позволяет вызывать функции, написанные на C/C++, непосредственно из скриптов (Java-функции могут быть вызваны непрямым способом). Чтобы узнать как из Unity получать доступ к функциям из нативного кода, посетите страницу о сборке плагинов для Android.
Occlusion Culling (отсечение невидимой геометрии)
Unity предоставляет поддержку occlusion culling, что очень полезно при оптимизации для мобильных платформ. Больше информации можно найти на странице Occlusion culling.
Настройка начальной заставки
Заставка, отображаемая при запуске игры, может быть настроена — см. эту страницу для дополнительной информации.
Решение проблем и сообщения об ошибках
Существует множество причин, из-за которых ваше приложение вылетает или не работает должным образом. Наше руководство по решению специфических для Android проблем поможет вам разобраться с причинами ошибок в кратчайшие сроки. Если после прочтения руководства вы предполагаете, что проблема именно в Unity — вам следует составить сообщение об ошибке. Обратитесь к этой странице за инструкциями.
Как Unity для Android отличается от версии для настольных компьютеров
JavaScript со строгой типизацией
Для улучшения производительности в Android-версии Unity динамическая типизация в JavaScript всегда отключена (как если бы к каждому скрипту автоматически применялась #pragma strict). Это важно помнить, если вы переносите на Android проект со старших платформ, и если вы столкнётесь с ошибками компиляции — проблему стоит искать в первую очередь в типизации. С такими ошибками обычно легко справиться, убедившись что типы всех переменных явно указаны или приведёны при инициализации.
ETC — рекомендуемый способ сжатия текстур
Хоть Unity Android и поддерживает DXT/PVRTC/ATC текстуры, Unity распакует текстуры в формат RGB(A) при выполнении, если эти методы сжатия на поддерживаются на конкретном устройстве. Это может серьёзно повлиять на производительность GPU отрисовки, потому рекомендуется использовать формат ETC. Он является фактическим стандартом для Android, и должен поддерживаться всеми современными устройствами. С другой стороны, ETC не поддерживает альфа-канал, и иногда 16-битные RGBA текстуры будут лучшим выбором по критериям качества, размера и скорости рендеринга там, где нужен альфа-канал.
Также возможно создать несколько дистрибутивов игры (apk-файлов) с разными форматами текстур, чтобы Android Market сам предоставлял для каждого устройства наиболее подходящий из дистрибутивов. За подробностями обратитесь к этой странице.
Проигрывание видео.
Видео текстуры (MovieTexture) не поддерживаются на Android, но программно доступно полноэкранное поточное проигрывание. Для дополнительной информации о поддерживаемых форматах файлов и API скриптинга, ознакомьтесь со страницой класса MovieTexture или со страницей поддерживаемых на Android форматах медиа.
Cоздание игры в Android Studio. Плюсы и минусы. История и опыт разработки
Если ты вдруг решил создать игру для Android, да еще и свою первую игру, то с чего же ты начнешь? Год назад, я думал, что Android Studio — это лучшая среда разработки для всех андроид приложений, и сейчас, имея полностью готовое приложение в Google Play, готов поделиться опытом.
4.1K открытий
Когда ты первый раз в GameDev, нужно запастись терпением и изучить как можно больше средств и инструментов для создания своей игры, а также осознать свои возможности и средства. В моем случае средств не было, а возможности. . к слову, Java я изучал вместе с изучением Android Studio. Стоит сказать, что Java — это не первый мой язык. До этого я освоил Си и «плюсы», Python и даже Delphi, сейчас о нем никто и не вспомнит, наверное. В общем, программировать я умею и люблю, а на каком языке строится задача, это уже вопрос посредственный.
Что же предлагает мир для разработки приложений под Android? Да на самом деле очень много предлагает, это и Unity и Unreal Engine и набирающий популярность своей простотой Godot, а так же Cocos2d (правда, он только для 2D приложений).
Конечно, если ты еще новичок, то логично будет начать создание с 2D игр, а потом уже решить для себя, оставаться же на 2D или сделать что-то интересное в объемном 3D пространстве.
Дальше встает выбор, насколько крутой проект делать. Мозг обычно создает идеальные образы, и хочется сделать какой-нибудь Сall of Duty или GTA. Но нужно понимать, что AAA-проекты создаются большой командой разработчиков с огромным опытом за спиной, с многомилионными вложениями в проект, в течение 3-5 лет. А так как ты еще новичок, опыта за спиной ноль, то скорее всего ты сдашься в самом начале пути или заблудишься в этой пучине разработки. Потому проект должен быть максимально простой и давать результат. Тогда я решил, что надо придумать проект, который смогу сделать за месяц. Потом сделать еще проект, и еще, постепенно увеличивая сложность разработки. Так появилась идея создать игру Candy Coloration — раскраску для детей. Но спустя некоторое время идея перескочила на пазлы, которые нужно будет собирать с какой-то целью, а не просто так. Так родилась игра Puzzle of Life. Ссылка на игру ниже, если тебе будет интересно.
Казалось бы, просто пазлы, можно наверное сделать за день или неделю. Я же делал год. Конечно, если бы у меня стояли сроки в месяц, то какой никакой результат я бы реализовал. Но я хотел сделать что-то качественное, да и сам процесс мне очень нравился.
По итогу был написан сюжет, с которым игрок знакомится в процессе прохождения игры.
Были реализованы различные режимы игры: на время, на количество перестановок, совместный, а размер и сложность пазлов стал изменяться от эпизода к эпизоду. Все не торопливо выверено и продуманно.
