вторник, 11 декабря 2012 г.

Flash GAMM Kyiv 2012 – Официальный отчет

“Как же круто на Flash GAMM-e!” – эта фраза преследовала участников все мероприятие и четко отражала его атмосферу.
Конференцию посетило более 800 человек, что является нашим новым рекордом.
Программа конференция была замечательной, а на многих докладах был настоящий аншлаг.
Хотелось бы выделить выступления Rovio, Adobe, AlternativaPlatform, Away3D, Spil Games, ToonBox и конечно же Гейм-линч, который был веселым и интересным.
Слайды и видео докладов в скором времени появятся у нас на сайте.
Подписывайтесь на наш канал youtube, twitter, facebook, vk, чтобы не пропустить обновления!
На “Стене вакансий” красовалось более 120 вакансий, а качество игр на Speed Game Dating значительно улучшилось.
На церемонии награждения были вручены грамоты и ценные призы всем победителям Конкурса Игр Flash GAMM, на который было прислано 95 работ.
Мы еще раз поздравляем победителей:

“Лучшая игра (категория компания)”
Vizor Interactive
Игра: Клондайк

“Лучшая игра (категория студия)”
NSBrotherhood
Игра: Lazerman

“Лучшая игра (категория инди)”
Alexey Abramenko
Игра: Intrusion 2

“Лучшая социальная игра”
Rocket Jump
Игра: Осада!


“Лучшая мобильная игра”
Yan Paltin and Iris Weissman
Игра: Ninja Chicken Ooga Booga

“Игра прорыв!”
spyker and Ahura
Игра: Dino Trek

“Лучшая будущая мобильная игра по версии G5”
Room 8
Игра: Cyto

“Лучший геймплей”
Rocket Jump
Игра: Осада!

“Лучшая игра для детей”
Vadim Pecherskiy
Игра: 3 Pandas

“Самый хулиганский разработчик”
playspal.com
Игра: Lost probe

“Самая креативная игра”
FlashRush Games
Игра: Transmorpher

“Приз зрительских симпатий”
Антон Карлов и Александр Ахура
Игра: Zombotron 2

“Будущий хит”
Mandragora
Игра: Knitted deer

“Женский выбор”
HeroCraft
Игра: Мяч и Магия: Волшебный Арканоид

“Самая стойкая игра”
FlashRush Games
Игра: Transmorpher

“Игра с лучшим текстом”
Artibus
Игра: Angry Heroes

“Лучшая графика”
Pegas Games
Игра: Pheus and Mor

“Самая многообещающая игра для GameCastContest 2012”
Alexander Sinelnikov
Игра: Jelly Cannon
Организаторы еще раз благодарят всех спонсоров, докладчиков и участников за то что из года в год поддерживаете нашу конференцию!
Мы растем и развиваемся благодаря только вам!
Спасибо вам большое!
Уезжайте от нас еще!
Всегда ваша,
Flash GAMM Team
Читать дальше: Flash GAMM Kyiv 2012 – Официальный отчет:

воскресенье, 7 октября 2012 г.

Инструкция начинающего разработчика игр

Голая бабаВ данной инструкции я попытался осветить основные моменты разработки игр. Инструкция будет полезна для людей, собирающихся заняться разработкой игр в роле лидера (главного разработчика и организатора).

Хочу отметить, что игры бывают разные – большие и маленькие, сложные и лёгкие, и поэтому для каждой игры эта инструкция верна в какой-то своей определённой степени. Охватить всё не удалось, но передать общие моменты, думаю, получилось [...]

Читать дальше: Инструкция начинающего разработчика игр

четверг, 31 мая 2012 г.

Мантры о системах частиц - Particle systems in Flash

Мгновение, застывшее во времени!

Ниже вы можете ознакомиться с несколькими статьями о создании системы частиц для Flash. Эти статьи я уже выкладывал в сеть и довольно давно, потом они пропали и вот, я решил сдуть с них пыль и вернуть на место. 

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

Приятного ознакомления с материалом. :)

PS: Извиняюсь, за мудацкий способ встраивания флешек в текст этой статьи. Но бесплатный sites.google, где я храню SWF файлы, напрочь отказывается предоставлять к флешкам доступ без этой дурацкой процедуры с кликом по ссылке.

PPS: Оказалось пользователям Internet Explorer повезло еще меньше :) Если у вас белые окошечки вместо флешек, то пока вариант только один: качните архив по ссылке и внутри найдете swf файлик, который можно посмотреть локально на компе.

Читать дальше: Мантры о системах частиц - Particle systems in Flash

понедельник, 28 мая 2012 г.

Факторы успешности современных мобильных игр

Tiny wings, angry birds, cut the rope На FlashGAMM 2012 Алексей Тарасенко, игровой дизайнер Zeptolab, рассказывал о том, как сделать успешную мобильную игру.
Организаторы конференции выложили этот и другие доклады на своем сайте.  Можно скачать и ознакомиться. А я хочу просто выписать здесь основные тезисы.

Факторы успешности современных мобильных игр:

  1. Простота игровой механики
  2. Ориентация на широкую аудиторию игроков
  3. Интуитивное управление
  4. Короткая игровая сессия
  5. Облик главного героя
  6. Неожиданный, оригинальный игровой сеттинг
  7. Юмор
  8. Разнообразие геймплея
  9. Поддержка и развитие игры апдейтами
  10. «Отшлифованность» игры
  11. Маркетинговый подход
Читать дальше: Факторы успешности современных мобильных игр

пятница, 4 мая 2012 г.

Компонент для работы с растровыми шрифтами

Продолжая работу над портом движка Flixel на Haxe, столкнулся с необходимостью оптимизации работы с текстом. Проблема заключается в следующем: стандартный класс движка FlxText сильно завязан на использование метода draw(), и при обновлении текста создается новый экземпляр класса BitmapData, еще одним недостатком является то, что для каждого такого текстового объекта создается свой экземпляр класса TileSheet (если в качестве целевой платформы установлен c++, neko или android). В общем видно, что такая реализация класса для отображения текста довольно неудачна и нужно искать другие решения. И тут на сцену выходят растровые шрифты -- каждый символ такого шрифта представляет собой по-сути простое изображение и работать с ними можно точно также, как и с обыкновенными изображениями. В наборе классов Flixel Power Tools как раз есть такой класс FlxBitmapFont и я его уже давно портировал, но в нем также присутствует довольно раздражающее меня ограничение -- он поддерживает только моноширинные шрифты (все символы таких шрифтов должны иметь одинаковую ширину), а мне же хотелось чего-нибудь более универсального. И недавно мне на глаза попался движок Pixelizer (упоминал его в одном из предыдущих сообщений), в котором очень понравилась реализация такого компонента: в нем уже был такой функционал, как изменение цвета шрифта, обводка и тени, поддержка многострочного текста и др. Встала задача по переводу этого добра на другие рельсы:
  1. Реализация в виде отдельного компонента, не завязанного ни на какой из движков -- такой класс нужен был для того, чтобы наконец-то закончить портирование прелоадера Flixel.
  2. Реализация в виде плагина для Flixel, которую можно использовать непосредственно в играх.
Самая первая версия порта была готова через 1-2 дня, но сразу же вылезли проблемы с производительностью: для отрисовки текста использовался метод draw(), позволяющий задавать тексту цветовую трансформацию и прочие параметры. Нужно было искать другой способ отрисовки. Подумав немного и посмотрев на реализацию спрайтов в Flixel, пришел к следующему решению: на входе имеем набор растровых изображений, представляющих собой исходные изображения символов растрового шрифта, а для того, чтобы отображать масштабированный и "окрашенный" текст создается дополнительный массив трансформированных изображений символов, таким образом, мы можем использовать уже гораздо быстрый метод copyPixels() (после такого преобразования нагрузка на процессор при отрисовке текста снизилась в 2-4 раза).
Завершив с оптимизацией, я приступил к реализации дополнительных "фишек":
  • настройка размера шрифта
  • настройка расстояний как между символами, так и между строками текста
  • настройка переноса слов
На это ушло еще несколько дней, скачать и посмотреть что получилось можно со странички репозитория - https://github.com/Beeblerox/BitmapFont [...]
Читать дальше: Компонент для работы с растровыми шрифтами

суббота, 28 апреля 2012 г.

Хочешь сделать хорошо — сделай это сам: редактор UnityScript на базе FlashDevelop 4

FlashDevelop 4 + UnityScriptКоротко: я подбил автора FlashDevelop внедрить в его редактор поддержку UnityScript и оказал посильную помощь в адаптации. Рабочий билд можно скачать здесь. А теперь подробно: кто-то, возможно, читал мой предыдущий пост где я изучал доступные редакторы для UnityScript и пришел к выводу, что все как-то кривовато и хочется большего. Опуская текст предыдущей статьи, могу сказать, что наилучшие результаты показал некий UnityDevelop — билд FlashDevelop старинной версии 2.0, который был адаптирован под Unity-версию javascript'а. Оно и не удивительно, ведь по своей сути UnityScript — это просто-таки близнец ActionScript'a. В целом — IDE выглядела неплохо, но хотелось, конечно же, — большего. И тогда я пошел к разработчикам FlashDevelop на форум… Один из разработчиков (Philippe) откликнулся и заинтересовался. И работа пошла. Буквально за неделю мы с ним собрали работающий билд с поддержкой UnityScript. Конечно что касается кода — по большей степени сделал все он (за что ему огромное спасибо). Я больше направлял :)


Читать дальше: Хочешь сделать хорошо — сделай это сам: редактор UnityScript на базе FlashDevelop 4

вторник, 17 апреля 2012 г.

Stripper - утилита для сборки страйпов(strips)

Привет, читатель!

Хочу поделиться с тобой одной самопальной утилиткой, полезной любому, кто часто создает спрайты для игр в 3D редакторах.

Дело в том, что обычно 3D редакторы рендерят каждый кадр анимации объекта в отдельное изображение и ручная компоновка этих изображений в одну длинную полосочку-раскадровку - есть процесс мучительный и долгий. Предлагаемая утилита сама переберет все изображения и сформирует страйп (strip).


Stripper - утилита для сборки страйпов(strips)

Читать дальше: Stripper - утилита для сборки страйпов(strips)

вторник, 10 апреля 2012 г.

Геймдизайнерам об игроках или как программировать игроков?

Вступление 1.

Много думал и анализировал информацию на тему разработки игр. И чтобы не потерять, а так же поделиться с людьми, получить подсказки, советы и комментарии — решил оформить и выложить статью. На сегодняшний день “геймдизайн” все больше обретает очертания некой науки, требующей особого подхода и изучения. К сожалению, в общем доступе находится очень мало структурированной информации. Что касается иностранных авторов, имеющих большой опыт и ряд успешных проектов — зачастую их труды так и не попадают на прилавки отечественных магазинов. А изучить их в оригинале многим мешает языковой барьер. В данной ситуации спасением служат статьи, где люди делятся впечатлениям и личным опытом по разработке игр. Эти статьи не только и не столько доносят до читателей новую информацию, сколько подают ее в новом свете, позволяя более четко осознать и отобразить в жизнь.

Вступление 2

Хочу отметить, что на написание материала оказало влияние выступление на Sociality Rocks 2011 Henric Suuronen — руководитель студии Wooga, разработчика Bubble Island и других хитов. Особого внимания заслуживает статья Андрея Плахова “Геймдизайнерам о программистах или как программировать программистов”. По аналогии с той статьей возникла мысль, что программировать можно и пользователей тоже. Программировать их модель поведения, чтобы их развлекать и извлекать нужные нам ценности — платежи, удержание в игре, привлечение новых игроков. И одним из инструментов удержания служит набор функций в приложении, который можно условно назвать игровым циклом. Об этом мы и поговорим далее Читать дальше: Геймдизайнерам об игроках или как программировать игроков?

четверг, 5 апреля 2012 г.

Динамическая генерация текстурных атласов

Давно задумываюсь: "А не попытаться ли перевести Flixel на Stage3D?" Сам автор движка обещал, что когда новая версия flash-плеера с аппаратной поддержкой 3D получит достаточно широкое распространение, то он добавит эту фичу. Но новостей от него пока не слышно; тема на форуме фликселя, посвященная планам по разработке новой версии, тоже довольно давно не обновлялась. Поэтому и мысли такие. Кроме того, в сети появилось несколько очень хороших уроков по stage3D, в которых рассматривается использование нового API для разработки двумерных игр. Из них можно вынести очень полезные сведения, связанные с оптимизацией графики:
  • необходимо минимизировать количество вызовов метода drawTriangles(), т.к. он довольно ресурсоемок;
  • также следует использовать как можно меньше текстур, т.к. размеры текстур могут иметь строго определенные значения (64х64, 128х128, 256х256, 512х512, 1024х1024 или 2048х2048). И если в Вашей игре используется множество маленьких изображений, для каждого из которых Вы будете создавать новую текстуру, то видеопамять будет расходоваться нерационально (в каждой такой текстуре будет много "пустого места") и довольно быстро закончится.
 Для решения этих проблем рекомендуется использовать "пакетный рендеринг" (не знаю, правильный ли я использую термин, на английском он пишется batch-rendering), при котором мы за один вызов метода drawTriangles() пытаемся отрисовать все полигоны, использующие одну и ту же текстуру. Для этого нам и понадобится генерация текстурных атласов, вынесенная в заголовок статьи и позволяющая значительно уменьшить количество текстур (о пакетном рендеринге я скорее всего напишу в следующей статье). Суть его в следующем: на входе мы имеем множество мелких изображений, а на выходе -- одно (это в идеале) большое. На русском языке уже есть, по крайней мере, одна статья от flash-сообщества, посвященная этому вопросу -- класс для генерации текстурных атласов, в ней дается исходник класса, использующий рекурсивный метод построения атласа. Данный класс мне показался не слишком понятным, а так хотелось самому разобраться в алгоритме, благо что в статье приведена ссылка на англоязычную статью по данному вопросу, из которой и становится ясен общий принцип.
Читать дальше: Динамическая генерация текстурных атласов

вторник, 3 апреля 2012 г.

Циклы параллельных наград

Grand Prix StoryВ январе подсел на классную игру на iPad2 – Grand Prix Story от Kairosoft. Эти разработчики делают отличные игры про менеджмент. В свое время выстрелили аддиктивной Game Dev Story. Потом еще выпустили несколько проектов, скроенных по той же формуле.
Давно уже хотел поделиться схемой циклов параллельных наград из реальной игры. Те схемы, которые у меня есть – или из устаревших игр, или из игр, в которые никто не играл. Поэтому решил использовать для примера GP Story – игра относительно свежая, и ее легко можно найти в Appstore и Google Play.
Для понимания этой заметки желательно ознакомиться со статьей “Параллельные награды”.

Общая информация

[...]
Читать дальше: Циклы параллельных наград

четверг, 29 марта 2012 г.

Alternativa3D 8 вышла в Open Source!

Друзья, 29 марта 2012 года произошло важное для компании AlternativaPlatform и, надеемся, для многих из вас событие! После шести лет развития в закрытом состоянии графический Flash 3D движок Alternativa3D 8 выходит в Open Source. Исходный код опубликован на портале GitHub. С открытием исходного кода в истории Alternativa3D начинается новый период. Мы рассчитываем, что силами сообщества технология будет развиваться быстрее, а также станет понятнее и доступнее благодаря росту числа учебных и аналитических материалов от разных авторов на разных языках. Публиковать их, кстати, можно в нашей Базе знаний. Со своей стороны мы не прекращаем развитие и поддержку движка, так что идеи и предложения приветствуются — вы всегда можете оставить их на нашем форуме.
Согласно обновленной лицензии, любая организация или частное лицо может свободно использовать технологию в своих целях. При этом размещать в созданных на движке проектах логотипы и иные упоминания об AlternativaPlatform как разработчике Alternativa3D более не требуется. Тем не менее, мы будем признательны за такие упоминания.
Перейти к исходникам
Обсудить на форуме
Читать дальше: Alternativa3D 8 вышла в Open Source!

среда, 28 марта 2012 г.

Flash Player: планы на будущее — много замечательного!

Снова привет!
Сегодня вместе с анонсом premium функционала и релизом Flash Player 11.2 / AIR 11.2, Adobe обновили свои планы на будущее относительно Flash и показали массу отличного функционала который появится в этом году!
Взгляните на переведённый быстрый копипаст из их поста:
Flash Player «Cyril»
После релиза Flash Player 11.2, во второй половине 2012го, Adobe планирует выпустить релиз Flash Player’а под кодовым названием «Cyril».
Некоторые из запланированных нововведений:
  • Поддержка клавиатурного ввода в полноэкранном режиме
  • Улучшенная поддержка аудио для работы с аудио с меньшими задержками
  • Возможность прогрессивной поточной передачи текстур для Stage 3D контента
  • Поддержка LZMA сжатия для ByteArray
  • События для кадров
  • Поддержка сжатия BitmapData в JPEG и PNG форматы
  • Поддержка требований к «песочнице» для Mac OS X App Store приложений
Здорово, не так ли?
Flash Player «Dolores»
Кроме того, вслед за «Cyril», Adobe планирует релиз ещё одной версии Flash Player под кодовым названием «Dolores».
Некоторые из запланированных нововведений:
  • ActionScript workers (позволяет исполнять ActionScript в нескольких параллельных потоках — многопоточность проще говоря)
  • Поддержка продвинутого профайлинга (Telemetry)
  • Расширение поддержки видео карт для Stage3D (начиная с 2005/2006)
  • Увеличение производительности ActionScript при компиляции под Apple iOS
  • API для получения индекса производительности — для получения сведений о производительности текущей среды
  • Событие мыши Release outside
  • ActionScript 3 API для прямого доступа к быстрым опкодам работающим с памятью (те, что используются в Alchemy) прямо из as3 кода! (премиум при использовании вместе со Stage3D)
[...] Читать дальше: Flash Player: планы на будущее — много замечательного!

понедельник, 26 марта 2012 г.

Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий

Заметка в качестве продолжения темы о получении данных из XML.
Для фильтрации XML можно так же использовать регулярные выражения (RegExp) и собственные условия через функции фильтрации (помимо простых сравнений).
Не уверен, что данный синтаксис скушает любая среда разработки (по крайней мере FDT выдает ошибку, хотя синтаксис правильный).
Простой пример. У нас имеется список персонала одного из отделов компании, и нам необходимо узнать, кто из них родился в апреле.

Пример с использованием регулярного выражения: [...]
Читать дальше: Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий

суббота, 24 марта 2012 г.

Фиксим утечки памяти в box2d(2.1a)

Данная тема уже подымалась ранее и там я описал простейший способ обойти этот баг - это пересоздать мир. Теперь хочу описать способ который полностью фиксит этот баг. Заключается он в изменении кода в box2d. Изменений мало, даже очень мало.

Добавим в класс b2Body, функцию Destroy с таким содержанием: [...]
Читать дальше: Фиксим утечки памяти в box2d(2.1a)

Как рассказать про вашу игру

Автор оригинальной статьи — Тим Фрэнсис, журналист английского издания PC Gamer, в свободное время занимающийся разработкой indie-игр

В повседневной жизни я — игрожур, но на досуге я сам пишу одну игру (Gunpoint), она даже вышла в финал Independent Games Festival, я немного горжусь этим (до меня выступал создатель Solipskier, объяснявший, почему всем наплевать на IGF, так что мне стало немного легче). Это моя первая игра, к тому же ещё недописанная, поэтому учить вас программированию мне не по статусу. Вместо этого я хочу поговорить о том, как рассказывать о играх. С этим легко накосячить, особенно когда вы находитесь в контексте игры; но описанию нужно уделять большое внимание, если вы не хотите остаться единственным пользователем. Мне повезло — за восемь лет я натренировался рассказывать о чужих играх, так что со своей всё пошло легче.

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

Сейчас я расскажу, почему на тупиц типичные методы не действуют, а потом объясню (как весьма опытный засранец), как нужно рассказать про игру, чтобы это понял каждый.
Читать дальше: Как рассказать про вашу игру засранцу

пятница, 23 марта 2012 г.

TheMiner и FlashDevelop

В этом руководстве речь пойдёт о TheMiner‘е (отличный Flash профайлер) и о FlashDevelop‘е (лучшая и бесплатная среда разработки для Action Script / haXe), соответственно подразумевается, что вы с ними знакомы и желаете использовать их совместно. Если не знакомы — рекомендую ознакомиться.
Всего есть два пути использования TheMiner во FlashDevelop:
- Используя TheMiner SWC, как любую другую внешнюю библиотеку.
- Добавляя TheMiner SWF в список профайлеров FlashDevelop.
Почему существует два пути? Потому что у каждого есть сови преимущества и недостатки, и, в зависимости от обстановки, тот или иной путь может оказаться наиболее подходящим.
Итак, давайте попробуем оба пути шаг-за-шагом. Пожалуйста запустите FlashDevelop и откройте \ создайте в нём as3 проект чтобы продолжить.

TheMiner в качестве внешней SWC

1. Для начала, купите TheMiner или скачайте бесплатную версию для некоммерческого использования.
2. Распакуйте скачанный архив, зайдите в папку «SWCs» и выберите подходящую версию (в зависимости от требуемого языка), например TheMiner_en.swc [...]
Читать дальше: TheMiner и FlashDevelop

пятница, 9 марта 2012 г.

Упакованный SWF. Как распаковать?

Привет, друзья!
В этом посте я хотел бы рассказать о том, что из себя представляет упакованный SWF и как его можно распаковать динамически и статически.
Итак, что же такое упакованный SWF?
Если Вы никогда ранее его не видели, не поленитесь скачать простой классический пример упакованного SWF:
http://codestage.ru/files/flood/security/packed.swf
Запустив SWF, вы увидите немного текста в левом верхнем углу. Однако, если вы попробуете декомпилировать этот файл, то вы не увидите кода, который этот текст показывает.
Стоит отметить, что если бы в упакованном SWF были ещё какие-нибудь ресурсы (изображения, звуки, шрифты и т.д.), то их вы бы тоже не увидели. Это из-за того, что оригинальный SWF находится внутри того SWF что вы скачали и декомпилировали, и часто в зашифрованном виде.
Обычно все, что вы можете получить из таких SWF с помощью декомпиляторов — это код распаковщика\расшифратора и, возможно, сам зашифрованный SWF в виде набора байт (зависит от того, умеет ли используемый вами декомпилятор отображать тэг DefineBinaryData).
Такая «упаковка» на самом деле достигается с помощью простого Flex тэга [Embed].

Динамическая распаковка (dumping)

Динамическая — значит для распаковки потребуется исполнение SWF во Flash Player’е (далее — FP).
Т.к. FP не умеет проигрывать зашифрованную неведомо как SWF, то логично что перед проигрыванием, SWF должна расшифровываться и загружаться уже в чистом виде (например, с помощью Loader.loadBytes()).
Что более важно, распакованный и расшифрованный SWF будет в памяти все время, пока он исполняется FP’ром.
И это наш шанс достать его!
Существует два основных способа сделать это.
1) Динамическая распаковка с помощью утилит
Используя сторонние или даже самописные утилиты для поиска SWF в памяти процесса FP. Это самый быстрый, самый простой и обычно самый эффективный способ. Но он не вызывает ощущения что вы — тру крякер ;)
Существуют различные платные и бесплатные утилиты для этих целей.
Одна из наиболее продвинутых — это SWF Revealer, бесплатная утилита для владельцев лицензий на ASV. В некоторых случаях, она может обходить проверки на домен (которые не дают распаковаться и расшифроваться SWFке) и заставлять SWF запускаться в вашей среде.
Также достаточно легко гуглятся разные бесплатные дамперы.
2) Ручная динамическая распаковка
Поиск SWFки вручную, с помощью нахождения CWS (сжатый SWF) или FWS (несжатый SWF) заголовков, которые являются началом любого SWF. Если вы никогда не пробовали такой способ, я очень рекомендую попробовать! Он не только позволит немного подтянуть ваши скиллы в hex, но и подарит вам ощущение, что вы тру-крякер!)
Для поиска заголовков можно использовать любой HEX редактор, который умеет читать память процессов и имеет функцию поиска.
Если вы хотите искать упакованный SWF в памяти FP в котором проигрывается файл-пример по ссылке выше, то стоит начать с поиска FWS подписи (несжатый SWF) — просто ищите строку ‘FWS’, т.к. перед исполнением FP разжимает SWF, если он был сжат.
Если вы будете запускать и искать SWF в браузере, то закройте все лишние вкладки, чтобы снизить количество лишних SWF в памяти.
Обычно при таком поиске вы найдете несколько заголовков в памяти, т.к. сам FP держит там разные служебные SWF, например ту, что показывается после входа в полноэкранный режим.
Так что если вы сомневаетесь, то лучше проверить все найденные заголовки.
Итак, что же делать с найденным заголовками, спросите вы? Как их проверить, как узнать, где заканчивается SWF?
Пожалуйста, взгляните на этот скриншот:

Это заголовок одной из SWF в памяти FP при проигрывании файла-примера, найденный поиском по строке ‘FWS’ (совершенно случайно это оказался заголовок искомого упакованного файла, который мы и хотим найти ;) )
Что же дальше? А дальше необходимо посмотреть какой длины получается найденный SWF. Длина расположена в 4 байтах начиная с 4го: [...]

Читать дальше: Упакованный SWF. Как распаковать?

среда, 22 февраля 2012 г.

Две механики

Недавно на Flash GAMM 2011 я сделал небольшой доклад о подходе к дизайну игр “Две механики”.

Бонусом к презентации есть видео и несколько моих комментариев.

Две механики – это не правило. Это один из способов избежать скуки в игре.

Вернемся к основам. В игре должно быть ВСЕГДА интересно. Если это напряжение, то интересное напряжение. Если расслабление, то интересное расслабление. Интерес в игре не должен проседать.

Добиться такого можно разными способами. Но для того, чтобы не изобретать велосипед, можно просто добавить что-то интересное там, где становится скучно с основным геймплеем.

И главное – не зацикливаться на игровых механиках. Заполните пустующие места интересным сюжетом, красивыми локациями, мета-игрой, общением по чату, да чем угодно, лишь бы не было скучно [...]

Читать дальше: Две механики

пятница, 27 января 2012 г.

Игровые циклы или ЭлектроКардиоГама

Игровой цикл — это пульс каждой игры. Ни одна игра не будет работать без этого. Однако, к несчастью каждого нового разработчика игр, в сети нет хороших статей, в которых уделено достаточное внимание этой теме. Но не печальтесь, потому как только что вы получили возможность прочитать единственную в своем роде статью, уделяющую вопросу игровых циклов заслуженное внимание. По долгу службы мне часто приходится иметь дело с большим количеством кода мелких мобильных игр. И я каждый раз удивляюсь сколь много существует реализаций игрового цикла. Вы тоже можете удивиться как можно для такой, казалось бы простой, вещи можно придумать множество имплементаций. А ведь можно! И в статье я постараюсь рассказать о достоинствах и недостатках наиболее популярных вариантов игровых циклов. Также я постараюсь описать наилучший на мой взгляд вариант реализации игрового цикла.
(Thanks to Kao Cardoso Félix this article is also available in Brazilian Portuguese) (Thanks for me, in Russian also, прим. перев.)

Читать дальше: Игровые циклы или ЭлектроКардиоГама

воскресенье, 15 января 2012 г.

Nape и Starling вместе? Это возможно!

Привет, друзья!

Некоторые из вас уже наверняка пробовали использовать быстрейший flash 2D физический движок Nape вместе с GPU 2D фреймворком Starling и заметили, что свойство Body.graphic является flash.display.DisplayObject и не может быть приравнено к экзмепляру starling.display.DisplayObject.

В итоге, некоторые просто использовали более медлительный Box2D, некоторые самостоятельно контролировали отрисовку физических тел в виде DisplayObject’ов движка Starling, вожможно, некоторые даже сделали то же самое, что сделал я, но никому не показали. Мне нравится свойство Body.graphic — оно очень удобное и мне хотелось бы помочь всем as3 разработчикам использовать его в полную силу и для DisplayObject’ов Starling’а.

Представляю вашему вниманию модифицированные swc движка Nape (release и debug) Milestone 7.2 «r3″ для FP 10+, (возможно, не полностью) совместимые со Starling.

Всё, что я там изменил — заменил класс Body.graphic flash.display.DisplayObject на Dynamic (* в as3) и удалил конвертацию в градусы свойства Body.graphic.rotation. В моём случае, этого было достаточно.
Теперь я могу использовать Nape как обычно, с обычными DisplayObject’ами, что очень здорово!
Да, там наверняка есть ещё какие-нибудь несовместимые вещи со Starling, но в моём случае Nape работает без ошибок и проблем не возникает.

Качайте и используйте эти swc со Starling в своё удовольствие!
debug swc
release swc

Мне понравилось приключения с компиляцией caxe и flib под Windows в MinGW, это было здорово!
Чтобы скомпилировать swc под Windows, надо: [...]

Читать дальше: Nape и Starling вместе? Это возможно!