Как стать автором
Обновить

Комментарии 55

С точки зрения конечного пользователя я бы категорически не захотел бы, чтобы все объекты в игре разрушались таким образом. Лучше бы напрячь художника, чем такое на выходе. Может где-то и подойдет, но уж точно не везде, выглядит очень искусственно.
Если графика пиксельная (как майнкрафт), то по-моему как раз это самое то.
Майнкрафт-то 3D, там это может быть оправдано. А в 2D смотрится отвратно.

P.S.
Сама игра ничего.
Так можно добавить ещё пачку таких эффектов, с разными параметрами, и вешать разные эффекты на разные объекты/скины.
Просто дело в том что шкурок подходящих для игры в интернете много, но анимации смерти у них отсутствуют.
Мы ориентируемся на большое количество user-generated контента.
А, ну тогда да. Но можно обязать любителей генерить контент дорисовывать несколько кадров смерти, раз уж они рисуют себе кастомного персонажа)
Они там такое г. дорисовывают :) Но я думаю что можно и анимацию и какой-нибудь эффект использовать одновременно, например сейчас Кенни и распадается на пиксели и улетает в небо.
Да это же гениальная идея!
Уточните совместимость, под МЕ 9 не завелось.
V8 это Хром, работает только под ним?
МЕ9 должно было быть ИЕ9
Под оперой, FF, safari и хромом должно работать.
В ie9 похоже stats.js не пашет, сейчас попробую это исправить.

Ну и сама игра в ie9 не пашет из-за вебсокетов.
в IE10 работает на 60 fps, видимо из-за поддержки вебсокетов
Игра да, а демке анимации вебсокеты не нужны.
понял в чем проблема, у вас нет объявления doctype в формате html5 на странице, IE сразу переходит в режим совместимости, добавьте стандартный doctype и все заработает и там
Поправил.
Ухты, "!doctype html5" вместо "!doctype html".
Спасибо что заметил :)
не понял, по стандарту нужно именно:

<!doctype html>
А у нас было html5 :)
а, я неправильно понял комментарий. Впрочем это, наверное было в игре. Я же говорил про тестовую страницу с анимацией, в ней было просто:

<html>
В ие9 под вп7 (dell venue pro) работает, но тормозить перестает только с 10 юнитами на экране.
Не вижу смысла грузить клиентский CPU (тратить батарейку моб. устройств) расчетами на взрывы. Это совсем неоправданно в данном случае.
Дело в том что этот эффект не является узким местом этой игры.
Про мобильные — согласен, под них будут обязательно будут нативные клиенты.
Игра — затягивает. Разработка — классная. Код, расчеты, все дела…
НО!
Не надо стараться «засунуть» максимум из последних технологий в проект и тем самым «отмести» сразу бОльшую часть пользователей: слабый CPU на устройстве, браузер не обновили до последней версии, нет каких-то плагинов и пр.
Не грузите устройство пользователя неоправданными расчетами, производимыми «на лету».
Одно дело — однократное преобразование и кэширование. Но, когда это постоянно?..
Я привык так: задействуй меньше — останется больше. (ресурсов)
Рассыпание на пиксели — последняя технология? Лолшто?
Было бы намного эффектнее, если бы точки разлетались равномерно в разные стороны (вероятность вектора начальной скорости равномерна по верхней полуокружности). Можно, впрочем, добавить некоторую часть от текущей скорости юнита, чтобы был эффект продолжающегося движения.
А можно было совместить и сделать прегенерацию анимаций с шагов в 45 градусов направлений помирания.
Вот я боюсь не потянет оно по памяти.
А градусы мы сможем итак любые сделать, если эффект переделаем.
А исходник GenerateRandom где можно посмотреть?
Там самый обычный фильтр Перлина, возвращает двумерный массив с числами в диапазоне от 0.0 до 1.0
Так понимаю у вас в демке стоит ограничение сверху на количество юнитов, т.к. не обнаружил разницу между 100 и 100000 units.
Да, там есть следующее ограничение: за один кадр может создаться только один юнит.
Поправил, теперь там можно создать 5. То есть она сейчас не может создавать юнитов больше чем 5*FPS, надо бы вывести счётчик текущего числа юнитов…
А не проще было этим скриптом один раз «скомпилировать» картинки и оставить на сервере, и не сжигать драгоценные герцы?
Можно было бы задизайнить в адобе несколько разных типов разрушений (чтоб еще юзеру дать выбирать) в массив кадров для канваса или аним. gif.
Во-первых при изменении любого параметра скина придётся всё это пересобирать, во-вторых скин в 16 кадров, а анимация смерти основанная на одном из кадров будет минимум в 60, а их ещё надо минимум 4 штуки (по числу направлений ходьбы), это всё серьёзное увеличение размера ресурсов.
Конечно данный подход тоже имеет право на жизнь, но совсем при других требованиях, не при 60 кадрах в секунду.
Можно одну анимацию сделать: быстро разрывающийся в стороны (по-окружности) и медленно сходящийся в центр (в кучку).
В момент смерти убираем персонаж и проигрываем анимацию взрыва, одновременно смещая в направлении взрыва.
Создастся эффект направленного взрыва и сноса частей персонажа в направлении взрыва (противоположном от бомбы).
Да, вот так можно :) Правда с количеством накладываемых изображений там тоже нельзя перебарщивать, drawImage тоже дорогое удовольствие.
Сделайте так. Экономия CPU будет существенная.
Ок, сделаем что-то такое для эффектов которые будут более часто использоваться, например для разноса блоков.
Эффект смерти проигрывается редко, и по сравнению с остальной прорисовкой его стоимость очень мала, это не bottleneck :)
А почему бы не сделать анимацию взрыва не из 60 кадров, а из 10 или 5? У вас ведь анимация ходьбы всего из 2-х кадров.
Кадры ходьбы зациклены и меняются часто, а 60FPS там заметно потому что игрок при этом движется.
Да, если будет тормозить то наверное поставлю 5-10 кадров. Но я думаю что не будет :)
Ну и понятно, рисовать это вручную для каждого блока когда этих блоков будет много мне не хочется.
Визуальный аспект.

Эффект рассеивания в увеличенном виде смотрится нормально (хоть и не реалистично). Но, вот, в пылу сражения, особенно когда задевает краем взрыва, он очень незаметен. Даже не сразу доходит, что ты умер, или что кого-то убил. Практически с таким же успехом можно было бы убирать персонажей с экрана без лишних слов. С таким эффектом лишь чуть-чуть лучше, чем без эффекта вообще.
Так, здесь только что был чувак! Куда он делся? Ух ты, у меня, оказывается +1 фраг, клево. А, точно, это я его убил (по логам).

В классической dyna blasters для каждого скина был свой уникальный анимированный эффект, который начинался с изображения удивления (как?! меня убили??!) и далее персонаж/моб постепенно уходил в небытие.

Вся мультипликация эффекта разрушения чисто для красоты. А вот первый кадр довольно важен в геймплее тем, что заметен. Боковым зрением видно, кого убил и сколько всего жертв, или что тебя внезапно убили. Ведь у каждого игрока «бомбермена» в течение всей игры тикают внутренние часы. И если несколько событий происходят одновременно, то они железно связываются причинно-следственной связью. Но для этого, — события должны выделяться, быть заметными, чтобы десятки событий на экране можно было охватить боковым зрением.

По-моему, если так уж важен именно программный эффект, то лучше подошла бы последняя поза персонажа в другом цвете (в красном, например) с постепенным фейдом исчезновения. Таким образом, тихо и незаметно скончаться будет сложно. Сразу после смерти персонаж как бы будет кричать «я здесь! я только что умер! позор мне!». А так как цвет смерти для всех будет одинаково яркий и броский, то уже получается стандарт, выучив который, глаз будет легко воспринимать интуитивно. Ведь самое важное — это фраги, не так ли?

Хотя, может я и не прав.
Конечно ты прав, надо будет сделать заметнее.
Эффект исчезновения я тоже делал, но вот хотелось именно развевать пепел. Будут ресурсы — сделаем ещё эффектов и будет позаметней.
Достаточно сделать, чтобы персонаж развевался не моментально, а как бы, завис на время, а потом уже развеялся.
Застрявший персонаж уже привлекает внимание. А если на время зависания добавить какой-нибудь эффект, как выше предложили покраснение, или мигание какое-нибудь — то будет и заметно и красиво.
А если точки группировать по цвету (плюс-минус яркость), то получатся цветовые области, с которыми и делать эффекты по отдельности?
Игруха супер. Но, на нетбуках (atom 450) тормозит заметно + как-то странно себя чувствует в разрешении 1024x600. На полный экран не удалось развернуть. Но это так, к слову. Вообще молодцы, на десктопе с удовольствием поиграл.
Спасибо, думаем сделать ещё PC и мобильные версии когда всё устаканится. HTML5 легко поддерживать, на начальном этапе даёт преимущество.
Ну, нетбук это не совсем мобильник. Я просто что хотел сказать — хрен с ним, с тормозами, возможно это опера так к меня, а если хром — то нормально. Беда в разрешении. Позвольте пользователю где-то прямо в игре развернуть на полный экран. Вот и все.
Так давно же есть фулскрин-режим — кнопкой P включается.
А, ну значит я просто косоглазый. Тогда все в ажуре, еще раз респект авторам, попробую завтра на работе. А про мобильные версии — если не забудете Windows mobile и symbian — вообще будет классно. Но это уже чисто из области фантастики конечно )) Но в любом случае, классная игра!

PS: А в случае Win mobile мог бы и поспособствовать, just for fun, ради саморазвития…
Автору следовало сделать взрыв анимацией, которую не нарисует художник, а сгенерит скрипт — сколь угодно сложный, тормозной, зато красивый. Возможно даже несколько вариантов взрывов. И проблема тормозов решится и художник не нужен. Все счастливы.
поняшек-то за что?
150 юнитов = 40-50 фпс
Chrome 24
Сейчас ещё есть эффект для блоков, там сейчас 80 штук, при этом работает graceful degradation: она пересчитывает эффекты пока есть время. В IE10 можно наблюдать 60фпс, при том что сама анимация подтормаживает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории