Контроллер кнопок для игры brain ring v2.0

Контроллер кнопок для игры Brain Ring v2.0

Это не первая моя статья про контроллер кнопок для игры Brain Ring (менее известное название “Свояк”, но правила там немного отличаются – в Brain Ring можно уходить в “минуса” за неправильный ответ).

В предыдущем варианте контроллер кнопок был выполнен на платформе Arduino, этот же вариант использует в качестве главного элемента схемы микроконтроллер компании Microchip – PIC12F683. Данный выбор обусловлен не только стоимостью ATmega8 (о стоимости всей платы Arduino я молчу), но и размерами корпусов этих МК.

У меня в распоряжении на момент разработки уст-ва был корпус типа “Малышка”. Из-за его небольших размеров пришлось вынести преобразователь USB-UART за пределы корпуса. Вот что в итоге вышло:

Итак, начнем по порядку.

1. Предназначение

Это устройство (как я уже писал выше) предназначено для проведения командных игр “Brain Ring”. Но с его помощью можно так же проводить и “Свояк”. Различия в правилах игр незначительные – в “Brain Ring” за неправильный ответ игрок получает “-“, а в “Свояке” не получает ничего. Так как устройство работает в паре с ПК, то в программе для последнего я реализовал поддержку обоих систем.

2. Принципиальная схема и печатная плата

Принципиальная (электрическая) схема устройства достаточно проста.

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

Всего в схеме используется 13 деталей (без учета деталей преобразователя USB-UART, так как вместо него можно взять обычный телефонный шнурок на CP2303). Ниже представлена принципиальная схема устройства:

*Элемент P1 использовался мной для отладки схемы в Proteus, и в реальной схеме его нет. Но в реальной схеме на его месте стоит преобразователь USB-UART.

Печатная плата для сего девайса получалась так же достаточно простенькой:

3. О работе схемы

Как вы видите схема питается от USB. Это одна из причин,по которым я не захотел использовать преобразователь TTL-RS232. Ведь в таком случае пришлось бы использовать внешнее питание. Ну вторая причина общеизвестна – в современной компьютерной технике COM порт очень нечастый гость, тем более на ноутбуках. 

Для подключения кнопок я использовал пины микроконтроллера GPIO0-GPIO2. Решив, что отслеживать нажатия по высокому уровню на входах будет удобнее (наверное последствия работы с советской логикой :)), подтянул эти выводы к земле, через резисторы порядка 1кОм. 

Для связи с ПК, как уже упоминалось, используется UART. Но так как в данном микроконтроллере “железно” реализованного интерфейса нет, то пришлось использовать программный.

 Функциональность у программного UART значительно ниже, но для поставленных задач он вполне годится.

Вход “reset” микроконтроллера я отключать не стал (я чаще работаю с микроконтроллерами фирмы Atmel , а там это табу!), хотя в данном случае от него толку “0”

4. Прошивка МК

Прошивка для МК была написана в среде mikroPascal.

Как уже упоминалось, МК тактируется от внутреннего генератора на 4МГц, а для связи используется программный UART.

Теперь собственно о прошивке. Вот ее исходный код:

program BreinRing; label a,b,c; begin CMCON0:=0x7; ANSEL:=0x0; GPIO:=0x0; Soft_UART_Init(GPIO,4,5,2400,0); While true do begin if (Button(GPIO,0,100,1)) then begin soft_uart_write(1); a: if (Button(GPIO,0,0,1)) then goto a; end else if (Button(GPIO,1,100,1)) then begin soft_uart_write(2); b: if (Button(GPIO,1,0,1)) then goto b; end else if (Button(GPIO,2,100,1)) then begin soft_uart_write(3); c: if (Button(GPIO,2,0,1)) then goto c; end; end;
end.

Первым делом в программе отключаем компаратор и АЦП, далее записываем в регистр GPIO “0” и инициализируем софтверный UART. После этих действий запускаем бесконечный цикл.

Собственно в этом цикле и происходит постоянный опрос кнопок.

Например, нажата кнопка 1. На входе GPIO0 устанавливается высокий уровень, и программа определив это переходит к выполнению заданных действий : отсылает по UART номер нажатой кнопки (в данном случае “1”), и проверяет, нажата ли еще эта кнопка, если да – возвращается на метку “a” и далее по кругу. Как только кнопку отпускают, программа снова начинает проверку состояния остальных кнопок.

Задержки при опросе кнопок я использовал для “отсеивания” дребезга контактов.

Вот так нужно выставить конфигурационные биты (WinPic800)

5. Программа для ПК

Эту программу я писал в среде Embarcadero Delphi XE3.

Главное (и единственное) окно программы:

Настройки, счет команд и остальное реализованы выезжающих панелях. Ну, например панель настроек:

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

7. Замена деталей

На схеме деталей очень мало, но кое-что можно заменить. Так, микроконтроллер можно заменить на PIC12F609, но нужно будет убрать строчку отключения АЦП, так как его в нем нет. Без изменения кода, можно взять МК PIC12F510 (никогда его не видел).

Резисторы выступают в роли подтяжке к “земле”, по этому можно взять от 1 кОм до 10 кОм.

Конденсатор можно не ставить, он стоит “на всякий пожарный”. Но как показывает практика схема неплохо работает и без него.

8. USB-UART

В своей схеме я использовал преобразователь USB-UART на FT232RL. Сразу скажу – те, кто не уверен, что сможете запаять эту микросхему, не беритесь. При всей своей функциональности она очень не любит перегрев, и даже просто перепутав выводы UART можно вывести ее из строя (именно таким способом я и отправил уже 2 микросхемы на свалку:( ).

Преобразователь я собирал с этой печаткой:

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

Вот что вышло:

Но, как уже упоминал, если у вас есть старый шнурок от NOKIA или что-то похожее, с преобразователем USB-UART внутри (обычно ставят PL2303), можно попытаться использовать его. Но, у меня такое китайское творение нашлось, и я попытался через него подключиться к пк…… Эксперимент не удался. Пакеты если и приходили, то не считывались в терминале, пришлось ваять вышеуказанный преобразователь.

Детали для преобразователя я не включил в список элементов, так как это общеизвестная схема включения из даташита. По той же причине не стал рассматривать схему преобразователя.

И в заключение, фото устройства:

За качество видео не бейте, я вообще удивлен что китайская вебка может что-то записать…. Если что, видео с экрана писал AVS Video Editor, а с камеры – VirtualDub.

Скачать список элементов (PDF)

Прикрепленные файлы:

  • SGBreinRing.rar (3620 Кб)

Источник: http://cxem.net/mc/mc260.php

Брейн-система

В последнее время набирают популярность различные виды интеллектуальных игр: «Что? Где? Когда?», «Мелотрек», «Брейн-ринг». Но для некоторых видов игр не обойтись без специальной системы, которая будет управлять ходом игры. Вот в рамках курсового проекта решили попробовать сделать свою брейн-систему.

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

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

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

Необходимые компоненты

  • Arduino Nano
  • Динамик
  • Светодиоды 8 шт.
  • Кнопки 4 шт. для игроков и 2 для ведущего
  • Неработающий роутер
  • DIP-переключатель
  • Резисторы:
  • 8 шт. – 100 Ом (для диодов)
  • 6 шт. – 10 кОм (стягивающие резисторы)
  • 6 шт. – 1 кОм для дребезга
  • 4 шт. – 470 Ом для DIP (не обязательно)
  • 5 шт. – триггер Шмитта (но можно обойтись и одним)
  • Конденсаторы – 6 шт. 1 мкф
  • Ethernet-кабель 4 шт.
  • Разъемы RJ-45 — 4шт.
  • Корпус для кнопок

Структура системы

Стоит сказать, что систему можно разделить на 3 блока: главный модуль, кнопки игроков (4 штуки) и соединительные кабели. Система содержит 4 кнопки игрока. Если игрок успел нажать раньше остальных, то на его кнопке загорается светодиод.

Пульт ведущего. Если игрок нажал кнопку на своем пульте, то на главном блоке загорается диод, соответствующий кнопке игрока. Этот модуль осуществляет выбор режима игры. У ведущего есть две кнопки Старт и Сброс. В зависимости от игры с помощью этих кнопок включается и сбрасывается таймер.

На Ардуино приходят сигналы с кнопок. Если кнопка нажата, то загорается диод на кнопке и на пульте ведущего и включается звуковой сигнал. Это главная концепция.

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

Начало разработки

Мы начали с самого простого. На макетной плате собрали схему, которая включает диод. Всё заработало! Двигаемся дальше. Подключили Arduino и кнопки, при нажатии на которые загорались диоды. И тут мы столкнулись с проблемой дребезга кнопок.

В кнопках нужно убрать дребезг сигнала, иначе система будет думать, что на кнопку нажимают много раз.

Для кнопок игроков это не очень страшно, мы все равно ловим первое нажатие, а вот на кнопке ведущего старт от дребезга надо обязательно избавляться, так как в брейн-ринге нужно знать сколько раз нажат Старт.

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

И в кнопках, и в главном модуле используются светодиоды. Но 5В это слишком большое напряжение для них. Поэтому чтобы предотвратить сгорание диодов к ним последовательно подключаются резисторы. Рассчитать сопротивление резисторов можно здесь. За счет того, что все светодиоды одинаковые, нам понадобилось 8 резисторов по 100 Ом.

Режим игры выбирается с помощью DIP-SWITCH:

  1. Брейн-ринг
  2. Что? Где? Когда?
  3. Эрудит-квартет, Тройка, Своя игра (работа системы в этих играх одинаковая)

Программная часть

Лень – залог успеха.

Параллельно с разработкой схемы писался код. Было очевидно, что нажатия кнопок стоит обрабатывать через прерывания. Вычитав про 2 внешних прерывания INT0 и INT1, мы расстроились, потому что для аж 6 кнопок двух прерываний маловато и придется повышать разрядность через регистр.

Поскольку с аппаратными вещами вживую мы столкнулись в первый раз, то для нас было все сложно и непонятно. В общем, мы не очень обрадовались этому факту.

Не поверив, что нашу проблему нельзя решить как-то по-другому, мы наткнулись на Pin Change Interrupt Requests, которые идеально подошли для нашего проекта. Никаких регистров!

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

В нашей брейн-системе кнопки SET и RESET соответствуют пинам D8 и D9, а кнопки пользователей — A0-A3. Поэтому мы определили только два обработчика прерывания для каждой из используемых групп прерываний.

  • ISR(PCINT0_vect) – для кнопок ведущего.
  • ISR(PCINT1_vect) – для пользовательских кнопок.

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

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

Настройка прерыванийISR(PCINT0_vect) { noInterrupts(); isPushed = false; if (digitalRead(ADMIN_BUTTON_SET) == HIGH ) { gameMode->Set(); Timer1.attachInterrupt(TimerInterrupt); gameMode->SetFalseStart(false); } if (digitalRead(ADMIN_BUTTON_RESET) == HIGH) { Timer1.stop(); gameMode->Reset(); gameMode->SetFalseStart(true); } interrupts();
} ISR(PCINT1_vect){ noInterrupts(); if (isPushed == false){ for (int i = 0; i < ARRAY_SIZE(ARRAY_USER_BUTTON); i++){ if (digitalRead(ARRAY_USER_BUTTON[i]) == HIGH){ isPushed = gameMode->UserButtonPushed(ARRAY_LED[i]); } } } interrupts();
}

Весь код здесь.

Монтаж

Паяльник мы видели первый раз, поэтому начали с традиционного диода. Спаяли — диод загорелся! Затем спаяли кнопки. Проверить правильно ли все сделано было достаточно сложно, потому что главный модуль был все еще на макетной плате.

Спаяли кнопки ведущего, диоды, переключатель режимов игры. В процессе мы поняли, что можно было обойтись и одним триггером Шмитта. Тогда его следует перенести в главный модуль, подвести к нему выходы кнопок через сетевой кабель, а сигналы с его выхода подавать на Arduino.

В целом главный блок был готов. Но по-прежнему он был не связан с кнопками игроков. За основу главного блока мы взяли нативную плату от роутера, в которой было выгодно использовать разъемы RJ-45. Хотя об этом мы слегка пожалели, ибо вырезать плату и напаивать контакты по второму кругу не самое приятное занятие. Но все прошло достаточно успешно.

Мы использовали для передачи логической 1 бело-оранжевый проводник, для логического 0 — оранжевый, сигнал на диод — бело-зеленый и сигнал с кнопки — зеленый. Хотя можно использовать любые, главное проверить какой кабель используется, потому что существуют различные варианты обжима.

Теперь главный модуль и кнопки соединялись и системы была практически готова, но появился один баг, которого не было на макетной плате. Если кнопка не была подключена к главному модулю, то система думала, что эта кнопка нажата. На просторах Интернета мы нашли решение – стягивающий резистор.

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

После решения данной проблемы всё заработало.

Особенности режимов игр

Особенности брейн-ринга. Если старт не был нажат, то система определяет нажатие кнопок как фальстарт. Если старт нажат первый раз, то система будет ждать 20 секунд нажатия кнопок, по истечении времени система подаст звуковой сигнал.

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

Для этого после второго нажатия на старт таймер запуститься на 10 секунд. Кнопка Reset сбрасывает систему, ее нажимают перед чтением следующего вопроса.

Особенности Что? Где? Когда?

После нажатия Старта подается звуковой сигнал. Звуковой сигнал подается после 50 и 60 секунд. В остальных играх отлавливается только нажатие кнопок игрока. Благодаря удобству работы с Arduino можно реализовывать и другие игры: менять таймер, разрешать фальстарт и т.д. это можно реализовать, добавив соответствующий код.

Заключение

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

В качестве улучшения системы можно добавить выход для колонок, чтобы можно было играть на больших турнирах.
Что касается платы Arduino, то работать было легко и приятно. На просторах интернета достаточно информации и простых туториалов по сборке не самых простых для незнающего человека полезных и интересных штук.

Это вполне может перерасти в хобби.

В проекте принимали участие Оксана Козлова и Марина Бардиян.

Источник: http://www.pvsm.ru/arduino/121913

JoyToKey – настройка геймпада для управления игрой | Настройка компьютера с двумя мониторами

Некоторые игры не поддерживают управление геймпадом, а управлять с клавиатуры неудобно из-за сложных комбинаций клавиш, тогда для настройки геймпада можно использовать программу JoyToKey. JoyToKey также позволяет управлять браузером, Microsoft Office, можно использовать даже в Windows.

Скачать русифицированную программу JoyToKey 5.01_(rus).

Настройка производится таким образом – подключив геймпад и запустив программу, нажимаем выбранную клавишу на геймпаде:

строка выделится цветом, затем выбираем “изменить значение” и откроется окно выбора функции для этой кнопки. Затем жмем клавишу на клавиатуре, которую вы переносите на геймпад и подтверждаем этот выбор – “Да”

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

Как вместо мыши назначить кнопки на геймпаде

Переназначить нажатия кнопок, вращения колеса и движения мыши на геймпад используя триггеры, бамперы и D-пад:

При желании используйте стики или другие кнопки геймпада.

Всё делается по аналогии с переназначением клавиш клавиатуры, то есть поочередно нажимаете выбранные кнопки геймпада и назначаете левую, правую кнопки мыши, затем то же с вращением колеса вверх-вниз и движениями мыши влево-вправо и вверх-вниз. Смотрите скриншоты:

ПКМ и ЛКМ назначим на right and left bumpers –

колесо вверх и колесо вниз назначим на left and right triggers –

курсор вверх-вниз-влево-вправо назначим на D-pad –

Кстати, кто любит полетать на самолете в Microsoft Flight Simulator может использовать геймпад для управления самолетом просто переназначив комбинации клавиш клавиатуры, и  лучше использовать два монитора – на одном выполняется сам полет, на втором располагаются навигационные приборы.

Для удобства контроля за приборами в MFS расположите мониторы друг над другом при помощи крепление для двух мониторов LX Dual Stacking Arm Ergotron:

На большем дисплее выполняется полет, на меньшем – располагаются приборы навигации

 Настройка экранов при вертикальном расположении мониторов –

перетаскиваем мышкой эскизы экранов в Экран->Разрешение экрана из горизонтали в вертикаль:

Удачной игры. Скачать JoyToKey 5.01_(rus) на геймпад чтобы играть во все игры.

Еще программы для настройки геймпада –  Xpadder и x360ce (Xbox 360 Controller Emulator).

При использовании Вами геймпада любого производителя:

x360ce эмулирует геймпад от Xbox,

Xpadder эмулирует клавиатуру и мышь.

Скачать Xpadder_v5.7(rus)

Скачать x360ce_x32 , x360ce_x64

Gamepad Darkfinity для смартфона или планшета:

Playstation 3 boomerang controller:

Wii Zapper-контроллер от консоли Wii:

Источник: http://PCholic.ru/nastrojka-upravleniya-igroj-s-pomoshhyu-joytokey.html

Мак чгк unofficial

Принимаются заказы на системы для брейн-ринга и свояка. В Занки я в этом году еду не на полный срок, только на выходные, поэтому уточняйте, когда сможете забрать (или через кого передать).В наличии есть системы аналогичные той, что привозил в прошлом году,
Режимы игры: “Своя игра” и “Брейн-ринг”, с возможностью простого переключения.

Кнопки: 4 штуки со шнурами по 2 метра.  У ведущего также есть кнопки “Верно” и “Неверно”, кнопка включения.  
Таймеры: на 1 минуту,  на 5 секунд на ответ.
Индикация: световая (4 светодиода на самой установке + 4 на кнопках у участников) и звуковая (пищалка).

Питание: 3 батарейки АА, которых хватает примерно на 100 часов активной игры. 

Логика работы устройства в режиме “Своя игра”:

Ведущий задает вопрос, несколько игроков нажимают кнопки (неважно, удерживают или нажали и отпустили) – у нажавшего первым игрока на кнопке загорается светодиод, у ведущего на установке загорается светодиод с номером, соответствующий номеру игрока.

После этого светодиоды мигают, отсчитывая 5 секунд на ответ. Ведущий может нажать “Верно”, если игрок ответил правильно, в таком случае подается звуковой сигнал и можно переходить к следующему вопросу.

Ведущий может нажать “Неверно”, если игрок ошибся , в таком случае кнопка игрока блокируется, а кнопки оставшихся игроков продолжают функционировать.

Как только ведущий нажимает “Верно” или в игре не остается незаблокированных игроков, все кнопки разблокируются, можно переходить к следующему вопросу.

Логика работы устройства в режиме “Брейн-ринг”:
Ведущий задает вопрос, по окончании чтения нажимает кнопку.

Если кто-то нажал на кнопку до него, этот игрок блокируется (фальстарт). После этого начинается отсчет времени (1 минута). Если в течении минуты кто-то нажимает кнопку, мигают светодиоды на кнопке и установке, отсчитывая  5 секунд на ответ. Если ведущий жмет “Верно”, все разблокируются, можно переходить к следующему вопросу.

Если ведущий жмет “Неверно” – игрок блокируется, остальным идет отсчет времени 1 минута. Если все отвечают неверно или минута истекает – подается звуковой сигнал, можно переходить к следующему вопросу.стоимость установки – 200 грн (25$, 700 рублей).

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

Источник: http://mak-chgk.ru/post_18067/

Программы для настройки геймпада на компьютере

Добрый день, уважаемые читатели.

Бывали ли у вас моменты, когда вы хотели бы поиграть в игру с геймпадом, но он не определяется игрой и вам приходится переходить на клавиатуру и мышь? Если это игра с удобным управлением с клавиатуры, то все не так плохо, но если вы хотите поиграть в Dark souls или Mortal kombat, Shank, Devil May Cry, Super Meat Boy и т.д., то вам однозначно нужен настроенный геймпад.Поэтому я хотел бы познакомить вас с 3 отличными программами для настройки вашего геймпада.

Программа для настройки геймпада — Xbox360ce

В следствии того, что Microsoft начали использовать новый программный протокол для настройки геймпада в играх, старые контроллеры перестали работать в большинстве новых игр.

Да и среди новых джойстиков отлично работает только контроллер от Xbox 360 и фирменные дорогие геймпады, умеющие переключаться на «боксовый» протокол (Razer, Thrustmaster и тд).

Эта программа позволит вам обмануть игру, заставить её верить в то, что вы играете на контроллере от Microsoft. Для работы вам потребуется настроить раскладку на геймпаде. После этого программа сохранит в свою директорию несколько файлов, которые нужно переместить в игру.

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

Xpadder — настройка геймпада в любой игре

Xpadder — одна из самых распространенных программ для эмулирования кнопок мыши и клавиатуры на геймпаде. Настройка программы — элементарна. Выбираете картинку для отображения клавиш в программе.

После этого выбираем из списка какую клавишу геймпада будем эмулировать и нажимаем эту клавишу на геймпаде. Xpadder с выходом новой версии перестал быть бесплатным, но вы можете скачать более старую версию программы. Если у вас win 8.

1 или win 10, не забудьте включить режим совместимости с win 7.
Ссылка на старую версию Xpadder

JoyToKey — бесплатная альтернатива Xpadder’у

Из-за того, что Xpadder стал платным можно воспользоваться отличной бесплатной альтернативой — программой JoyToKey.
JoyToKey позволяет назначить клавиши на геймпад и даже поддерживает ускорение и вибрацию.
Скачать JoyToKey можно на официальном сайте.

Источник: http://DataGame.su/programmy-dlya-nastroyki-geympada-na-k/

Игра BRAIN / OUT – аддиктивный экшн. Промо-коды для кейсов (контейнеров)

Игра Brain / Out — это многопользовательский шутер в духе пост-советского пространства от разработчика Desertkun (Александр Серый) из Ростова.

В игре вас ждут динамические сражения с внушительным выбором оружия и спец. средств для уничтожения противника. Соскучились по старым-добрым двумерным шутерам?

Brain / Out – то что нужно! Создаваемый любителями жанра, этот проект сочетает в себе вылизанную до блеска мультиплеерную механику и тонну веселья!

  • Убивай по контракту или грабь, чтобы выжить. Наемники и Мародеры сражаются не за идеалы своей страны или идеи общества. Сейчас людьми движет только жажда наживы. Остаться в живых и заработать крупную сумму – единственная цель этого конфликта, который проходит на территории пост-советского пространства.
  • Независимо от того, как экипирован ваш противник, победить в бою может только профессионал в своем деле. Любой боец способен повлиять на итог сражения даже не имея при себе ни единого патрона. Бери в руки нож и бейся до последней капли крови.
  • Большой выбор оружия для локальных сражений. Наборы винтовок натовского и российского образца, а так же редкие и уникальные предметы, которые достанутся только самым удачливым солдатам.
  • Легкая система вооружения в которой каждый может выбрать то, что ему по душе. Улучшайте характеристики оружия, прокачивайте навык владения любимого ствола, собирайте и разбирайте найденные трофеи на запчасти, чтобы повысить уровень Техника.
  • Используй дополнительные спец. средства: бронежилеты, шумовые и осколочные гранаты, подствольные гранатометы, каски, мины и многое другое. Используйте все эти преимущества для выполнения Боевых задач.
  • Чем лучше Вы сражаетесь, тем больше вооружения будет доступно. Самые лучшие бойцы будут представлены к награде. Старайся попасть в списки выдающихся и отличившихся!

Игра до этого была доступна для скачивания с официального сайта, после успешно прошла Greenlight и теперь её можно бесплатно скачать непосредственно в Steam.

Steam-линк: Brain / Out

Паблик игры: vk.com/brainoutgame

Приятной игры, банда!

Руководство для новичков игры:

  • Вам понадобится сперва открыть мину С4, заходим в игру и устанавливаем её под себя.

  • Пишем в чат (нажав кнопку Y) “we are legion
  • Детонируем заряд -> умираем
  • Маска появится в перках (это четвёртый слот)

200 золотых контейнеров раздаются среди подписчиков нашего сайта – заполни форму в правом меню сайта “WLB Почтальон”: F4YJ-MT55-8H21

Источник: http://welovebundles.ru/brain-out/

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}