24.06.2009 , автор Stormit , рубрики: ActionScript, Flash игры, Игровые баннеры  

Урок от ANIMEFISH.COM

Привет!

Представляю вниманию очередную хитрость для флеш девелоперов - “Создание динамических текстур во флеш”. О чем это я? Частенько в играх, в анимации, существует необходимость использовать качественные текстуры для различных заливок (для фонов, объектов и т.д.) Однако, найти такую текстурку достаточно сложно, подготовить ее к использованию в ролике - тоже сложно (если вы к тому же не владеете растровыми редакторами - это еще проблематичней), импортируемая текстура имеет вес (и не малый) а для вашей игры, например, необходимо много текстур. Но самое важное - это найти ту текстуру, которая бы гармонировала бы с вашей графикой.

Что же делать? Какие пути выхода?

  1. Нарисовать всю картинку целиком - ну тут даже не каждый художник сможет справиться, даже профи :)
  2. Предлагаю воспользоваться моим способом - динамически создавать свою текстуру прямо во Flash!

Начнем. Читать полностью »

Интересно на 6%

19 Хитрых

Простой платформенный движок для флеш-игр

16.06.2009 , автор Stormit , рубрики: ActionScript, Flash игры

Чтобы сделать игру как на примере (слайд 12), не нужны продвинутые знания в физике и математике. По сути, мало что нужно вообще, потому как флеш располагает всем необходимым, чтобы сделать неплохую платформенную игру без особых усилий.

Обычно для определения столкновений фигур используются непростые математические расчёты проекции векторов. И это часто оправдано, так как позволяет сделать игры с реальным поведением объектов. Но если реальной физикой в вашей игре можно пренебречь, то организовать прогулки по платформенному миру - не проблема. Герой дня - популярная функция hitTest(), которая и будет решать все вопросы определения столкновений.

У этого движка есть свои плюсы и минусы. К недостаткам можно отнести:
1) отсутствие физики (есть только гравитация)
2) отсутствие наклонных поверхностей
3) платформы только прямоугольной формы
4) в сложных уровнях, во избежание глюков, требует дополнительной настройки персонажа
5) есть небольшая “дерганность” персонажа при контакте с платформами (связано с тем, что пересечение с платформой компенсируется не по направлению движения, а с раскладкой на оси X и Y).

К достоинствам:
1) прост в разработке
2) простое и быстрое построение уровней сложной формы
3) персонаж автоматически шагает по невысоким ступенькам
4) несёт в себе определённую стилизацию и хорошо подходит для пиксельной графики.

Читать полностью »

Интересно на 12%

46 Хитрых

Мы сделали Пчелоида и флеш-игру Striped Escape

05.05.2009 , автор Stormit , рубрики: Flash игры

Наконец-то увидела свет флеш-игрушка, которую мы сделали ещё в сентябре прошлого года. Я программировал и продумывал уровни, Никита Котов - рисовал, анимировал и писал музыку. Сложно сказать, сколько времени ушло на разработку, так как начал я её делать после того как увидел игру “N”. Потом много раз откладывал в сторону, через пол-года вспоминал и что-то доделывал - и так много раз. Можно сказать что я на ней познавал подводные камни, учился физике и оптимизации процессорных ресурсов.

Спонсором выступили BunnyGames на правах Primary Sponsorship. Сейчас игра крутится на Newgrounds - поддержите, поставьте 5 баллов (реклама в игре сейчас откручивается мне, так что можно кликать :) ).

Striped Escape

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

Немного предыстории (играем за представителя расы пчелоидов):

Вы были осуждены по статье rgb:#FDD535 Галактического Кодекса.
За незаконный сбор мёда вам дали максимальный срок - 1000000 ударов пульса. Срок близился к концу, но внезапная магнитная аномалия вывела приборы из строя и дверь вашей камеры открылась…
Чудесным образом спаслись не только вы, - сбой системы открыл все камеры и остальные заключённые тоже оказались на свободе. Они сильнее и выносливее вас, и они жаждут мести. Избегайте их.
Цель каждого уровня - найти выход. А цель игры - удрать с этой планеты!

Очень много времени (я даже не ожидал) ушло на проработку каждого уровня - на то, чтобы сделать его интересным и 100% проходимым. Сейчас можно собрать все бонусы без потерь (не уверен насчёт последнего уровня). Пришлось каждый уровень пройти не один десяток раз. Особенно сложно было там, где бегают четверорукие охранники. Дело в том, что они могут подпрыгнуть и улететь с платформы в непредсказуемом направлении и создать непроходимый участок.

Игра получилась непростой в прохождении и тестерам пришлось потратить несколько дней, чтобы дойти до конца, но последний уровень пока покорился только мне :)

Интересно на 23%

36 Хитрых

Scarygirl - вышла в свет самая крутая флеш-игра

14.04.2009 , автор Stormit , рубрики: Flash игры

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

Все кто ждал вместе со мной, - мы это сделали :)
Игра состоит из серии подигр, где с каждым уровнем меняются возможности (соответственно управление) персонажа. Смотрите трейлер и сами всё поймёте:




Берём пример, потому как здесь графика, анимация, программирование, музыкальное сопровождение, удобный интерфейс - вообще всё - сделано на высшем уровне.

Играем в Scarygirl

Интересно на 32%

22 Хитрых

Flash игра - Don’t Look Back

08.04.2009 , автор Stormit , рубрики: Flash игры

Отличная игрушка попалась на днях на глаза, называется: Don’t Look Back.

Почему игра так называется, становится понятно когда проходишь большую её часть. Для меня этот момент был самым неожиданным и приятным в игре. В конце игры снова неожиданность… В общем, игра с идеей, которая в середине немного меняет суть игры.
Don’t Look Back Flash Game
Советую потратить часик свободного времени и пройти игру до конца.

Интересно на 30%

13 Хитрых

Мне исполнился 1 год

01.04.2009 , автор Stormit , рубрики: Новости

“Мне 1 год” - заявил мне сегодня мой блог, чем меня несколько удивил. Ну раз так, нужно что-то написать по этому поводу.

За этот год в моей жизни произошло много интересных событий. Я узнал что многие люди давно и окончательно перешли на AS3. Причём привыкли к нему настолько, что даже не матюкаются. Узнал что UAFPUG - это не так страшно как звучит, наоборот, очень полезное мероприятие. Что делать и продавать игры - вполне реальное занятие чтобы жить только этим (сделал 1 на заказ, продал 2 свои игры, ещё 2 сейчас продаются и несколько в разработке - это параллельно с основной работой).

Прочитал 2 доклада: для UAFPUG в Донецке и для FlashGamm в Киеве (доклад1, доклад2).  Познакомился с многими  интересными людьми и загрузился работой. Был удивлён, когда предложили взять у меня интервью и с удовольствием его дал. Читайте в блоге Валерии Маллаевой, который тоже недавно справил первую годовщину.

Из планов на будущее: освоить 2х-мерные и  3х-мерные движки, запустить игровой портал и доработать свой 4х-мерный игровой движок.

“Ничего не забыл?” - спросил я свой блог, на что он мне тактично добавил, - “В настоящее время имеются 62 записей и 1197 комментариев, которые находятся в 7 рубриках и имеют 13 меток.”

Интересно на 24%

22 Хитрых

Альтернатива “Cache as bitmap” - разгружаем процессор

27.03.2009 , автор Stormit , рубрики: ActionScript

Наверное многие знают и умело используют такую замечательную возможность во флеше как “Cache as bitmap“. При этом, с клипа делается виртуальный снимок в виде картинки и вектор не пересчитывается для отрисовки каждый кадр. Можно рисовать графику в векторе прямо во флеше, потом в панели свойств включить кэширование и на выходе плеер получает растровую картинку. Очень удобно, можно быстро вносить изменения и сразу любоваться результатом минуя фазу экспорта/импорта в PNG. Плюс ко всему - экономия траффика.

Звучит приятно и обычно всё хорошо работает, но я столкнулся с тем, что с клипами больших размеров, тормоза частично остаются. В одной платформенной игре у меня был фон 1200х1200, который лежал на заднем плане и должен был просто смещаться, пока персонаж бегает по уровню. Так вот, анимация происходила с небольшими рывками. Такое впечатление, что флэш время от времени пересчитывает данные и делает “обновлённый” снимок с клипа. Так или иначе, но факт имел место и такие тормоза были. Это решалось заменой векторного фона растровым (PNG), но такая флешка весила очень много.

Но не зря мы все так любим флеш - у него в арсенале достаточно инструментов чтобы решить эту проблему. Мы снимаем с флеша ответственность по растеризации векторной графики и берём её на себя. Будем использовать BitmapData и маленькую функцию, приведённую  ниже.  В добавок мы получаем возможность обрабатывать нашу картинку как игре угодно: добавить следы от взрыва, осколки, пятна.

На примере ниже можно увидеть как это работает. Большое количество градиентов и  объектов нас больше не пугают, потому что пикселы отрисовать в разы быстрее чем рассчитать вектор по точкам. Так будет видеть flashPlayer наш клип:

Читать полностью »

Интересно на 38%

27 Хитрых

Crimsonland 3: Выживание на практике

19.03.2009 , автор Stormit , рубрики: ActionScript, Flash игры, Игровые баннеры

Мне уже порядком поднадоела эта тема, но люди просят рассказать каким образом создаются монстры, летят пули и как определяется попадание. Надеюсь это многим поможет, тем более что поняв эти простые истины, можно создать много разных flash игр.

На самом деле о некоторых вещах я уже писал раньше. Например, монстры будут появляться таким же способом, как препятствия в баннере с мячиком (помните?). Для простоты изложения мы будем использовать процедурный способ программирования с разделением кода на слои :). Потом так будет удобнее ориентироваться в коде (это первый шаг к классам и ООП).

Итак, из предыдущих постов у нас есть главный герой, готовый ринуться на толпы врагов. Я заменил базуку на пулемёт и немного повысил его манёвренность (скорость ходьбы и поворота). Слайд 1.

Подробно о том, как теперь устроен клип body клипа hero показано на слайте 2. При щелчке мышью, начинает проигрываться анимация стрельбы и во втором кадре вызывается функция placeBullet(), которая добавляет пулю на сцену. Это единственное место в этом примере, где вызов функции идёт из клипа, а не с главной линейки. Обратите внимание, что появился вспомогательный клип dot - он нужен чтобы пересчитать по нему правильные координаты пули в момент вылета из ствола. Это идеальный способ, когда дуло не находится точно на осях X и Y. Внутри всех вспомогательных клипов я пишу _visible = false. Так они не заметны для глаза, но доступны для кода.

Дальше создаём клип для противника с именем spider и прочую атрибутику: пулю (bullet) и спецэффект для поражения (boom). Клип spider состоит из 2-х кадров (состояний). В первом клип с анимацией ходьбы (здесь же и клип hit, который нужен для проверки попадания), а во втором - клип а анимацией погибания (когда анимация доигрывается, в последнем кадре вызывается _parent.removeMovieClip() которая удаляет противника (в данном случае _parent - это клип spider). Клип пули bullet - просто рисунок снаряда (при _rotation = 0 смотрит вправо). Клип boom - имитация кровавого всплеска. Все эти клипы присутствуют на линейке, но лежат далеко за пределами сцены чтобы случайно не попали в кадр (или выполнить для них _visible = false). Потом с каждого будет создаваться дубликат и использоваться по необходимости.
Создаём прямоугольный клип ground который площадью должен покрыть всю сцену. Противники будут появляться, учитывая его границы, а пули будут удаляться (в смысле delete), когда вылетят за его пределы. Слайд 3.
Читать полностью »

Интересно на 55%

39 Хитрых

Воспоминания о Crimsonland 2: наведение на цель

27.02.2009 , автор Stormit , рубрики: ActionScript, Flash игры, Игровые баннеры

Это небольшое дополнение к предыдущему посту, которое может сделать флеш-игру ещё интересней.

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

Читать полностью »

Интересно на 62%

21 Хитрых

Делаем во флэше движение персонажа как в Crimsonland

12.02.2009 , автор Stormit , рубрики: ActionScript, Flash игры, Игровые баннеры

Думаю, что многих в своё время зацепила игра Crimsonland. Лично мне нравится как там реализовано управление главным героем. При нажатии клавиши “Вверх” персонаж смещается не строго вверх, а туда, куда смотрит. Кнопки “Вправо” и “Влево” только поворачивают героя и меняют направление движения.

Такое движение сделать во флеше очень просто, достаточно знать формулы синуса и косинуса. Этим мы и займёмся. Читать полностью »

Интересно на 71%

60 Хитрых