Пользователь
0,0
рейтинг
12 мая 2012 в 13:44

Разное → Bomberman Online — HTML5 мультиплеер онлайн игра от хабраюзеров. Тестируем нагрузку!

Bombermine Online — результат последних двух недель тестирования и подготовки движка для большого кол-ва игроков онлайн.

Движок написан на Java + Jetty (бекэнд). Фронтэнд — HAProxy + Nginx + Node.js. Клиентсайд — GWT, который транслируется в HTML5/canvas + javascript + websockets. Хостится всё в облаке.

На данный момент рекорд — 50 игроков онлайн. Настроен весь необходимый софт для мониторинга нагрузки. После хабраэффекта обещаем выложить отчёт. Ждём гостей.



Видео геймплея





Предыстория создания движка


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

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

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

Потом настало время писать отображение. При прорисовке тайловой карты возникла проблема: если тайлы размера 16х16, а экран 640х480, то надо нарисовать 1200 квадратов. При этом рисующийся тайл зависел ещё и от соседей. Получаемый FPS меня не радовал. Спасла штука, используемая в том же Minecraft — полученный с сервера чанк следовало нарисовать и запомнить до тех пор, пока он не изменится. При этом буфер для отображения чанков можно использовать периодический, размером немного больше экрана.

Теперь вместо 1200 изображений 16х16, номера которых зависели от соседних, надо рисовать всего-лишь 6 изображений 256х256, без всяких лишних вычислений. FPS сразу поднялся до заветных 60. В GWT DevMode на моём ноутбуке выходит 17 FPS — для отладки просто замечательно.

Сетевая часть оказалась совсем простой — WebSockets через Jetty.

Клиентсайд: лучше всего себя показывает Хром (держит 60 фпс даже на старом железе), потом Сафари, ФФ и Опера. Про ослика лучше не спрашивать :)


Bombermine Online Crew


Авторы движка — я и fibulwinter. Веб и интерфейс — demark. Тюнинг и настройка сервера — stolen. Художники — DaveDee и d3emp.

Enjoy! Good Luck & Have Fun
Иван @Jedi_Knight
карма
81,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разное

Комментарии (179)

  • +8
    весело, но подтормаживает уже заметно
    • +27
      Играть невозможно, ужасные лаги :(
      • +3
        Не выдержал и минуты, слайдшоу ужасное и в лисе, и в хроме последних версий.
      • 0
        Ну я видимо зашел одним из первых — игралось нормально, с небольшими подтормаживаниями
    • +10
      Вот что творилось в первые 10 минут после анонса :)

      • +1
        Напоминает первые минуты запуска нового сервера какой-нибудь mmorpg :)
  • +4
    Отличная идея, но в хроме показывает 60fps, а фидбек лагает по страшному, играть совсем неприятно сейчас :(
    • –1
      Лучше в черновики его :) А то не показательно сейчас.
  • +3
    Ребят, ща всё будет — идёт ресайз канала.
    • +34
      никогда не говорите «ща все будет», это страшная фраза)
  • +1
    Не могу войти. Хабраэффект, видимо…
    • 0
      Аааа, никнейм русский был. Непонятно, что была ошибка. Извиняюсь
  • +4
    А чота уже и оттестировали, хабраэффект удался.
  • +2
    Только и вижу, что «Press SPACE to respawn. Round has ended». Пятнибота на смарку :(
    • 0
      В Opere (11.63) то-же самое, зашёл из под FF, нормально, только FPS 7-8.
  • +1
    Обожаю эту игрушку уже много лет!
  • +4
    «Посоны, пошли в бомбера играть!»
  • +1
    Не получается войти. Даже зарегаться уже пробовал — просто поля зеленым подсветились, кнопка побыла «неактивной» 3 секунды — и все.
    Зайти после этого с паролем не получается — говорит нет таких. Просто гостем тоже не пускает.
    • 0
      Как написал комент — сразу зашел
  • +2
    Было бы неплохо добавить вход через openid.
  • 0
    Поиграл, прикольно. Подлагивает, ну да ладно
  • 0
    решил попробовать — увидел как куча бомбеманов стоят на месте и делают ми-ми-ми… и никто никуда не движется
  • 0
    Даешь 3d бомберман на WebGL!
  • –3
    Словил багов, что бомы двигались и когда просто бежишь — бомбы ставятся автоматически в каждую клетку(с пробелом все в порядке)
    п.с. Привет Фрязино:)
    • 0
      Это такой коварный бонус :) (ящик с вопросом)
    • 0
      Там болезнь такая есть, очень весёлая
    • 0
      Это не баги, это такой эффект от некоторых бонусов и антибонусов.
  • +1
    Очень круто. Молодцы.
  • +6
    Небольшие пожелания:
    — удобно было бы ставить бомбы правым шифтом, а взрывать контролом. Тогда игрок бы мог управлять одной рукой со стрелок.
    — сделайте мини-карту, а то не всегда понятно где все веселье.
    — таблица рекордов пусть появляется на отметке игрока.

    Правильной дорогой идете, друзья!
    • +1
      Таблицу можно так: топ-10, потом многоточие, потом пять позиций (+2, игрок, -2). Тогда видно, куда стремиться :)
    • +15
      Пардон, а чем у вас занята вторая рука?
  • +1
    Он скрин управление для тач девайсов? Зашел с N9, подтормаживало.
  • 0
    gwt использовали напрямую? или чтото вроде playN?
    • +1
      Напрямую.
    • 0
      в частности как Вы прикрутили websockets к GWT интересует.
      • +1
        Написал обёртку для js-классов CloseEvent, MessageEvent, OpenEvent, WebSocket. Пример есть в исходниках quake2 gwt.
        • 0
          Atmosphere не пробовали пользовать?
          • 0
            Нет, хотя рассматривал варианты использования подобных библиотек.
            Реализованный мной коннекшн хорошо работает, возможность реконнекта есть, просто я сейчас ее не использую, пусть уж пользователи жмут F5, вдруг клиент обновился.
          • 0
            Должен заметить, что атмосфера достаточно глючна на практике. Для того, чтобы она работала нормально нам пришлось переписать половину кода. Особенно огорчила клиентская сторона, которую я переписал с нуля на atomJS.
            Атмосфера в том виде, в котором она в репе годится только для чатов.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Вот, ищу причины тормозов клиента при большом количестве народу. Вроде не графика.
  • +2
    Молодца! Танчики 2, не меньше. ) Только очень мелко, ребят.
    • +1
      Есть кнопка zoom в правой части экрана.
      • 0
        Не только поле игры (которое при зуме не сильно увеличивается) — всё мелкое, текстуры, объекты, интерфейс.
  • +1
    CURRENT STATUS: исследуем лаг файрфокса при большом количестве народу.
  • +1
    И куда же без просьб «ДАЙТЕ ИНВААААЙТ» в чате.

    Круто вышло, парни. Лагает, правда, неплохо. Спишем на хабраэффект.

    Эффект инвертирования управления специально прописали не полностью?)
  • +1
    nginx + nodejs для отдачи статики?
    • 0
      nginx — статика, nodejs — вся логика веб-части.
  • +2
    Источник тормозов найден, исправляем!
  • +1
    Понравилась! Молодцы
  • 0
    УУУ поправляйте скорее, хочу зарубить в это дело! :-))
    • 0
      Попробуй сейчас :)
      • 0
        висит на странице
        bombermine.ru/play/
        с картинкой бегучего чушка с бомбой и мешком на белом фоне =(
        • 0
          Опера?
          • 0
            ubuntu 12.04
            chromium 18.0.1025.151

            может дело в интернете у меня на работе?
            админы тут какие-то порты позакрывали. UDP внешний вобще не пашет.
          • 0
            UPD в firefox'e то же самое
            • 0
              Значит 80-ый порт немножко режут.
              • 0
                Через прокси не работает что ли?
                Кстати, может там для работы вебсокетов в iptables какой-то особый порт открыть надо?
                • 0
                  Нет, надо чтобы прокси их поддерживала.
        • 0
          аналогичная проблема. Chrome 18 и Firefox 12. Интернет через ISA
  • 0
    Просто замечательно! Очень понравилось! Еще бы лаги убрать…
    • 0
      Юзерпик очень в тему, да.
      • +1
        ну если слоупок сообщает что тормозит, значит действительно тормозит.
  • +3
    Игра хороша, но лаги жутко раздражают.
  • +2
    CURRENT STATUS: профилировка сервера, поиск утечек памяти в приложении.
  • +11
    я сначала прочитал Boomburum online
  • +5
    А расскажите подробнее про техническую реализацию — что там за диффы между чанками, про прорисовку.
  • 0
    Скрин ошибки с прорисовкой:
    • 0
      • 0
        Спасибо. Наблюдал при лагах и у себя, разбираюсь.
  • +4
    Текстуру руды алмаза сделайте более голубой, чуть ближе к Cyan. Сейчас выглядит как лазуритовая руда)
    • +5
      Неожиданный для меня комментарий исходя из контекста и цели топика :)
      Улыбнул. Действительно, поменяйте!
  • +3
    Мда, отклик управления в пол секунды это ужас
  • 0
    Как я понял вы просчитываете все на сервере?
    Локальные просчеты с отправкой их на сервер были бы эффективней, и лаги не столь заметны
    • 0
      Локальные просчёты одного игрока были бы эффективней, конечно. Но я пока не знаю как мне легко это реализовать, а ещё движок писался не совсем под аркады.
      • 0
        На сервер отправляете только события «пользователь нажал/отпустил кнопку» и отправляете это всем клиентам. Уже на пользовательских машинах считается. Так же отправляете пользователям что где выпало.
        Так же периодически отправляйте с клиентов кто-где стоит, для надежности.
        • 0
          Боюсь что при таком подходе будут возникать злые рассинхроны. Я думаю надо так: клиент может быть сам по себе, но сервер будет его поправлять, если он будет пытаться идти куда не надо.
          • 0
            Я примерно тоже самое и сказал только в иной формулировке:
            >Так же периодически отправляйте с клиентов кто-где стоит, для надежности.
            • 0
              Клиент может иметь только дополнительную логику. Он не может поправлять сервер
              • 0
                Клиент может отправлять координаты плеера серверу, а тот всем клиентам.
                • +1
                  Тогда клиент может отправить какие угодно координаты.
          • 0
            Сам делал мультиплеерный тетрис на сокетах по такой системе, вроде бы работало почти идеально
  • 0
    Ребят, я о таком мечтал! Спасибо!!!

    Технический момент — хром пишет 75 fps, вроде как 363 игрока (судя по таблице рейтинга).
    • 0
      Всё ок, лагов не наблюдаю. Играбельность в норме.
  • +7
    Вполне понравилось, но не будет-ли проблем с Hudson Soft (они вроде владельцы марки)?
  • 0
    А как изменить скин на пони?
    Если в вашем никнейме встречаются подстроки »rainbow», »apple», »twilight», »flutt», »rarity», »pink», »ditzy», »derpy», Вы получите скин персонажа мультсериала «My Little Pony»

    Что такое подстроки?
    • 0
      если ваше игровое имя содержит идущие подряд букофки из вышеперечисленных слов :-)
      • 0
        Почему-то не работает. Это только для зарегистрированных?
        • 0
          Это старое, сейчас поменяю. Зарегистрированные пользователи могут менять скины в профиле.
    • 0
      Это уже не работает, теперь можно поменять скин в профиле.

      Подстрока строки S[1…n] — это любая её связная часть от i до j, 1 ≤ i ≤ j ≤ n.
  • +1
    А танчики (Battle City) будут? На неограниченном поле, или CTF или стенка на стенку, или как в оригинале с курицей… Эээх, хочу танчики!
    • +3
      БУДУТ!
  • +21
    Какая жуткая ересь. Аргументирую:
    1. Самое главное, управление — ужас. Зачем было делать его субпиксельно плавным? Сделайте его более дискретным, как в классических играх серии — застревать на углах абсолютно не весело.
    2. Цель игрока — собрать как можно больше ресурсов, преследуя других игроков своими бомбами и обороняясь от их бомб

      Собирать ресурсы? Пфф, это попросту скучно, не говоря уже о том, что у других игроков, в общем-то, частично пропадает смысл атаковать других.
    3. С какой радости удаленная детонация и желе попадаются только в «Сюрпризе»? Желе — не настолько крутой бонус, чтобы иметь шанс в 80% вместо желе захапать болезнь. Ради удаленной детонации я тоже рисковать никогда не стану. Оба этих бонуса должны появляться наряду с доп. бомбой и усилением огня (с намного меньшей вероятностью, конечно же). Болезнь также должна быть отдельным бонусом — в Atomic Bomberman часто имело смысл пойти на риск, взяв болезнь, заразить как можно больше других игроков, а самому смыться куда подальше, пока остальные пытаются понять, что с ними происходит, одновременно учиняя хаос и массовые смерти.
    4. Болезнь «переворот экрана» — это перебор. Достаточно инвертировать управление.
    5. Замкнутая в тор карта с регенерацией — ИМХО, зло. Полностью аннулирует возможность использования зрительной памяти, карта становится непредсказуемым рандомом. Попросту скучно это всё
    6. Крохотный вьюпорт. Это что, на телефоны заточено? Вроде ж нет. Особенно печально, учитывая размеры карты

    Предложения:
    1. Отказаться от концепции «одна огромная рандомная карта на 300 игроков». Вместо этого нарисовать нормальные фиксированные карты.
    2. Изменить правила собственно игры на более классические. А именно — убрать ересь с добычей ресурсов, оставить каждому игроку по 1 жизни на матч. В матче побеждает последний выживший бомбер. Респавн происходит в начале. См. оригинальные игры Hudson Soft, в общем.
    3. Сделать множество арен. С верхним числом игроков на одной арене, зависящих от настроек арены и/или размера карты. Я хочу сыграть с другом банальную дуель, например.
    4. С предыдущим пунктом появится возможность сделать командные битвы «стенку на стенку», где победившей считается команда, бомберы которой выжили. И прочее, прочее

    • +4
      Поиграл еще, забыл написать самое главное про управление — лаги ввода. Позиция игрока должна меняться СРАЗУ же, как только игрок нажал на кнопку, а не ждать, пока сервер подтвердит положение. Бомбы пусть ставятся там, где игрок сейчас по мнению сервера. Играть с пингом (у меня около 300-400 мс) просто нереально. Примеры — см. любой сетевой шутер, хоть тот же Quake 3.
      Еще что заметил:
      1. Радиус, по которому игроки «срезают углы»на краях кубиков, слишком велик. См. Atomic Bomberman — там это реализовано идеально.
      2. Если игрок повернут, например, вправо, а прямо под ним внизу находится кубик, и при этом игрок не может переместиться вниз ни на пиксель — при нажатии на стрелку вниз он будет стоять и вообще никак не реагировать. А должен «идти» в стену (в смысле, анимация ходьбы должна проигрываться всегда при попытке движения, даже если там стена и идти некуда)

      • 0
        Спасибо за критику.
        Баланс конечно будет поправлен. С лагом ввода есть проблема — я не уверен что могу это реализовать не сильно раскурочив свой движок, у меня используется синхронная модель, движок предназначен не для аркад. Лаг ввода нейтрализуется тем что сейчас почти у всех быстрый инет, а сервера можно запустить на разных облаках.

        Если ставить цель сделать браузерную игру, повторяющую оригинал, то конечно надо сделать всё именно так как вы написали.

        Но я себе поставил задачу: собрать много народу на одном инстансе, организовать дурдом, попробовать его сбалансировать. Я ищу именно новый подход, и все ресурсы бросаю в его исследование. Конечно, если будет время и кто-нибудь мне с этим всем поможет, то и классические режимы игры будут реализованы.
        • 0
          И насчёт ресурсов — мы придумаем что с ними потом делать.
        • +2
          У меня очень быстрый интернет. Но к сожалению, есть такая штука, как география — я нахожусь в Киеве (облако, как я понимаю, в Москве) и играть очччень трудно. Как оно будет играться из-за океана — боюсь даже предположить.
          Все же по поводу лага ввода — попробуйте что-то сделать. Ибо даже с пингом 50 мс такая задержка ощущается очень хорошо. В принципе-то, вариант простейшей реализации — игрок все так же принимает от сервера свои координаты, но заменяет те, что есть на клиенте, полученными только тогда, когда разница между этими двумя позициями превысит некоторую величину. Т.е. если между спрогнозированной и полученной от сервере позицией расстояние, скажем, 100 пикселей — насильно синхронизировать.
          Впрочем, смотрите, вам виднее, можно ли это реализовать и как лучше это сделать. Просто управление в играх — это куда более важно, чем прикручивание разных плюшечек и фишечек
          • 0
            Да, такое простое я наверное могу сделать, спасибо :)
            Через океан как-то играют. Часть лага клавы относится не к пингу а к обработке событий.
        • 0
          Я вот только благодаря ZimM понял почему у меня герой стоит на месте и не реагирует: оказывается, ждет сервер. А уже начинал параллельно пытаться долбить wasd и стрелки (соотв одновременно нажимая D и стрелку вправо).

          Если хочется дурдом — ради интереса поиграйте на world of warcraft в battleground (на пиратке, например, будет вполне достаточно): там бывает до 80 человек на поле, у каждого свой пинг но играют отлично все, бывает что из-за лагов происходят визуальные блинки, но это не на столько сильно мешает.

          И дурдом это классно (+1 за то чтобы собирательные ресурсы выкинуть), но если есть возможность — сделайте комнаты повторяющие классик игру.
    • 0
      Поддерживаю предложения, согласен со всем. Еще могу добавить, что все бонусы должны исчезать если их взрывают или вовремя не берут. А стенка на стенку (командный бой) с удовольствием бы поиграл с друзьями ))
  • 0
    Жалко отклик большой
  • +1
    image
    Opera 12 beta. Больше ничего не происходит. Каунтер показывает 60 фпс.
    • +2
      Хинт для пользователей Опера 11.60 и выше — зайти в opera:config и отметить галочку «Enable WebSockets». По умолчанию она отключена и естественно, ничего не работает
      • 0
        Надо этот хинт там на сайте сделать :-)
      • 0
        Спасибо!
    • 0
      У меня такая картинка на всех браузерах…
      • 0
        Значит траффик по 80-ому порту чем-то модифицируется.
  • 0
    А какая оригинальная игра положена в основу? Я помню, на ZX-Spectrum была подобная игра, не могу вспомнить название. Help, please.
    • 0
      Насколько я помню, игра не меняла своего названия. Bomberman.
      • +2
        На некоторых рынках она существовала под названием Dyna Blaster. Именно под таким названием на PC я с этой игрой и познакомился
    • 0
      Всё. Нашёл: Eric & the Floaters. Любимая игра моей мамы.
    • +2
      ПРо спектрум не знаю, но я, вроде в досе играл в игру, называлась так же — BOMBERMAN
      вот скриншот
      image
      • +1
        Мало того, что пост сам по себе носит ностальгический характер, так тут ещё и Вы, со своими скриншотами такого характера!
        • 0
          Каюсь! Каюсь! В оправдание могу сказать, что чуть выше расположен комментарий, который для некоторых может оказаться еще более ностальгическим :-)
      • +5
        А я по денди играл
      • +2
        Черт возьми, вот эт точно ностальгия :) Dyna Blaster она называлась у нас.
  • 0
    В файрфоксе не пашет, а в сафари заработало!!! Лаги есть, примерно на 1 секунду задержка идет после нажатия клавиш
  • +3
    Как обычно, когда выкладывают развлекуху в которой есть чат — тут же набегает толпа идиотов которые чат сразу же засирают :-(
  • +1
    Лаги изучаются инженерами облака, спасибо что терпите :)
  • 0
    В пятницу… Какой коварный план :)
    Пока вполне играбильно, особых багов не замечено — достойный сиквел на html5!
  • +2
    Количество внедрений Bootstrap'а растет, как грибы после дождя ;)
    • +5
      Разве это плохо?
  • –3
    Вы извините, но «HTML5 мультиплеер онлайн игра» — это на каком языке написано? Лексика на 25% русская, два слова транслитом, грамматика английская. Вот зачем, м? Есть минимум два нормальных варианта:

    1. Online multiplayer HTML5 game
    2. Многопользовательская онлайн-игра на HTML5

    Один вариант на английском, другой на русском, оба понятны для всех. Разве трудно?
    • +1
      Многопользовательская онлайн-игра на HTML5

      Отличный вариант на английском, ага.
      [Mithgol]
      Многопользовательская сетевая игра на языке гипертекстовой разметки 5 версии.
      [/Mithgol]
      • 0
        Я не доводил до абсурда. Речь шла о соблюдении грамматики при допущении заимствований в лексике.
  • +1
    Прикольно, всегда обажал эту игру.
    Только вот название лучше поменять, Bomberman Online был когда-то на дримкасте. Плюс бомбермен — это торговая марка…
    • 0
      Дык название тут не Bomberman, а совсем даже Bombermine
      • 0
        а на картинке написано BomberMAN
      • 0
        Пардон, но название топика
  • 0
    Супер. Только я не понял зачем Вам хабра люди для нагрузочного тестирования? Вы вполне могли 90% проблем выявить одними нагрузочными тестами… А потом уже сюда выкладывать.
    • 0
      Согласен, часть сегодняшних багов можно было найти и без хабравчан.
      Тем не менее минимальная подготовка к релизу и некоторые тесты были. Много чего я мог ещё сделать, и в плане геймплея, и в плане тестирования, и в плане теоретической подготовки перед написанием такого сервера. Но кровь кипит и очень хочется в бой!
  • 0
    Не успел поиграть, как лавочка свернулась.
    • 0
      Как свернулась так и развернулась. Конец раунда это, игра продолжается.
      • 0
        Ну что ж, подожду-с
  • 0
    Решил дома поиграть и на тебе
  • +3
    Спасибо.
    С нетерпением жду Heroes III online.
    • 0
      И старкон второй )
  • +1
    А расскажите технические подробности. Больше всего интересует, как реализовали рендер на клиенте
    • +1
      Всему своё время. Про рендер — там всё просто, это думаю расскажу полностью.
    • 0
      Поддерживаю. Интересно как вы «облачность» делали на сервере.
      • 0
        Пока никак, все играют на одном инстансе. Масштабировать будем комнатами.
  • +3
    Я вас ненавижу! не могу оторваться :(
  • 0
    Глюки страшные
  • 0
    Все ок, кроме лагов, и сжирания всей оперативки на хроме
  • +1
    Ок, спасибо, всё упало, чиним :)
    • 0
      Починили. Разбираемся что это было )
  • 0
    А зачем jetty? Node.js недостаточно быстр для вычислений в 60fps?
    • 0
      60fps тут вообще ни при чем, апдейтов всего 10 в секунду. Сервер и клиент игры написаны на Java.
      Node.js работает лишь на регистрацию, авторизацию и выдачу статистики.
  • +7
    Читеры надоели:
  • 0
    Классная игрушка, автору спасибо.
  • 0
    Было бы отлично, если бы вы вывели дубликацию кнопок клавиатуры, иначе айпад юзеры будут чувствовать себя обделенными.
  • 0
    Жаль что на айпаде не поиграть, стрелочек нету :)
  • 0
    Мега супер!!!
  • +2
    Hint: для оперы можно сделать активную ссылку с адресом opera:config#UserPrefs|EnableWebSockets
    • 0
      Спасибо, сделали.
  • +3
    Реквестирую open source!!!
  • 0
    Реквестирую HD, чтобы на весь экран можно было запеньдюрить.

    Спасибо Вам!
    • 0
      Сделали Fullscreen mode — Enjoy :)
  • +2
    Вы бы аннулировали слишком давние нажатия клавиш пользователя, например, старше 0.4 секунды. Потому что они вступают в эффект тогда, когда я «чувствую», что они потерялись и уже не должны действовать. В итоге в последний момент заворачиваю на бомбу.
  • 0
    А GWT чистый или какой-то игровой еще движок на нем?
    • 0
      Ответ на пост ниже, сорри :)
  • 0
    Чистейший. Собирается статическая страница, на бэкенде GWT нету.
  • +1
    дичайше реквестирую например team deathmath и cft
    • +1
      Битвы 8x8 на сравнительно небольшой площади были бы великолепны.
      • +2
        Обещаю что всё будет! И обычный CTF и массовый CTF!
      • 0
        В особенности если 8x8 это восемь команд по восемь игроков.
  • 0
    Для полноты ощущений — Joy2Key, чтоб с геймпадом играть :-)
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Неплохо было бы добавить бонус позволяющий видеть обратный отсчёт времени до взрыва на каждой бомбе.
    • 0
      Думаю можно. Только вот на время (минута-две) или же до смерти?
      • 0
        Я имел ввиду таймеры на самих бомбах, что типа «3...2...1… бум». С таким бонусом можно будет довольно умело избегать взрывов.
        • 0
          Извиняюсь, туплю, думаю лучше до смерти как и толкание бомб.
        • 0
          Да, я так и понял. Кроме того будет цветовая градация от зеленого до красного.
          Вопрос только в том, давать ли бонус на все время жизни или на определенный временной промежуток, так как бонус достаточно сильный.
  • 0
    Спасайте меня… как выхожу из игры — всё пульсирует (как бонусы), кругом вижу бомбы и бонусы, всё время убегаю от «бомб»…
    • 0
      Может ты какую-то болезнь в игре подхватил? :)
  • 0
    Всем авторам плюсы) Классно

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.