Как придумать культовую игру
07.03.2011, автор: Stormit, рубрики: Flash игры, НовостиУникальная видеохроника раскрывает секреты создания успешных игр. Смотрим, учимся.
Уникальная видеохроника раскрывает секреты создания успешных игр. Смотрим, учимся.
Недавно съездил с докладом на Casual Connect. Как обычно бывает после подобных встреч, вернулся с массой впечатлений. Час общения с компетентными людьми даёт больше опыта и знаний, чем пол-года сёрфинга в сети. Поэтому в очередной раз советую всем: посещайте такие мероприятия как можно чаще и не пропустите FlashGamm, который пройдёт 4-5 декабря в Киеве (я там тоже буду).
Но сейчас не об этом. Выкладываю свою презентацию с CasualConnect Kiev 2010, а также код и небольшой пример как с ним работать.
Цель доклада - немного изменить подход к программированию ИИ персонажа. Иными словами - как задать персонажу сложное поведение во время игры, когда он выполняет большой набор действий и принимает новые решения. В качестве “умного” объекта могут быть не только бегающие в игре объекты. Это также может быть “окружающая среда” (например, уровень игры, который напускает на вас противников, когда вам легко играть или подкидывает аптечку, когда у вас мало жизней). Читать полностью »
В последнее время не получалось написать что-то интересное, просто физически нет времени. Но я рад, что блог всё это время жил собственной жизнью, - люди общаются через комментарии помогая друг другу. Это прекрасно, это заряжает позитивом и мотивирует что-то всё-таки написать.
Начну с доклада для UAFPUG, который проходил на днях в Харькове (отдельное спасибо gamezhero за организацию встречи). Целью встречи был обмен опытом построения рабочего процесса в игровой флеш-индустрии. Я представлял Инди-разработчиков
Честно говоря я никогда себя так не называл, но как оказалось, соответствую этому типу, когда делаю игры для дальнейшей монетизации. Основное отличие от фриланса и разного рода компаний в том, что сроки создания игры я определяю для себя сам и они могут плавать, если додумываю что-то интересное. Ещё есть разного рода риски, но сосредоточимся на позитиве.
Ниже я привожу презентацию и тезисы, по которым я строил свой доклад. Это исключительно мой опыт, поэтому я с удовольствием выслушаю все замечания.
Поздравляю всех с Новым Годом! В новом году желаю всем игроделам делать только удачные флеш-игры :)С долгами в Новый Год нельзя, поэтому выкладываю презентацию с UAFPUG, которая проходила в Киеве, в октябре месяце.
а также, как и обещал, исходник к готовому уровню:
Simple Platform Engine Source (112.1 KB, 11,402 hits)
Мои самые любимые эффекты те, которые симпатично смотрятся и делаются быстро и просто. Один из таких - эффект от удара током, попадания молнии или воздействия электрошокера. В анимации иногда приходится приложить к персонажу 220 и даже больше, если того требует сюжет. Например, на слайде 1, учёный решил испытать на себе установку по повышению настроения - после этого понимаешь, что у тебя не так уж всё и плохо
Первое что нам нужно - это персонаж для опытов. Можете нарисовать его в любой позе, главное чтобы она контрастировала с той, когда персонаж получает разряд (слайд 2). Читать полностью »
После прочтения статьи о платформерном движке (дальше буду ссылаться на неё как на “предыдущий пример”), у многих возник вопрос: “Как сделать, чтобы при управлении смещался фон, а персонаж оставался на месте”.
Спешу ответить.
Есть один способ, самый простой, на мой взгляд, вот его и рассмотрим. Возьмём конечный результат из “предыдущего примера”, теперь “обернём” всё полученное в новый символ game. Наглядно результат показан на слайде 1 - код, персонаж, противники (если есть), платформы, графика и всё всё всё, должно оказаться внутри этого клипа. Такой клип можно смещать, масштабировать, крутить, копировать в другой fla-файл - игра будет работать.
Урок от ANIMEFISH.COM
Привет!
Представляю вниманию очередную хитрость для флеш девелоперов - “Создание динамических текстур во флеш”. О чем это я? Частенько в играх, в анимации, существует необходимость использовать качественные текстуры для различных заливок (для фонов, объектов и т.д.) Однако, найти такую текстурку достаточно сложно, подготовить ее к использованию в ролике - тоже сложно (если вы к тому же не владеете растровыми редакторами - это еще проблематичней), импортируемая текстура имеет вес (и не малый) а для вашей игры, например, необходимо много текстур. Но самое важное - это найти ту текстуру, которая бы гармонировала бы с вашей графикой.
Что же делать? Какие пути выхода?
Начнем. Читать полностью »
Чтобы сделать игру как на примере (слайд 12), не нужны продвинутые знания в физике и математике. По сути, мало что нужно вообще, потому как флеш располагает всем необходимым, чтобы сделать неплохую платформенную игру без особых усилий.
Обычно для определения столкновений фигур используются непростые математические расчёты проекции векторов. И это часто оправдано, так как позволяет сделать игры с реальным поведением объектов. Но если реальной физикой в вашей игре можно пренебречь, то организовать прогулки по платформенному миру - не проблема. Герой дня - популярная функция hitTest(), которая и будет решать все вопросы определения столкновений.
У этого движка есть свои плюсы и минусы. К недостаткам можно отнести:
1) отсутствие физики (есть только гравитация)
2) отсутствие наклонных поверхностей
3) платформы только прямоугольной формы
4) в сложных уровнях, во избежание глюков, требует дополнительной настройки персонажа
5) есть небольшая “дерганность” персонажа при контакте с платформами (связано с тем, что пересечение с платформой компенсируется не по направлению движения, а с раскладкой на оси X и Y).
К достоинствам:
1) прост в разработке
2) простое и быстрое построение уровней сложной формы
3) персонаж автоматически шагает по невысоким ступенькам
4) несёт в себе определённую стилизацию и хорошо подходит для пиксельной графики.
Мне уже порядком поднадоела эта тема, но люди просят рассказать каким образом создаются монстры, летят пули и как определяется попадание. Надеюсь это многим поможет, тем более что поняв эти простые истины, можно создать много разных 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.
Читать полностью »
Это небольшое дополнение к предыдущему посту, которое может сделать флеш-игру ещё интересней.
Очень часто разработчики, когда им нужно навести дуло на цель или направить монстра на жертву, делают это мгновенно. То есть, объект шёл в одну сторону, и тут бац.. идёт уже в другую. Это подходит для многих случаев и повышает контроль над ситуацией, мотивируя игрока проявить свои возможности, но иногда (а может и часто :)) нужно сделать чтобы дуло пушки или персонаж наводились на цель плавно.