Агрегатор статей о разработке Flash приложений и Flash игр (Flash Development / Game Development)
Все права принадлежат их авторам
вторник, 11 декабря 2012 г.
Flash GAMM Kyiv 2012 – Официальный отчет
Конференцию посетило более 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
PS: Извиняюсь, за мудацкий способ встраивания флешек в текст этой статьи. Но бесплатный sites.google, где я храню SWF файлы, напрочь отказывается предоставлять к флешкам доступ без этой дурацкой процедуры с кликом по ссылке.
PPS: Оказалось пользователям Internet Explorer повезло еще меньше :) Если у вас белые окошечки вместо флешек, то пока вариант только один: качните архив по ссылке и внутри найдете swf файлик, который можно посмотреть локально на компе.
Читать дальше: Мантры о системах частиц - Particle systems in Flash
понедельник, 28 мая 2012 г.
Факторы успешности современных мобильных игр
Организаторы конференции выложили этот и другие доклады на своем сайте. Можно скачать и ознакомиться. А я хочу просто выписать здесь основные тезисы.
Факторы успешности современных мобильных игр:
- Простота игровой механики
- Ориентация на широкую аудиторию игроков
- Интуитивное управление
- Короткая игровая сессия
- Облик главного героя
- Неожиданный, оригинальный игровой сеттинг
- Юмор
- Разнообразие геймплея
- Поддержка и развитие игры апдейтами
- «Отшлифованность» игры
- Маркетинговый подход
пятница, 4 мая 2012 г.
Компонент для работы с растровыми шрифтами
- Реализация в виде отдельного компонента, не завязанного ни на какой из движков -- такой класс нужен был для того, чтобы наконец-то закончить портирование прелоадера Flixel.
- Реализация в виде плагина для Flixel, которую можно использовать непосредственно в играх.
Завершив с оптимизацией, я приступил к реализации дополнительных "фишек":
- настройка размера шрифта
- настройка расстояний как между символами, так и между строками текста
- настройка переноса слов
Читать дальше: Компонент для работы с растровыми шрифтами
суббота, 28 апреля 2012 г.
Хочешь сделать хорошо — сделай это сам: редактор UnityScript на базе FlashDevelop 4
Читать дальше: Хочешь сделать хорошо — сделай это сам: редактор UnityScript на базе FlashDevelop 4
вторник, 17 апреля 2012 г.
Stripper - утилита для сборки страйпов(strips)
Хочу поделиться с тобой одной самопальной утилиткой, полезной любому, кто часто создает спрайты для игр в 3D редакторах.
Дело в том, что обычно 3D редакторы рендерят каждый кадр анимации объекта в отдельное изображение и ручная компоновка этих изображений в одну длинную полосочку-раскадровку - есть процесс мучительный и долгий. Предлагаемая утилита сама переберет все изображения и сформирует страйп (strip).
Читать дальше: Stripper - утилита для сборки страйпов(strips)
вторник, 10 апреля 2012 г.
Геймдизайнерам об игроках или как программировать игроков?
Вступление 1.
Много думал и анализировал информацию на тему разработки игр. И чтобы не потерять, а так же поделиться с людьми, получить подсказки, советы и комментарии — решил оформить и выложить статью. На сегодняшний день “геймдизайн” все больше обретает очертания некой науки, требующей особого подхода и изучения. К сожалению, в общем доступе находится очень мало структурированной информации. Что касается иностранных авторов, имеющих большой опыт и ряд успешных проектов — зачастую их труды так и не попадают на прилавки отечественных магазинов. А изучить их в оригинале многим мешает языковой барьер. В данной ситуации спасением служат статьи, где люди делятся впечатлениям и личным опытом по разработке игр. Эти статьи не только и не столько доносят до читателей новую информацию, сколько подают ее в новом свете, позволяя более четко осознать и отобразить в жизнь.Вступление 2
Хочу отметить, что на написание материала оказало влияние выступление на Sociality Rocks 2011 Henric Suuronen — руководитель студии Wooga, разработчика Bubble Island и других хитов. Особого внимания заслуживает статья Андрея Плахова “Геймдизайнерам о программистах или как программировать программистов”. По аналогии с той статьей возникла мысль, что программировать можно и пользователей тоже. Программировать их модель поведения, чтобы их развлекать и извлекать нужные нам ценности — платежи, удержание в игре, привлечение новых игроков. И одним из инструментов удержания служит набор функций в приложении, который можно условно назвать игровым циклом. Об этом мы и поговорим далее Читать дальше: Геймдизайнерам об игроках или как программировать игроков?четверг, 5 апреля 2012 г.
Динамическая генерация текстурных атласов
- необходимо минимизировать количество вызовов метода drawTriangles(), т.к. он довольно ресурсоемок;
- также следует использовать как можно меньше текстур, т.к. размеры текстур могут иметь строго определенные значения (64х64, 128х128, 256х256, 512х512, 1024х1024 или 2048х2048). И если в Вашей игре используется множество маленьких изображений, для каждого из которых Вы будете создавать новую текстуру, то видеопамять будет расходоваться нерационально (в каждой такой текстуре будет много "пустого места") и довольно быстро закончится.
Читать дальше: Динамическая генерация текстурных атласов
вторник, 3 апреля 2012 г.
Циклы параллельных наград
Давно уже хотел поделиться схемой циклов параллельных наград из реальной игры. Те схемы, которые у меня есть – или из устаревших игр, или из игр, в которые никто не играл. Поэтому решил использовать для примера GP Story – игра относительно свежая, и ее легко можно найти в Appstore и Google Play.
Для понимания этой заметки желательно ознакомиться со статьей “Параллельные награды”.
Общая информация
[...]Читать дальше: Циклы параллельных наград
четверг, 29 марта 2012 г.
Alternativa3D 8 вышла в Open Source!
Согласно обновленной лицензии, любая организация или частное лицо может свободно использовать технологию в своих целях. При этом размещать в созданных на движке проектах логотипы и иные упоминания об 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)
понедельник, 26 марта 2012 г.
Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий
Для фильтрации XML можно так же использовать регулярные выражения (RegExp) и собственные условия через функции фильтрации (помимо простых сравнений).
Не уверен, что данный синтаксис скушает любая среда разработки (по крайней мере FDT выдает ошибку, хотя синтаксис правильный).
Простой пример. У нас имеется список персонала одного из отделов компании, и нам необходимо узнать, кто из них родился в апреле.
Пример с использованием регулярного выражения: [...]
Читать дальше: Фильтрация XML (E4X) при помощи регулярных выражений и сложных условий
суббота, 24 марта 2012 г.
Фиксим утечки памяти в box2d(2.1a)
Добавим в класс b2Body, функцию Destroy с таким содержанием: [...]
Читать дальше: Фиксим утечки памяти в box2d(2.1a)
Как рассказать про вашу игру
В повседневной жизни я — игрожур, но на досуге я сам пишу одну игру (Gunpoint), она даже вышла в финал Independent Games Festival, я немного горжусь этим (до меня выступал создатель Solipskier, объяснявший, почему всем наплевать на IGF, так что мне стало немного легче). Это моя первая игра, к тому же ещё недописанная, поэтому учить вас программированию мне не по статусу. Вместо этого я хочу поговорить о том, как рассказывать о играх. С этим легко накосячить, особенно когда вы находитесь в контексте игры; но описанию нужно уделять большое внимание, если вы не хотите остаться единственным пользователем. Мне повезло — за восемь лет я натренировался рассказывать о чужих играх, так что со своей всё пошло легче.
Даже не ожидайте, что аудитория вашего сайта, интервью или ролика будет состоять исключительно из умных, серьёзных и заинтересованных людей. Потому что в худшем случае это могу прочесть я — а я тот ещё засранец.
Сейчас я расскажу, почему на тупиц типичные методы не действуют, а потом объясню (как весьма опытный засранец), как нужно рассказать про игру, чтобы это понял каждый.
Читать дальше: Как рассказать про вашу игру засранцу
пятница, 23 марта 2012 г.
TheMiner и FlashDevelop
Всего есть два пути использования 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, надо: [...]