Паттерн Состояние в разработке игр

Все мы делаем игры, и во всех наших играх всегда есть состояния. Главное меню, уровень, миниигра, пауза, переход между экранами и многое другое — все это подходит под определение состояния.
Если вы не хотите превратить ваш код в кашу из разбросанных и сильно связанных состояний, паттерн «Состояние» — то, что вам нужно!

Под катом объяснение что же это такое и пример применения в коде игры.




Читать дальше →

Smart Scale для Starling

1
Начав работать со Starling и нацелившись на мобильные платформы я столкнулся с необходимостью поддержки разных разрешений экрана (размеры и соотношения сторон). Попробовав разные варианты решения данной проблемы я написал для себя 4 типа скейлинга, которые покрывают все запросы.

Читать дальше →

BoxMan история разработки

Вот и состоялся релиз моей игры BoxMan. Это мотивационный платформер с элементами пазла. Поиграть можно на сайте спонсора, на конге или ньюграунде .
BoxMan Phoster
Ниже я расскажу о разработке, сроках, торгах и спонсоре.

Читать дальше →

Back to Zombieland – разработка и продажа

Лого
Всем привет.

На днях зарелизилась наша игра Back to Zombieland, о разработке и продаже которой я бы и хотел поделиться в этом посте.

Читать дальше →

Оптимизация местоположения кнопок и спрайтов

Добрый день!

Прошел уже почти год с релиза моей первой флеш-игры. С тех пор я выпустил уже вторую игру, и вот теперь разрабатываю игру для IOS.

При разработке первой игры я очень много времени потратил на оптимизацию расположения кнопок и спрайтов в информационных экранах игры, я имею в виду различные меню и окна типа «Credits» и «Level completed!». Я расскажу, как я оптимизировал свою работу.

Читать дальше →
  • +3

Пишем код в IntelliJ IDEA


Три недели назад открыл для себя эту замечательную иде «IntelliJ IDEA».
Даже странно, что здесь нет постов об этой штуке.

По-моему лучшая иде на которой когда-либо приходилось писать код, тем более as3.
Ни я, ни все знакомые, которые уже ей пользуются, на flash develop больше не вернутся…

  • Хитрая подсветка кода. Лучшая, что вообще видел (в сравнении с fd, fb/eclipse, visual studio, mono).
  • Все нужные быстрые клавиши, которыми и раньше радовал fd. И даже больше, удобнее.
  • Find All Reference на название класса работает (это актуально для fd'шников)
  • При переименовании класса/ перетаскивания из пакета в другой пакет — все import'ы исправятся(это актуально для fd'шников)

Тонны мелких приятностей… диаграммы, интеграция к репозиториям, трекерам и тд и тп…

Читать дальше →

Создание простой игры для Android на AIR. Часть вторая

1
Часть первая

Продолжаем делать нашу «игру». В этой части рассмотрим вибрацию, акселерометр, локальное хранилище. Понадобится исходник из прошлого урока, будем его дорабатывать.

Вибрация.


Сделаем так, чтобы при попадании красного айтема на платформу срабатывала короткая вибрация. Но вот проблема — у AIR нет доступа к API вибрации. На помощь приходит замечательная вещь под названием Native Extension. Native Extension — это средство для взаимодействия ActionScript 3 кода с собственным кодом разработки для платформы, на которой запускается приложение. Для Android — это Java. На этом языке разрабатываются нативные приложения для андроида. Каждое расширение(extension) состоит из двух частей — собственного кода платформы и AS3 кода. Всё это упаковывается в файл с расширением ane, который подключается к проекту. Также расширение имеет идентификатор, который нужно прописать в application.xml. Таким образом Native Extension позволяет получить доступ к API операционной системы через ActionScript 3. Выходит, что нам нужно написать расширение на Java и AS3 код. В случае с вибрацией этого делать не придётся, так как добрые разработчики из Adobe уже написали это расширение. Надо только им воспользоваться.

Читать дальше →

Создание простой игры для Android на AIR. Часть первая

Вместо вступления.


Приветствую всех.
Этот урок был написан в марте 2012. Сейчас я решил опубликовать его на данном ресурсе. Код решил не менять, прошу сильно к нему не придираться(сам бы придрался). Немного доработан сам текст урока и комментарии в коде. Цель урока — не научить делать игры, что в рамках одного урока само по себе невозможно, а продемонстрировать основы работы с мобильным AIR. Почему именно Android, а не ios? Потому что на момент написания урока под рукой был только он. Под ios всё делается практически так же, но есть некоторые отличия, о которых написано в конце второй части урока.
Буду рад любым комментариям, замечаниям, указанием на ошибки.

Немного теории.


Adobe AIR позволяет создавать на ActionScript 3 и MXML для iOS и Android приложения, которые для пользователя ничем не будут отличать от нативных. Их, как и любые нативные приложения, можно распространять через фирменные магазины приложений Apple AppStore и Google Play Store (бывший Android Market). С версии AIR 3.2 появилась поддержка Stage3D. Для работы AIR приложения на Android нужно установить на устройство AIR Runtime, или же при компиляции в captive-runtime среда выполнения вшивается в apk. При этом установка AIR Runtime на девайс не требуется.

При работе с мобильными устройствами стоит учитывать, что разрешения их дисплеев ниже(уже есть и такие, у которых выше), чем у мониторов компьютеров и их физические размеры тоже значительно меньше. Также есть такие понятия, как «физический размер пикселя» и «плотность пикселей», поэтому нужно уделить внимание размеру различных графических элементов(кнопок, персонажей игры и т.д.). В общем, это целая наука и мы не будем останавливаться на ней подробно.
Метод ввода — сенсорный дисплей. Для обработки сенсорного ввода существует специальное событие TouchEvent, хотя и события мыши обрабатываются корректно. Также есть другие особенности, о которых я расскажу в ходе урока.

Читать дальше →

Пишем приложение AIR под iOS: работаем с касаниями и акселерометром.

flash ios adobe airВ этом несложном уроке я покажу работу flash.ui.Multitouch и flash.sensors.Accelerometer на примере тестового приложения Air для iOS.
 

Читать дальше →

Релиз: Изометрический редактор карт 1.0.0

1

Здравствуйте! В ходе работы над игрой написал средней сложности редактор карт, на основе движка as3isolib. Изометрический редактор хоть и не идеальный, но вполне работоспособный.

Загрузить последний стабильный билд и исходники вы можете по ссылке:
mapeditor.zip

Также еще один хелпер для настройки смещения тайла, совсем простой, но иногда без него просто никак:
TILE_OFFSET.zip
Читать дальше →