Пример разработки простых казуальных игр для Windows 8

в 19:53, , рубрики: .net, windows, Windows 8, казуальные игры, метки: ,

Казуальные игры

image
Чтобы поучаствовать в конкурсе приложений для Windows 8 я решил выбрать в качестве темы для приложений казуальные игры. Во-первых, это всегда интересно самому разработать небольшую игру, во-вторых, времени на разработку чего-то большого просто не было. В данной статье я кратко хочу рассказать о своём первом опыте разработки для Windows 8 и поделиться впечатлениями.

Идеи игр

В общей сложности у меня было задумано 5 игр. Решено было их писать на C# + XAML, поскольку я уже был знаком с Silverlight (MCP по SL4) и разработкой под Windows Phone 7. Итак, вот что я решил реализовать:

  • Игра флип-флоп (такая игра у меня была написана для WP7)
  • Игра для дочери 2-х лет, в которой надо угадывать форму или цвет фигуры
  • Игра, в которой надо подбирать на глаз «ключ» для личинки замка
  • Игра, в которой надо по виду лабиринта оценить сколько нужно нити чтобы его пройти
  • Игра, в которой надо быстро помещать шарик в правильную дырку

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

Немного о реализации

Во всех играх я использовал Grid для размещения элементов. Для тех игр, где нужен был Drag&Drop я использовал Canvas. Чтобы разделить визуально элементы по цветам я применил правило радуги — это надёжный и проверенный вариант. Отдельно стоит отметить, что все элементы, которые можно было объявить в XAML я там и объявлял, но для того чтобы получить над ними контроль, например чтобы скрыть или показать, я добавлял эти элементы в коллекции, а в дальнейшем в цикле их обрабатывал. Под конец разработки последней игры я понял, что надо для любого действия над объектами использовать анимацию. Тут, кстати, был сюрприз при портировании кода из WP7: в Windows 8 есть анимация, которая называется зависимой и должна быть явно объявлена таковой. К данному типу, например, относится анимация размеров UIElement-ов. Ещё одно хорошее правило — игра начинает выглядеть гораздо привлекательнее, если настроить градиенты и прозрачность визуальных элементов. Тут меня поджидал ещё один сюрприз: почему-то среди доступных кистей не нашлось места для RadialGradientBrush. Поэтому шарики у меня получились плоскими. Приложения локализовать на английский я пока не стал, решил сделать это в очередном обновлении. В целом, разработка для Windows 8 весьма приятна, Visual Studio 2012 вела себя хорошо. Проект я хранил в облачном TFS на tfspreview.com.

Одновременная разработка для win8 и wp7

Портирование игры с WP7 на Windows 8 и в обратную сторону проходит довольно легко, если не применять локальное хранилище в телефоне на Linq2sql. Windows 8 ещё больше ушла в сторону потребления контента, поэтому создать приложение с локальной БД на SQL CE уже не получится. С другой стороны, в Windows 8 есть более тесная интеграция с облаком Microsoft, что позволяет, например, передавать настройки между устройствами прозрачным образом.
Самой очевидной проблемой при портировании приложений является проблема несоответствия размеров экрана. На телефоне всё очень компактно, а в Windows 8 остаётся слишком много свободного места. С другой стороны, XAML довольно гибко позволяет настроить интерфейс для работы в разных разрешениях.

Windows Store

Сроки сертификации приложений перед выходом Windows 8, разумеется увеличились. Первое моё приложение было проверено за 7 дней (как и написано в панели мониторинга), пятое проверяли 11 дней. Публикация в магазине выполняется практически сразу после проверки, в отличие от WP7-приложений, которые становятся доступны только через сутки после сертификации. WP7-приложение, кстати, проверяли 14 дней.

Ссылки на приложения

Вот список приложений, которые я разработал. Они все бесплатные.
1. SimSimGame (флип-флоп)
apps.microsoft.com/webpdp/ru-RU/app/simsimgame/4d404c1d-b360-45eb-bd3b-d54342835b6e
2. Match4Kids (выбери правильную фигуру)
Windows 8: apps.microsoft.com/webpdp/ru-RU/app/match4kids/ea9772aa-33cf-4144-9aa6-5c08feddc4cc
WP7: www.windowsphone.com/ru-ru/store/app/match4kids/10ef27b9-3fe1-493d-82ed-7f89fc4bbd84
3. Keyhole (подбери ключ для замка)
apps.microsoft.com/webpdp/ru-RU/app/keyhole/7d45ed87-3618-4216-93a5-18b7e9c1aa2b
4. Thread4Maze (нить для лабиринта)
apps.microsoft.com/webpdp/ru-RU/app/thread4maze/b5ba4f9a-0a38-4fd0-9b02-486cb9c5f545
5. Balls2Holes (перемещение шариков на скорость)
apps.microsoft.com/webpdp/ru-RU/app/balls2holes/76c8f7e0-cc9f-4e87-b06d-a9f88e72c930
Я с радостью выслушаю конструктивную критику и постараюсь доработать приложения, чтобы они стали лучше.

Автор: bratchikov

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js