исходный код игровых автоматов

Секретный способ выиграть без взлома с помощью мобильного телефона или смартфон

Этот способ позволяет выигрывать на игровых автоматах Новоматик (Адмирал) без взлома (без вмешательства или внесения изменений в программу игрового автомата). Т.е. не требуется проникновения во внутренности игрового автомата.

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

исходный код игровых автоматов

Для создания самих алгоритмов предназначена программа «калькулятор». Программа создает специальный файл (действие которого можно регулировать от нескольких часов до нескольких суток). Созданные файлы уже будут работать на КПК. Загрузка файлов на смартфон происходит через флеш карту.

Способ выиграть игровой автомат Гаминатор без доступа и взлома с помощью мобильного телефона основан на расчете математических расчетов игровых автоматов генератора случайных чисел. Специальная программа «RNGenerator» позволяет произвести расчет случайных чисел.

Теперь с помощью программы «RNGenerator» не требуется доступ к электронике игрового автомата чтобы выиграть. Для работы не нужно устанавливать сим-модули с баговыми прошивками или еще какие либо девайсы.

Способ работает без открытия дверей и проникновения в игровые автоматы.

Выиграть игровые автоматы Новоматик, Гаминатор, Адмирал теперь можно с помощью мобильного телефона.

исходный код игровых автоматов

Специальная программа: «RNGenerator» создает математические алгоритмы генератора случайных чисел для игровых автоматов. Полученные файлы с алгоритмами переносятся через sd-карту на мобильный телефон.

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

Видео демонстрация работы баговых прошивок на игре: Book Of Ra

Видео демонстрация на игре: American Poker

Источник

Русские придумали гениальный способ обманывать игровые автоматы, от которого казино не могут защититься

исходный код игровых автоматов

В начале июля 2014 года бухгалтера из казино Люмьер Плейс [Lumiere Place] в Сент-Луисе обнаружили, что несколько их игровых автоматов сошли с ума на пару дней. Программное обеспечение, одобренное правительством, даёт автоматам фиксированную фору математическими методами, так, чтобы казино были уверены в том, сколько они заработают в долгосрочной перспективе – допустим, 7,129 центов на каждом долларе. Но 2 и 3 июля несколько автоматов из казино Люмьер выдали гораздо больше денег, чем приняли, несмотря на отсутствие каких-то особенных джекпотов. Такое отклонение на жаргоне индустрии называется отрицательным удержанием. И поскольку ПО не подвержено приступам безумия, единственным объяснением было то, что кто-то жульничает.

9 июня Люмьер Плейс поделилась находками с Комиссией азартных игр Миссури, выпустившей предупреждение по всему штату. После этого несколько казино обнаружили, что их обманули точно так же, хотя в некоторых случаях у них играли другие люди. В каждом случае злоумышленник держал мобильник поближе к автомату Aristocrat модели Mark VI незадолго до того, как ему начинало везти.

Изучив данные автопроката, власти Миссури идентифицировали мошенника из Люмьер Плейс как Мурата Блиева [Murat Bliev], 37-летнего русского. Блиев вернулся в Москву 6 июня, но организация, базирующаяся в Санкт-Петербурге, распределяющая десятки своих оперативников для манипулирования игровыми автоматами по всему миру, быстро отправила его обратно в США для работы с другой командой. Решение о повторной отправке Блиева в США станет редкой ошибкой организации, по-тихому зарабатывающей миллионы на взломах самых ценных для игровой индустрии алгоритмов.

Из России с обманом

К 2011 году казино в центральной и восточной Европе начали регистрировать инциденты, в которых автоматы австрийской компании Novomatic выдавали невероятно большие суммы. Инженеры Novomatic не смогли найти доказательств того, что с их машинами что-то сделали, и они решили, что мошенники придумали, как предсказывать поведение автоматов. «Путём целенаправленного долговременного наблюдения за ходом отдельных игр, а также, вероятно, записями отдельных игр, возможно определить некие „закономерности“ в выпадении игровых результатов», – сообщила компания своим клиентам в феврале 2011.

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

Но приставка «псевдо» как бы намекает на не совсем полноценную случайность чисел. Поскольку люди создают их при помощи инструкций в коде, ГПЧ остаются немного детерминированными. Генератор по-настоящему случайных чисел нужно задействовать вместе с каким-либо явлением, не созданным человеком – например, с радиоактивным распадом. ГПЧ берёт начальное число, и проводит его через различные функции, смешивая с такими переменными, как машинное время компьютера – чтобы выдать результат, на первый взгляд непредсказуемый. Но если хакеры смогут определить ингредиенты этой математической похлёбки, они потенциально способны и предсказать вывод ГПЧ. Процесс реверс-инжиниринга становится легче, когда у хакера есть доступ к внутренностям слот-машины.

Но просто разобраться с тайной арифметикой, используемой автоматом для генерации псевдослучайных чисел – это ещё полдела. Входные данные ГПЧ зависят от временного состояния автомата. Начальные значения в разное время разные, поскольку данные поступают из внутренних часов. Так что, даже если понимать работу ГПЧ автомата, хакерам необходимо проанализировать его игру, чтобы вычислить закономерности. Это требует времени и компьютерных мощностей, а работать на своём ноутбуке в казино – прекрасный способ привлечь внимание охраны.

Мобильники из Печанга вместе с данными расследований в Миссури и в Европе выдали ключевые детали дела. Согласно консультанту по безопасности из казино Лас-Вегаса, Вилли Эллисону, отслеживавшему российских хакеров несколько лет, оперативники используют телефоны для записи пары десятков прогонов той игры, которую они хотят обмануть. Они загружают видео техникам в Санкт-Петербурге, анализирующим видео и подсчитывающим закономерности на основе данных по работе ГПЧ этой модели автомата. Наконец, команда из Санкт-Петербурга передаёт список временных маркеров для специально написанного приложения на телефоне оперативника. Маркеры за четверть секунды до того, как оперативник должен нажать кнопку, передают ему сигнал через вибрацию телефона.

Многоразовый бизнес

Поскольку автоматов в родной стране Мурата Блиева нет, он не задержался в России, вернувшись из Сент-Луиса. Он ещё дважды летал в США в 2014 году, и второй визит начался 3 декабря. Из аэропорта он сразу направился в Сент-Чарльз, где встретился с тремя другими людьми, натренированными обманывать игровые автоматы Mark VI Aristocrat: Иваном Гудаловым, Игорем Лареновым и Евгением Назаровым. Квартет планировал провести следующие несколько дней в атаках на разные казино Миссури и западного Иллинойса.

Блиеву не нужно было возвращаться. 10 декабря, вскоре после того, как его заметили в Казино Голливуд в Сент-Луисе, четырёх мошенников арестовали. Поскольку Блиев с сообщниками работали в нескольких штатах, федеральные власти обвинили их в мошенничестве. Официальные обвинения стали первым серьёзным препятствием в работе Санкт-Петербургской организации. До этого ещё ни одного их оперативника не подвергали суду.

Блиев, Гуданов и Ларенов, граждане России, договорились со следствием и были приговорены к двум годам лишения свободы с последующей депортацией. Назаров, гражданин Казахстана, получивший в США убежище на религиозной почве в 2013 году, и теперь являющийся резидентом Флориды, всё ещё ожидает приговора – а значит, сотрудничает с властями. Представители Aristocrat отмечают, что одному из четырёх обвиняемых пока не вынесли приговор, поскольку он «продолжает помогать ФБР в их расследовании».

Информация, которую предоставляет Назаров, может быть безнадёжно устаревшей. Через два года после арестов оперативники из Санкт-Петербургской организации стали более осторожными. Некоторые уловки были вскрыты в прошлом году, когда сингапурские власти поймали и осудили команду: один из её членов, чешский гражданин Радослав Скубник, выдал детали финансовой структуры организации (90% дохода идёт в Санкт-Петербург) и тактику действий. «Они сейчас кладут мобильник в нагрудный карман, и прячут его за сеткой, чтобы его не нужно было держать в руках», – говорит Эллисон. Даррин Хоук говорит, что получал сообщения о передаче видео в Россию через Skype, так что им не нужно отходить от автоматов, чтобы загрузить видео.

Судя по всему, мошенников осудили всего в двух случаях, в Миссури и в Сингапуре, но некоторых также ловили и выдворяли из отдельных казино. Организация из Санкт-Петербурга отправляет своих оперативников всё дальше. В последние месяцы не менее трёх казино в Перу сообщили, что были обмануты русскими игроками, игравшими за старыми автоматами Novomatic Coolfire.

Экономическая реальность игровой индустрии такова, что организация из Петербурга гарантированно будет процветать и далее. Нет простого способа исправить игровые автоматы. Как говорит Хоук, производителям Aristocrat, Novomatic, и всем остальным, чьи ГПЧ подверглись взлому, придётся «отозвать все автоматы и заменить их на что-то другое, а они этим заниматься не будут». Aristocrat заявила, что не смогла «обнаружить дефекты в играх, подвергшихся атаке», и что автоматы «построены и одобрены согласно строгим техническим стандартам». В то же время, большинство казино не могут себе позволить покупать обновлённые игровые автоматы, использующие шифрование ГПЧ для защиты математических секретов. И пока старые, взломанные автоматы, всё ещё пользуются у клиентов популярностью, казино будет выгоднее использовать их и далее, принимая периодические потери в пользу мошенников.

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

Источник

Можно ли выиграть в азартные игры? Симуляция на языке Python

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

исходный код игровых автоматов

Кому интересны подробности, прошу под кат.

Игральные кости: игра крэпс

Самый наверное, интуитивно простой и понятный вариант — есть кубик с метками от 1 до 6, и вероятность выпадения того или иного числа равна 1/6. Но играть таким способом было бы скучно, поэтому популярны игры с более сложными правилами. Популярной азартной игрой является крэпс, на рисунке выше приведена картинка игрового стола. Как можно видеть, там много всего, но мы не будем вдаваться в глубокие тонкости.

Каждый ход игры состоит из бросания двух кубиков, набранные очки суммируются. Как написано в статье, “Правила игры незамысловаты: игрок кидает две кости, и, если сумма очков на них равна 7 или 11, он выигрывает, если 2, 3 или 12 — проигрывает. Когда на кубиках выпадает другая сумма, шутер бросает их до выигрышной или проигрышной комбинаций”.

Посмотрим, сколько можно выиграть таким способом. Для этого необязательно идти в казино, для симуляции игры воспользуемся Python. Напишем функцию для одного броска:

Напишем функцию симуляции одного хода по вышеописанным правилам.

Зададим нашему виртуальному игроку начальную сумму в 100 у.е., и запустим процесс игры. Пусть наш игрок сделает 100 ставок, каждый раз по 1у.е.

Запускаем симуляцию 100 игр и удивляемся результату, игрок выиграл, причем с заметным отрывом побед от поражений: Win 63, Loss 37, Money 126. Увеличиваем число игр до 1000 и запускаем еще раз, игрок опять выиграл: Win 680, Loss 320, Money 460.

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

Интуитивно кажется, что при бросании кубика вероятность выпадения любой грани равновероятна. И это действительно так, но в случае одного кубика. Если кубиков два, то все становится сложнее. К примеру, число 7 может выпасть как 3+4, 2+5, 1+6, а вот число 12 может выпасть только в виде комбинации 6+6.

Построим в Jupyter notebook график выпадения сумм от 1 до 12 для 100 бросков:

исходный код игровых автоматов

Предположение подтвердилось, и суммы из центра действительно выпадают чаще. Таким образом, числа 7 и 11 действительно выпадают чаще чем 2,3 или 12. И вероятность получить выигрышную комбинацию “7 или 11” действительно выше.

Как такое может быть? Увы, ответ прост — автор процитированной выше статьи просто не разобрался досконально в правилах игры. Текст “правила игры незамысловаты: игрок кидает две кости, и, если сумма очков на них равна 7 или 11, он выигрывает, если 2, 3 или 12 — проигрывает” весьма далек от правды, и правила в крэпс совсем не так незамысловаты как кажутся.

Реальные правила для ставки на pass line оказались несколько сложнее (есть и другие виды ставок, желающие могут разобраться самостоятельно).

Ход-1: Делается бросок. Если выпадает 7 или 11, игрок выигрывает, если 2, 3 или 12, игрок проигрывает. Если выпадает другое число, оно запоминается под названием point.

Ход-2: Делается бросок. Если выпадает 7, то игрок проиграл. Если выпадает point то игрок выиграл. Если выпадают другие числа, ход повторяется (в это время игроки могут также делать ставки на другие числа).

Действительно, все чуть сложнее, чем описывалось в изначальном варианте. Допишем функцию симуляции с учетом более точных правил.

Результат теперь более похож на правду: за 100 игр игрок выиграл 43 раза, проиграл 57 раз, баланс в конце игры составил 86у.е. от изначальных 100. Интересно и то, что число выигрышей оказалось довольно-таки велико, и составляет лишь немногим менее 50%. Это грамотная стратегия с точки зрения казино — она позволяет поддерживать интерес участника к игре (все время проигрывать было бы неинтересно), но в то же время баланс прибыли казино остается положительным, а баланс денег игрока — соответственно, отрицательным.

Посмотрим подробнее, что получается для симуляции в 100 игр.
— Шанс выиграть на первом шаге выпал примерно в 20 случаях.
— Шанс проиграть сразу на первом шаге выпал в 15 случаях.
— В остальных 65 случаях игра продолжается, и тут все хитро: выбор происходит из двух чисел, 7 и point, но как было видно из графика выше, вероятность выпадения “проигрышной” цифры 7 максимальна, что в общем-то и требовалось доказать.

Интересно заметить, что шанс выигрыша в 45% — довольно-таки высок. Так можно ли выиграть? В краткосрочном периоде, да, например, в другой симуляции игроку “повезло”, и он за 100 игр увеличил свой виртуальный капитал со 100 до 112уе.

исходный код игровых автоматов

Но уже следующая симуляция показала отрицательный баланс: игрок уменьшил свое состояние со 100 до 88уе, потеряв, кстати, те же самые 12уе, “выигранные” в предыдущий раз.

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

исходный код игровых автоматов

Понятно, что при шансе выигрыша каждой игры менее 50%, результирующая сумма денег на счету игрока будет постепенно уменьшаться, а сумма прибыли казино постепенно увеличиваться. На графике кстати, видны всплески и падения, и может возникнуть резонный вопрос — можно ли их предсказать? Увы нет, т.к. бросания кубика — это независимые друг от друга события, и предыдущие результаты никак не влияют на следующие. Можно еще раз повторить главную мысль — можно выиграть один или даже несколько раз, но в долгосрочном периоде остаться в плюсе у казино невозможно, правила игры составлены так что баланс будет не в пользу игрока.

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

Американская рулетка

Следующий популярный вид азартных игр — рулетка, рассмотрим ее американский вариант.

исходный код игровых автоматов

Игровое поле рулетки делится на 38 ячеек: 36 зон с цифрами + 2 зоны “zero” и “double zero”. Брошенный на рулетку шарик очевидно, остановится в одной из зон. Игрок может делать разнообразные ставки, видов которых более 10, рассмотрим некоторые из них.

Черное-красное (или чет-нечет)

Игрок выигрывает, если названная им ставка совпала. Очевидно, что вероятность черного или красного была бы 50/50, если бы не два поля zero — при попадании на них ставка проигрывает. Как и в случае с крэпсом, это делает вероятность выигрыша лишь чуть менее 50% — но этого “чуть” достаточно, чтобы быть в минусе.

Напишем функцию симуляции хода с помощью случайных чисел от 1 до 38, последние 2 цифры будем считать за “зеро”.

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

Результат: за 100 попыток игрок выиграл 46 раз и проиграл 54 раза. На графике видно, что у игрока были и “взлеты” и “падения”, но итоговый баланс все равно негативный.

исходный код игровых автоматов

Чем больше мы играем, тем глубже мы уходим в минус, а казино соответственно, в плюс:

исходный код игровых автоматов

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

исходный код игровых автоматов
Желающие протестировать Европейский вариант рулетки с 37 слотами, могут воспользоваться вторым вариантом функции:

Ставка на конкретный номер

Игрок также может поставить на определенный номер, ставка при выигрыше составляет 35:1. Это кажется большим, но нетрудно догадаться, что вероятность выпадения определенного номера рулетки 1:38, т.е. опять же, чуть меньше.

Допишем функцию ставки на конкретный номер:

Симуляция, будем считать что игрок ставит на число 10:

исходный код игровых автоматов

Ставка на два номера

Можно поставить на два номера — шанс выигрыша выше, но зато ставка меньше и составляет 17:1.

Существуют и другие виды ставок, например, на 4 номера с коэффициентом 1:8, желающие могут поэкспериментировать самостоятельно. Как нетрудно догадаться, все коэффициенты рассчитаны так, чтобы игрок оказался в минусе. Кажется заманчивым поставить 1уе на номер, чтобы выиграть целых 35уе. Но сумма выигрыша увеличивается в 35 раз, а шанс выигрыша уменьшается в 38 раз — итоговый баланс все равно будет в пользу казино.

Лото 6 из 45

Следующее, что интересно проверить, это лото. Принцип игры довольно прост — в барабане находятся 45 шаров, выпадают случайным образом 6 из них. Цена билета согласно сайту «Гослото», составляет 100р, а выигрыш зависит от количества угаданных шаров. Примерный порядок сумм выигрыша таков: 2 угаданных шара дают выигрыш в 100р, 3 угаданных шара дают 300р, 4 шара — 3000р, 5 шаров — 300.000р и 6 шаров — суперприз порядка 10.000.000р.

Для начала напишем программу выбрасывания шаров и сравнения результата:

Из массива balls 6 раз “достается” случайный шар, затем определяется число элементов пересечений двух множеств. Теперь построим график суммарного выигрыша от количества купленных билетов. Для простоты будем считать что игрок ставит на одни и те же числа.

Для понимания порядка величин: если купить 100 билетов (суммарная потраченная сумма будет 10.000р), то это дает 14 угаданных “двойных” шаров и один угаданный “тройной”. Суммарный выигрыш составляет около 2000р при потраченных 10.000р.

График выигрыша от потраченной суммы получился практически линейным:

исходный код игровых автоматов

Получается, что если купить билетов на миллион, выигрыш составит 250тыс. “Суперприз” в симуляции так не разу и не выпал, хотя теоретически, он конечно возможен. Кстати, как написано в правилах, призовой фонд составляет 50% с проданных билетов, но “суперприз” выпадает далеко не всегда, так что как и в случае с казино, организаторы разумеется, всегда в выигрыше.

Игровые автоматы

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

Хорошая статья по конструкции игровых автоматов уже была на Geektimes.

Заключение

Наверное эта статья не открыла америку для многих, но на графиках оно в принципе нагляднее. Интереснее оказалось сравить принципиально разный психологический подход к игре. В лотерее выигрыши потенциально велики, но весьма редки. В казино подход обратный — ставки настроены так, что человек будет выигрывать максимально часто. Условно, сделав 10 игр в казино, человек выиграет 4 раза и проиграет 6 раз. Это позволяет игроку не терять интерес к игре, но в любом случае общий баланс остается негативным — человек будет много раз выигрывать, но и чуть-чуть больше проигрывать.

Наверно это и так очевидно, но речь в статье идет только об играх, основанных на случайности, не о покере, картах, шахматах и пр. Может ли существовать «выигрышная стратегия» в таких случайных играх? Очевидно нет, т.к. ни кость, ни шарик, ни лотерейные билеты, не имеют памяти, и их поведение не зависит от предыдущих итераций. Кстати, этот момент важно запомнить — интуитивно, проиграв несколько раз, человек может решить, что вот сейчас-то он “точно” выиграет. Увы нет — рулетка или кубик не имеют памяти, и “не знают” о количестве предыдущих попыток, каждая игра по сути начинается с чистого листа.

Отвечая на вопрос заголовка статьи — можно ли выиграть в азартные игры? Как показывает, симуляция, в принципе можно, теория вероятности допускает. Но недолго — стоит начать играть 2й, 3й,… Nй раз, как баланс пойдет вниз. В долгосрочной перспективе выиграть у казино невозможно.

PS: Для желающих поэкспериментировать, исходный код одним файлом выложен под спойлер. Его можно запустить в онлайн Python IDE, например здесь. Чтобы протестировать европейский вариант рулетки вместо американского, достаточно в коде поменять 38 на 37. Данная симуляция является достаточно базовой, и не учитывает различных дополнительных факторов, таких как количество денег у игрока или лимит ставок в казино, желающие могут добавить все это самостоятельно. Под спойлером также можно посмотреть видеоверсию данной статьи.

Источник

Игровой аппарат изнутри и снаружи. Обзор от производителя

исходный код игровых автоматов
Котики, куда ж без них

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

Так как данная тематика слабо освещена на Хабре/GT и хотелось бы о многом рассказать, начну я все же с общей вводной статьи. Я долго думал, с какой стороны подойти к данной тематике: стандартная автобиографическая подача «как я открыл казино..» или рассказать о том, как рассчитываются барабаны и бонусы в играх, о аппаратной платформе, которая применяется в нашей индустрии, об архитектуре программ, которые мы разрабатываем, об игромании, и т.д. Но все же пусть вначале это будет мини-обзор обо всем, а я постараюсь его сделать интересным.

Сразу хотелось бы отметить, что хоть я нахожусь в Украине, где игорный бизнес под запретом, но разработка и экспорт вполне легальны. И хоть мы и охватываем полный цикл (разработка ПО, игровых плат, графики, звуков, корпусов, сборка, эксплуатация) – оперировании происходит в странах где этот бизнес легален, хоть и жестко регулируется.

Игровой аппарат с денежным выигрышем (в дальнейшем – игровой аппарат) это как правило видеослот, как на фото ниже.

исходный код игровых автоматов
Игровой аппарат компании Apex

Так же это может быть

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

исходный код игровых автоматов
Игра бинго собственного производства

Мы в этой статье, остановимся на видео слоте, как самом интересном экземпляре игровых аппаратов.

Технически, стандартный игровой аппарат представляет собой металлический корпус, с игровой платой внутри, 2-3 мониторами, с сенсорным экраном, и периферией.

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

На главном (нижнем) мониторе специальная программа эмулирует вращение барабанов, на которых изображены игровые символы. Барабанов чаще всего 5, высотой 3 символа каждый, хотя, конечно есть множество вариаций, что б «отличиться». Задача игрока — поймать определенное сочетание символов на соседних барабанах. Чаще всего в линию, чаще всего слева направо, но не всегда.

исходный код игровых автоматов
В данной игровой ситуации выgало 4 символа «10» по линии номер 19. Символ «лев» в данном случае — WILD символ, который заменяет собой любой другой.

Правила игр отличаются, и обычно вынесены, на отдельный дополнительный монитор.

исходный код игровых автоматов
Пример таблицы выплат

Интересно, что дополнительные мониторы, которые ранее были просто рекламным стеклом, с информацией о призах, выросли в размерах настолько, что сейчас превышают по площади главную «рабочую» зону. Общее количество мониторов на одном аппарате, может доходить до пяти – мини-тач панель для управления, монитор с барабанами, 2 монитора с информацией об призах/джекпотами и верхний монитор «топлер» c лого бренда. Стандартный размер диагонали – 24”.

Заглянем внутрь аппарата.
Сердце изделия – игровая плата. Ранее это были сложнейшие модульные многослойные платы собственного производства, которые обходились производителем «в копеечку».
исходный код игровых автоматов
Плата Novomatic Coolfire

У проприетарных плат было только одно преимущество – сложность изготовления как защита от копирования, но Китай и Тайвань это не останавливало. Цена копии была весьма ощутимой, например, стоимость голой копии (без прошивки) игровой платы Novomatic Coolfire доходила до 2500 долларов США.

Конечно, и 10, и 15 лет назад, существовали решения на базе ПК. Однако они не очень подходили по ряду причин.

В первую очередь, они плохо справлялись с контролем огромного числа периферии, и с сохранением мгновенного состояния игры при внезапной пропаже питания. Вдобавок не все органы регулирования и контроля были готовы к метрологии подобных устройств: типичный кейс тех времен – инспектор с программатором требует ПЗУ что бы снять контрольную сумму прошивки.

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

Стоит отменить, что существовали, и существуют симбиозы x86 платформы, специально разработанной для игрового аппарата.

исходный код игровых автоматов
Игровая платформа Advantech Innocore

Однако в наши дни, большинство производителей используют PC платформу. Это стало возможно благодаря, как и технологиям – спасибо емким и надежным EEPROM, быстрым шинам, dual-head видеомодулям, так и производителям материнских плат, которые сделали шаг на встречу нашей индустрии. Причем, как в техническом аспекте, так и маркетинге. Например, стоило заказать 200 материнских плат, и к нам на производственный участок, приехал из Германии менеджер по развитию Fujitsu в Европе.

В итоге, сейчас стандартное решение для аппарата – это промышленная материнская плата, плюс интерфейсная игровая плата, которая контролирует периферию, и хранит финансовую и игровую информацию.

Подрубрика «интересный факт»: при использовании ПК, финансовые данные и игровая комбинация как правило хранятся в игровой плате в EEPROM. Поэтому что бы исключить ситуацию «на первых двух барабанах ничего не совпало – выдергиваем из розетки, и по новой», после нажатия на кнопку старт приходится вначале генерировать комбинацию, пересчитывать финансы, сохранять новый дамп состояния аппарата в плату, а только потом крутить барабаны.

Подрубрика «истории из жизни»: в начале двухтысячных один крупный английский производитель выпускавший механические аппараты, прислал нам для теста 5 аппаратов «видеослот» собственной разработки, как новинку. Аппараты были построены на базе ПК, и что насторожило сразу — на базе Windows. Ок, поставили. На третий день – звонок с салона «у нас нереально крупный выигрыш, игрок уже вызвал милицию, что б зафиксировать». Приезжаю: 99999999 гривен на экране. Из нолика единичка как-то вычлась у ребят в программе. Ну, спасибо что BCD формат, а не WORD, а то было бы 4,294,967,294.

Мы используем промышленную плату Fujitsu D3313-S4 в связке с «игровой» платой собственной разработки, на базе STM32. Платы общаются между собой по Ethernet. От USB мы отказались по ряду причин, но т.к. на материнской плате есть 2 ethernet разъёма – то нам так даже удобнее.

Рассмотрим периферию стандартного игрового аппарата.

Кнопки управления

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

исходный код игровых автоматов
Клавиатурная панель аппарата компании Williams gaming

Сейчас в тренде – ЖК тач панели, однако они не дают тактильного ощущения нажатия, поэтому чаще применяются в сочетании с механической кнопкой «СТАРТ» по которой можно бить.

исходный код игровых автоматов
Клавиатурная панель аппарата компании IGT

Купюроприемник

Главный элемент в полуавтономных аппаратах (существуют cashless решения, но об них позже). Как правило это сложное электро-механическое устройство, с набором датчиков и электро-механических приводов.

исходный код игровых автоматов
Модель купюроприемника JCM iVision

Принятые купюры укладываются в кассету, стопкой. Стандартная кассета – на 500 купюр.

Подрубрика «интересный факт»: многие задумываются как купюроприемник распознает купюру. В нем нет оптического сканера, подобного компьютерным. Естественно, бывают разработки на основе image processing, но обычно это просто оптические и ультрафиолетовые датчики с призмой, которые накапливают интегральные составляющие цветов, и сравнивают с эталоном.

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

исходный код игровых автоматов
Модуль купюроприемника JCM iVision

Подрубрика «истории из жизни»: в двухтысячных годах, устройства одного крупного производителя, принимали 10 грн, разрезанные ровно поперек, с приклеенным листиком вырезанным из тетради в клеточку, и 5 грн, с приклеенным листиком из тетради в линию. Если приклеить наоборот – не принимало, работало именно в такой конфигурации. Как до этого додумался кто-то – непонятно, но убытки мы понесли немаленькие, пока производитель не выпустил апдейт.

Существуют купюроприемники с механизмом выплаты купюр, но о них мы поговорим в следующий раз (если он будет).

Монетоприемник

Используется редко, обычно актуален в связке с устройством выплаты монет (хоппером).
Монетоприемники бывают тупыми (мы их называем coin comparator), которые определяют размер жетона сравнивая его с эталоном, и умными – которые способны различать различные номиналы монет.
исходный код игровых автоматов
Монетоприемник Azkoyen Modular A

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

Для защиты от «рыбалки» всегда применяются антифишинговые механизмы блокировки, монета которая прошла через сенсоры – обратно уже не выйдет.

Подрубрика «интересный факт»: монетоприемники игровых аппаратов теоретически совместимы с машинами для вендинга, но как правило, используются только в сфере гейминга. В вендинг машинах другой принцип хранения и выдачи монет. Диспенсер вендинг аппарата – это пластиковые высокие тубусы, с различными номиналами монет, рассчитанные что б выдать определенное количество сдачи. Это обычно несколько монет, которые можно неспеша насыпать в мелкий лоток.

Устройство выплаты монет (хоппер)

Бывают с ленточным механизмом и с дисковым. Это довольно тупые устройства: мотор крутит диск, оптический сенсор считает количество. Как я писал выше, они отличаются от диспенсеров монет кофе-машин, и прочего оборудования выплаты сдачи.
исходный код игровых автоматов
Ленточный хоппер MK IV

исходный код игровых автоматов
Дисковый хоппер Azkoyen MDP-10

Подобные устройства популярны в странах, где в ходу монеты с высокой деноминацией, например, 2 Евро.

Принтеры чеков

В игровой сфере применяются немного другие принтеры чем в платежных терминалах. Это тоже термо-принтеры, однако печатают они на плотном картоне. Стоимость отпечатка выходит повыше – 0.5 цента.
исходный код игровых автоматов
Принтер Futire Logic GEN2

Зачем в аппарате принтер? Нет, фискальные чеки не приняты, это задача кассы и кассира. Принтер нужен для системы TITO (ticket in, ticket out).

Суть в следующем: игрок имеет желание сменить аппарат, и продолжить игру, на счету аппарата допустим 500 долларов. Он жмет кнопку «выплата», аппарат сообщает серверу, по специальному игровому протоколу «я аппарат id 23, выплата 500 usd».

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

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

Сервер принимает токен, находит его в базе, и говорит аппарату начислить 500 USD. Игрок продолжает игру.

Данных механизм взаимодействия возможен в залах, оборудованных сервером, который обслуживает аппараты по игровому протоколу IGT SAS (не путать с Serial Attached SCSI), и для нас это боль, потому что протокол старый (RS-232 с дополнительным 9-м wake up битом, который обычно плохо поддерживается 16550 чипами в ПК) и проприетарный (привет IGT). Базовая подписка что бы получить документацию стоит довольно недешево.
Топология — 127 устройств висят на общей шине, wake up бит в байте – признак что следующий байт является адресом устройства, к которому обращаются, а не байтом данных.

Подрубрика «интересный факт»: существует современный свободный протокол общения игровых устройств, на базе TCP/IP: Open G2S, но против лобби гигантов не попрешь, да и в нашей сфере legacy support это не просто звук.

Кард-ридер:

Используется редко. По сути выполняет функции считывания банковских карт для POS операций, а также для идентификации игрока.

Лично мы – не применяем, а если и начнем, то ограничимся бесконтактными считывателями, достаточными для paypass.

исходный код игровых автоматов
Аппарат компании Bally с кард-ридером.

Сенсорный экран:

Все мы помним, как сложно порой нажать на виртуальную кнопку платежного терминала. Причина тому – акустические такчкрины (Сенсорные экраны на поверхностно-акустических волнах — ПАВ). Они очень чувствительны к загрязнениям (посторонний объект полностью блокирует работу устройства). Так же они не любят громкий звук (вернее вибрации).

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

Конструктивно, инфракрасный экран – это рамка с светодиодами и фотодатчиками по периметру. Чем их больше – тем точнее. Но палец толстый, так что много и не надо.
исходный код игровых автоматов
noname IR сенсорная рамка

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

Подрубрика «интересный факт»: в игровых аппаратах, даже при наличии тачскрина, используется как минимум одна механическая кнопка – «Старт» (Play). Игроки настолько привыкли бить по этой кнопке, что панель из нержавеющей стали зачастую прогибается со временем. В итоге, никто не хочет, чтобы эти Мегаджоули гасились экраном монитора, и используется кнопка.

Счетчики

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

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

Подрубрика «интересный факт»: В Румынии органы контроля требуют иметь онлайн показания механических счетчиков. Как можно считать со счетчика не имеющего протокола коммуникации данные — сами не знают. Оптическую систему распознавания цифр применить не получается, т.к. счетчики должны смотреть наружу, через прозначное окошко в корпусе.

Экзотика

Некоторые производители применяют 3D мониторы, правда польза от таких решений сомнительна – глаза устают сильно. Но глубина 3D эффекта регулируется, вплоть до нуля.

Аппарат компании IGT с 3D монитором не требующим очков.

Те, у кого достаточно денег – выпускают фирменные кресла с клавиатурой, встроенной акустикой, и вибрацией.

исходный код игровых автоматов
Аппарат компании Novomatic «Novostar V.I.P»

Как правило, современный игровой аппарат построен на базе ОС Linux, на котором работает ПО написанное на С++. Активно используются 3D движки, хотя камера зафиксирована.

Компании, пришедшие в land-based из онлайна, а так же те, кто изначально озаботился мультиплатформенной поддержкой используют Unity или самописные web-движки, и в десктопном варианте просто распахивают Web канвас на весь экран.

Подрубрика «интересный факт»: gambling лицензия на Unity стоит 200 тыс долларов. Пруфов нет, но читал и слышал неоднократно.

На первый взгляд, программа видео слота кажется простой, и может создаться иллюзия «мы тоже так можем, давайте нырнем в эту денежную отрасль». На самом деле, много сложных алгоритмов присутствуют неявно «под капотом», а некоторые законы жанра в дизайне и математике – известны только тем, у кого есть опыт.

Кстати о дизайне – отрасль довольно консервативна, у нас работает принцип «лучшее враг хорошего» и «работает – не трогай». Поэтому некоторые интерфейсы выглядят как привет из девяностых. Тут нет места тонким шрифтам, не говоря уже о material design, и прочих современных трендах. Drop shadow, stroke width = 10, inner bevel, gold color gradient – наше все. Как в «99 франков»: «У нас, небо всегда голубое, а девчонки всегда красивые».

исходный код игровых автоматов
исходный код игровых автоматов

Вернемся к ПО. Мы используем Qt, с самописным движком под OpenGL. Мне нравится, что я могу собрать код под Windows, чтобы поработать с графикой в Photoshop, и вернуться в Linux, что б собрать релиз.

В простых проектах мы используем Qt3D на QML. Библиотека сыровата, но мне нравтся что можно прицепить контроллер анимации к любому свойству объекта.

В релизе мы используем Ubuntu Linux, в которой убрано все лишнее, и установлен Openbox. Естественно заблокированы все хоткеи, контекстное меню, текстовые консоли.

Программа является «мультигеймом», т.е. загружает в память сразу набор игр, и позволяет между ними переключаться. Сжатие текстур помогает умещать графику 25-30 игр в 4 Гб ОЗУ.

С подключаемой периферией мы работаем на уровне протокола команд. Диск с драйверами сразу отправляется в мусорную корзину, пишется письмо производителю, подписывается NDA, и получается все необходимая информация. Сложнее, но надежней. Тем более, что иногда к устройству надо постучаться мелкой платой, без ОС.

Подрубрика «истории из жизни»: одному программисту я поручил доделать стек общения с принтером. Ну и не уследил. Программист увидел, что принтер совместим с ESC/P, который отлично поддерживается в Убунту, и переделал все под растеризацию в QImage и печать системой. Ну работает ведь. В итоге, я по ssh удаленно настраивал клиентам не печатающий CUPS сервер, пытаясь его отучить от адресации к устройству по серийному номеру, который естественно отличается от номера принтера в девелоперском офисе.

Математика

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

То есть расчет ведется для полной прокрутки всех барабанов по очереди. Если провести аналогию с одометром автомобиля, то анализируется комбинации вращения дисков от 00000 последовательно до 99999. Это намного эффективнее чем вращать барабаны случайно и накапливать статистику выигрышей (брутфорс). Каждая комбинация равновероятна, поэтому достаточно все проанализировать по 1 разу.

С выигрышными линиями тоже все просто (в современном игровом аппарате их больше 1). Вероятность сочетания любой комбинации равновероятна по любой линии, поэтому достаточно проанализировать сочетания для одной линии, и этот расчет будет корректен для любого количества линий, активных одновременно (при некоторых правилах игры это не так, например, если в игре присутствует символ, который «распахивается» затирая собой несколько клеток).

Сложности начинаются с появлением WILD символов (джокеров). Wild символ полиморфен, и заменяет собой любой другой символ. Т.е. комбинация LEMON WILD LEMON учитывается ПО аппарата как LEMON LEMON LEMON.

В итоге надо решить задачу «В шляпе 3 шара двух цветов, и из них можно достать 2 белых или 2 черных». Классическая теория вероятностей разводит руками по поводу полиморфных объектов (поправьте если не так), приходится обрабатывать эту ситуацию – когда общее количество сочетаний, больше чем произведение всех элементов.

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

Подрубрика «интересный факт»: барабаны в видео слотах, хоть и виртуальные, но крутятся честно — вот список тестов ГСЧ, на которые нас проверяют при сертификации: Meta-testing, Confidence Level, Adjacency Blocks, Adjacency High-Low, Adjacency Max-Min, Count of Counts, Coupon Collector’s Test, DieHard Battery of Tests, Duplicates Test, Interplay Correlation Test, Overlaps Test, Permutation Test, Position Interaction Test, Relative Frequency by Positions Test, Wald-Wolfowitz Runs Test, Serial Correlation Test, 3 Sigma Test, Total Distribution Test, Total Distribution by Position Test, Unequal Probabilities Test.

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

Лучшая аналогия – диск рулетки. Математика заложена в физике диска и таблице выигрышей – 37 возможных исходов, множитель выигрыша за номер – 36. Итого процент отдачи рулетки с одним зеро: 36*1/37=0.972.

В видео слоте – тоже самое, только количество возможных исходов исчисляется десятками миллионов.

Обычно длина барабанов в видео слоте составляет 25-75 символов. Меньше этого диапазона будет плохо – топовые символы будут часто сочетаться, больше тоже не очень хорошо – слишком долгий выход аппарата на матожидание. Также, барабаны могут быть разной длинны.

исходный код игровых автоматов
Давно небыло картинок — это просто скриншот одной из наших игр

Подрубрика «интересный факт»: в электро-механических аппаратах барабаны слишком коротки, и не подходят для того, что б анонсировать крупные выигрыши, за определенные комбинации. Увеличить длину не позволяют банальные габариты аппарата (барабан круглый).

Как выйти из положения если хочется вращать барабаны честно? В памяти микроконтроллера существуют «virtual reels» — барабаны, составленные из сегментов реальных механических барабанов. Эти виртуальные барабаны имеют необходимую длину, достаточную для того, что б определенные символы выпадали редко.

В итоге, ГСЧ крутит виртуальные сертифицированные барабаны, а шаговый сервопривод останавливает физические барабаны на сегментах эквивалентных виртуальным.

исходный код игровых автоматов

Сборочный цех

Статья выходит за рамки краткого обзора, поэтому просто опубликую несколько фото нашего процесса сборки:

исходный код игровых автоматов
Logic area до применения кабель-канала

исходный код игровых автоматов
Logic area после применения кабель-канала. Тут еще отсутствует левая часть, но смысл думаю понятен.

исходный код игровых автоматов
Упакованный терминал похож на гробик.

исходный код игровых автоматов
Красота

Online казино

За окном 2017-й год, все больше и больше людей имеют банковские карты, и осуществляют платежи в интернет. И что важнее, все большее количество людей научилось доверять онлайн-сервисам. Я имею ввиду не безопасность данных – эта проблема всегда будет актуальной, а уверенность получить услугу, от компании которая «где-то там далеко, а вдруг лохотрон».

Поэтому онлайн казино становятся на ноги все уверенней и уверенней. А значит озвучка сериалов будет страдать все больше и больше.

Немалую роль в популяризации оказывают стримеры (осторожней со ссылкой, много мата), а также работа с клиентом – офлайн казино зачастую не знают своих пользователей даже по имени, а у онлайн заведений – набор персональных данных. Мне, как зарегистрированному пользователю российского казино, не стесняясь звонят в Украину с московского номера, что б рассказать о какой-нибудь текущей акции. Подумаешь, роуминг. Клиент важнее.

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

Провайдер предоставляет API, и фрейм, в котором отображается видео слот. Онлайн казино передает контент-провайдеру идентификатор игрока, и ставку, и в ответ получает сумму выигрыша (конечно это упрощенное описание процесса взаимодействия с API). Какой интерактив происходит в процессе игры – казино по большому счету не сильно волнует.

В итоге, провайдер игрового контента получает свой небольшой процент, за сервис, а казино – реальные деньги от платежей пользователей.

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

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

Подрубрика «интересный факт»: «Проблемы с доступом в joycasino?» (с) У меня – да. Вот что я вижу по адресу joycasino.com и всем зеркалам: «Данный ресурс закрыт для посещений из Украины, Португалии. По всем вопросам, пожалуйста, обращайтесь в службу поддержки support@joycasino.com». Самые назойливые, оказались самыми законопослушными, большинство остальных ресурсов без проблем дают авторизоваться, и даже осуществить финансовые транзакции.

Подрубрика «истории из жизни»: было интересно, как казино выплачивает выигрыш на банковскую карту, с нетерпением ждал перевод, что б посмотреть назначение платежа.

Сумма в 186 долларов пришла по частям, с задержками. 50 долларов которые я внес как депозит пришли как «возврат товара», еще 2 платежа по 50, с такой же формулировкой (видимо чьи-то, т.к. я вносил только 50), и на сутки позже пришло 36 долларов как перевод из Кипра (видимо не нашлось депозита подходящего по значению).

В общем минимизация налогов работает и в этой отрасли.

Хотелось бы пару слов сказать о компаниях-разработчиках онлайн слотов (NetEnt, Microgaming, Endorphina, Yggdrasil).

Раньше мы смотрели на них из офлайна слегка скептически, но за последние годы они поднаторели, поняли законы жанра, и выдают очень качественный и красивый продукт. Ну и финансово себя неплохо чувствуют, например, годовая прибыль Netent Entertament за 2016 год составила 58 миллионов долларов.

Многие игры до сих пор на флеше, но они постепенно портируются на HTML5.

исходный код игровых автоматов
Вид игры «Voodoo» компании Endorphina.

Мифы и факты

Миф №1: операторы игорных заведений обдирают народ, и купаются в золоте

На самом деле, игровой аппарат отдает обратно в виде выигрышей 90%-96% денег. Т.е. мы оставляем себе не более 10% от оборота. Сравните с бутиком модной одежды, где маржа 300%.
Нам помогает тот факт, что выигрыши суммируются в общие кредиты, и на эти деньги осуществляется ставка повторно.

Итого в среднем, деньги прокручиваются 2.5-3 раза (зависит от агрессивности игры), аппарат каждый раз откусывает в среднем 8%, и итого хоть математически мы забираем 8%, практически за счет повторной прокрутки денег заработок доходит до 3*8=24% от оборота (округлим до 25%). Тем не менее, 75% попадает игрокам.

Далее, по поводу 25%. Даже если есть деньги купить землю и построить казино (в реальной жизни приходится оплачивать аренду), всегда есть лицензионные отчисления. Это расходы как на саму лицензию на вид деятельности, так и налог на каждую эксплуатируемую единицу (в Украине это называлось патент).

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

Миф №2: игровой аппарат меняет свою стратегию выплат в зависимости от текущей ситуации

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

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

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

Впрочем, некоторые грязные методы психологического воздействия применяются, если они явно не запрещены в стране, выдающей лицензию.

Например, «near-miss effect», когда невыигрышная комбинация барабанов, подменяется до рендера (на уровни модели) на другую невыигрышную, но выглядящую более привлекательно. Например, 5 дорогих одинаковых символов, разбросанных так, что они не сочетаются ни в одну из линий, определенных правилами.

Этот трюк не влияет на результат (что так, что так — выигрыш ноль), но создают ощущение что «почти совпало, попробую еще».

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

Подрубрика «интересный факт»: один украинский оператор использовал в своих заведениях телефонную будку, в которую можно было зайти, выбрать один из вариантов эмбиент-окружения (пробка, метро, супермаркет) и ответить на звонок на мобильный телефон.

Миф №3: Можно купить набор «секреты игровых аппаратов» и выиграть

Это правда. Ну, отчасти. Методики типа «в такой-то игре, нажмите одновременно эту и эту кнопку» конечно не работают. Но при наличии физического доступа к автомату – можно купить прошивку с закладкой, подменить, прийти через неделю, и активировав закладку специальной комбинацией клавиш и действий – получить выигрыш.

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

Кстати, industrial материнская плата Fujitsu, которую мы применяем, способна контролировать размыкание цепи контактов дверей, даже в выключенном состоянии, и логировать в себе в CMOS память.

В заключение, мини FAQ:

Q: Сколько стоит игровой аппарат?
A: От 4 до 12 тыс евро за типовую модель.

Q: Опасна ли игромания?
A: Очень. Зависимость 100% психологическая, а память не сотрешь. Страдает вначале самооценка – проигрыш денег, которыми можно было распорядиться более умно, развивает ненависть к себе, а это куда хуже, чем ненавидеть правительство, начальство, или соседей. Затем, включаются бытовые факторы – нехватка денег в сочетании с желанием срочно отыграться может включать программы «достать денег любой ценой».

Q: Играл ли я на деньги?
A: Да, когда это было легально, я поиграл на каждом из доступных игровых аппаратов, всех производителей. Это происходило в заведениях конкурентов, и приходилось играть на деньги. «Чтобы понять женщину нужно думать как туфли». Я мог бы написать «это того стоило, т.к. дало бесценный опыт в разработке игр», но в итоге, не смотря на большое количество игр, я выиграл намного больше чем проиграл (хватило на спортивный автомобиль).

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

Q: Были ли ошибки в наших программах, приводящие к незапланированным выигрышам?
A: Да, было пару раз, можно было ввести бонусную игру в бесконечный цикл. Причина была в неправильной синхроницации логики сигналами-слотами, клавиатурный эвент уходил в логику бонуса, который уже был закончен. За 4 года активной разработки и постоянных апдейтов – это нормальный результат, бывает. Обычно благодаря онлайн-мониторингу финансовой статистики такое быстро замечается и исправляется.

Q: Сколько процентов кода покрыто unit-тестами?
A: Ноль. Мы отдаем себе отчет, что законы в странах наших клиентов таковы, что они обязаны выплатить любую сумму, показанную на экране, и не важно откуда она взялась. Но я предпочитаю тратить время на движение вперед, а протестировать свежий релиз могут низкооплачиваемые люди вручную. Возможно это неправильно, но бизнес – это риск.

Q: Знакомые котики на КПДВ.
A: Все права на использование получены 😉

На этом все, если есть желание что б я осветил какою-то из затронутых нем подробнее — пишите в коментариях. Так же мы разрабатываем лоттерейные системы с автоматическим розыгрышем каждые 5 минут, и умные оптические клиент-сервер турникеты для школ.
Спасибо за внимание!

исходный код игровых автоматов
Пафосное фото автора статьи с собственной продукцией, на выставке Romania Arena Expo

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *