Twisted Pixels - дневник разработчика мобильной игры
Меня зовут Норм Сол, я работаю в команде Windows Mobile Developer Experience. Когда-то я работал в компании по разработке игр, в те далёкие времена, когда компьютеры были такие же мощные, как мобильник у меня в кармане. Многие проблемы, с которыми мы боролись в те дни, очень похожи на то, с чем мы имеем дело сейчас на мобильных устройствах. Но одно очень большое отличие по сравнению с теми временами заключается в том, что возможности, которые есть на мобильных устройствах, гораздо круче чем то, что было тогда на компьютерах. WiFi, GPS, акселерометры, сенсорные экраны и столько разнообразных возможностей, что сложно выбрать, с чего же начать.
Мне сложно противостоять желанию поразвлечься с новыми технологиями, хотя я даже не уверен, что я буду делать со всеми этими наворотами. Таким образом, я собираюсь начать с экспериментов и посмотреть, насколько производительны различные устройства, какую производительность (графика, ввод, аудио и т.д.) я могу от них ожидать. Эта информация поможет мне (и, надеюсь, вам) определиться, какого типа игру можно успешно разработать на платформе Windows Mobile. Я планирую писать новые статьи примерно раз в неделю в ближайшем будущем.
День первый: готовимся к разработке для Windows Mobile
С чего начать?
Можно с уверенностью сказать, что для Windows Mobile 6 существует наибольшее количество вариантов по сравнению с любой другой платформой. WM существует на рынке достаточно долгое время и Майкрософт успела организовать большое число API и инструментов для поддержки платформы. Это хорошо - неважно, какой стиль программирования вы предпочитаете, с большой вероятностью он поддерживается на WM. Однако, одновременно с этим можно легко запутаться, если вы только пытаетесь определиться, с чего начать разработку приложения.
Варианты таковы:
• Разработка на основе веб-браузера с использованием Flash или Silverlight. Этот вариант слабо поддерживается в существующих мобильных браузерах, поэтому решение не самое лучшее.
• Управляемый код с использованием .NET языков и Compact Framework библиотек.
• Native-код с использованием C++ и native-библиотек.
Лежачий полицейский: не все native-библиотеки имеют эквиваленты в .NET. Это означает, что автор приложения на .NET будет вынужден использовать потенциально небезопасные методы интеграции native-библиотек в управляемое приложение, если возникнет необходимость их использования.
Также существуют различные версии WM6 - Standard и Professonal. Основное различие заключается в том, что устройства на базе WM6 Pro имеют сенсорный экран и обычно больше функций. Логично ожидать, что производительность таких устройств будет выше, чем у устройств без сенсорного экрана на базе WM6 Std, поэтому я сконцентрируюсь именно на таких устройствах.
На текущий момент я не уверен, какую платформу выбрать - управляемый или native код. Я предпочитаю программировать на C#, но возможно мне потребуется повышенная производительность и API, которые есть только в C++. К счастью я смогу использовать одинаковые инструменты для разработки, так что не придётся выбирать ещё и IDE.
Подготовка
В прошлом для получения информации мы в первую очередь обращались к официальной документации в MSDN, но всё меняется. На текущий момент официальной отправной точкой является Windows Mobile Developer Portal. Однако, я предпочитаю другой сайт - Windows Mobile Developer Center, хотя мне и говорят, что оба этих сайта будут интегрированы в ближайшие месяцы. На сайте есть веб-касты, видео и (конечно) этот блог.
Первым делом мне было необходимо настроить среду разработки, так что я отправился искать информацию, с чего начинать. У меня уже была установлена Visual Studio 2008 и я надеялся, что смогу её использовать.
Настройка
Лежачий полицейский: В отличие от документации в MSDN (Windows Mobile 6 Documentation), которая охватывает только VS2005, информацию о VS2008, которую я нашёл в Developer Center была в виде видео. Отличный пример можно посмотреть здесь: https://code.msdn.microsoft.com/WM6YourFirstApp.
Несмотря на то, что видео актуальные и вообще замечательные, просмотр ролика отнимает больше времени, чем чтение статьи (и содержание ролика не найти через поиск), так что я обобщу информацию здесь:
1. Установите VS 2008. SDK работает только со Standard и Professional редакциями, так что Express не подойдёт. Существует 90-дневная пробная версия, которую можно скачать бесплатно здесь: Try Visual Studio 2008 - Trial Software.
2. Установите Visual Studio 2008 Service Pack 1 и .NET Framework 3.5 Service Pack 1. Возможно, что на момент чтения будут доступны другие пакеты обновлений. Информацию о самых свежих пакетах можно получить на этой странице: Visual Studio 2008 Development System.
3. Скачайте Windows Mobile 6 SDK со следующей страницы: Mobile 6 Professional and Standard Software Development Kits Refresh. Я установил оба, хотя и собираюсь пока поддерживать только Professional. Никогда не знаешь, когда соберёшься передумать!
Примечание: если вы установили SDK до VS2008, вам придётся их удалить и установить повторно после установки VS2008.
Тестовое приложение
Чтобы убедиться в том, что Visual Studio и SDK установлены корректно, стоит создать простое тестовое приложение. Я создал пустой С++ проект следующим способом:
1. На стартовой странице Visual Studio 2008 в верхнем левом углу есть блок под названием "Recent Projects". В нижней части этого блока находится ссылка Create Project, воспользуйтесь ею.
2. В открывшемся диалоге выберите "Visual C++", затем "Smart Device" в списке типов проектов. В результате должны загрузиться необходимые шаблоны.
3. Выберите Win32 Smart Device Project и введите имя проекта. "Test" вполне подойдёт. Нажмите ОК.
4. В открывшемся диалоге всё настроено на Windows Mobile 5.0, которым мы не собираемся пользоваться, поэтому нажимаем кнопку Next.
5. Удалим из открывшегося списка Windows Mobile 5.0 SDK, затем добавим Windows Mobile6 Professional SDK и Windows Mobile Standard SDK. Вновь нажимаем Next.
6. В настройках проекта выбираем Windows application и нажимаем Finish. В результате Visual Studio создаст новый проект с базовыми файлами и с именем "Test".
Далее, необходимо удостовериться в том, что в верхнем левом тулбаре в выпадающем списке выбран "Windows Mobile 6 Professional Emulator". Теперь соберём приложение (Ctrl-Shift-B) и начнём отладку (F5).
В открывшемся эмуляторе практически мгновенно загружается приложение (с белым экраном).
Отлично, это было очень просто и всё работает! Если бы я захотел воспользоваться другой версией Windows Mobile, достаточно просто сменить эмулятор в выпадающем списке. Пока всё логично и понятно.
В следующей части будем работать с графикой!
Автор перевода: Андрей Коновалов