Как работает монетоприемник: принцип распознавания монет, устройство и виды
В середине 80-х годов, в Швейцарии, произошел любопытный случай – один наш соотечественник обнаружил, что швейцарский сигаретный автомат принимает советские монеты, а точнее одну конкретную рублевую юбилейную монету – «100 лет В.И. Ленину».
Кроме того, покупая пачку сигарет на эту монету, покупатель получал сдачу, которая значительно превосходила наш рубль. Обнаружили и прикрыли швейцарцы всю эту бизнес-схему только тогда, когда из СССР в больших количествах стали ввозить юбилейные рубли в Швейцарию.
А вам когда-нибудь попадались при инкассации необычные монеты? К примеру, монеты других государств или старые российские или советские деньги?
Вот мне однажды попался пятачок 92 года из желтого металла. И знаю много случаев, когда ребятам попадались разнообразные иностранные монеты: турецкие лиры, чешские кроны, украинские копейки и даже китайские юани. Большинство этих находок успешно принимались монетоприемниками как рублевые монеты различного номинала.
И если монетоприемники на торговых автоматах 80-х годов еще как-то можно оправдать, то современные и, казалось бы, супертехнологичные модели монетников просто не должны так себя вести. Но тем не менее… Даже такие марки как NRI (особенно NRI) и CoinCo – были замечены в халатной неразборчивости.
О чем это говорит?
Да о том, что, алгоритмы и способы распознавания монет в монетоприемниках пока несовершенны и имеют определенную погрешность.
Монетоприемники NRI Currenza C2 в модификациях Blue и Green
Как монетоприемник распознает монеты
После того, как монета попадает в монетоприемник, она идентифицируется по определенному фирменному алгоритму. Обычно свои алгоритмы распознавания монет компании-производители держат в секрете. Однако суть всех этих алгоритмов вот уже не одно десятилетие остается неизменной. Меняется количество распознаваемых характеристик монет, появляются лазерные и прочие усовершенствованные технологии сканирования, но в основе остается определение двух основных групп параметров монет:
— геометрические параметры (диаметр, толщина и т.д.)
— электромагнитные параметры (контроль физико-химических свойств металла).
Каждая брошенная в торговый автомат монета пролетает мимо нескольких датчиков (оптических, индуктивных и прочих систем распознавания, это зависит от марки и вида монетоприемника). С помощью такого измерительного модуля на пути, в мгновение ока составляется «портрет» или электромагнитная сигнатура (ЭМС) монеты.
А далее, управляющее устройство, получив преобразованные в цифру данные о монете, сравнивает «портрет» внесенной монеты с сохраненными в памяти монетника «портретами-образцами». Если соответствий во флеш-памяти не найдено, монета отсеивается.
Бывает так, что разные монеты имеют сходные электромагнитные сигнатуры, и тогда монетоприемник ошибается. Вот отсюда и растут ноги наших иностранных находок.
И еще немного о технологиях. К примеру, монетоприемники NRI используют при определении подлинности монет технологию MFT (Multi-Frequency-Technology) или многочастотную технологию. Распознавание производится по 24 параметрам, и в целом такой подход считается достаточно надежным. Именно такая технология используется при производстве некоторых видов металлоискателей.
И тем не менее, ошибки бывают. C’est La Vie!
Что такое антифишинг
Антифишинг (от англ. fishing — рыбная ловля, рыбалка) – это система защиты монетоприемника от мошеннических действий под названием «рыбалка».
В советское время, «рыбалка» в торговых автоматах была распространенным явлением. Выглядело это примерно так: в монете высверливалась маленькая дырочка, в дырочку продевалась тонкая веревка или леска, монета опускалась в щель монетника, продажа совершалась и монета, с помощью веревки, вытягивалась назад.
Тогда это работало, но сегодня у большинства электрических монетоприемников имеется антифишинговая защита — препятствие, которое не дает мошенникам вернуть брошенную удочку с монетой.
Антифишинг может быть программным (устанавливается специальная антифишинговая прошивка), электромагнитным (в виде шторки или язычка, которые автоматически закрывают монетопровод после внесения монеты) и механическим (заслонки типа «грабли», нож для обрезания лески). Все виды антифишинга могут использовать как порознь, так и одновременно друг с другом. Кстати, все вышеперечисленное, справедливо и по отношению к купюроприемникам.
Несмотря на то, что антифишинговая защита достойно уберегает платежные системы от мошенников, от вандализма она, к сожалению, уберечь не может. Активное дерганье заброшенной рыбаком монеты за плотную веревку или леску может привести к механическим повреждениям монетоприемника и вывести сам торговый автомат из строя.
Сортировка и укладка монет
После того, как монетоприемник идентифицировал и признал «своей» принятую монету, он отправляет ее в специально предназначенную для этого номинала тубу (или трубку). Конечно, это происходит только в том случае, если монетоприемник имеет такой функционал.
Вот так выглядят тубы монетоприемника NRI Currenza C2 Blue:
Каждая из 6 его туб настроена на укладку определенного номинала рублевых монет. Обычно тубы предназначены под следующие номиналы: 1, 2, 5 (2 тубы) и 10 (2 тубы) рублей. Но можно прошить монетоприемник и для монет другого государства, тогда в тубы будут укладываться грузинские, казахские, украинские, европейские или другие необходимые нам металлические деньги.
Если какая-то из туб заполнена полностью, монеты начинают сбрасываться во внешнюю, специально для этой цели предназначенную, емкость (монетный бокс).
Бывает и так, что монетоприемник способен распознавать определенный номинал монет, но под него нет выделенной тубы. В этом случае, монета направляется сразу во внешний монетный бокс. Например, в монетоприемнике NRI Currenza Blue именно так происходит при приеме юбилейных монет, а также монет достоинством 50 копеек.
Выдача сдачи
Все монетоприемники можно разделить на две большие группы:
- с функцией выдачи сдачи (NRI Сurrenza C2 Blue/Green, MEI CASHFLOW 7900 и т.д.);
- без функции выдачи сдачи (Comestero RM5, NRI G-13, EU9).
Монетоприемник Mei Cashflow 7900 с функцией выдачи сдачи
Обычно выдача сдачи мелочью в торговом автомате происходит следующим образом:
- Мозг автомата вычисляет сумму сдачи, которую требуется вернуть покупателю, а затем отправляет монетоприемнику специальную команду на выдачу.
- Монетоприемник, получив команду и общую сумму сдачи, анализирует содержимое трубок с мелочью, проверяет наличие необходимых номиналов.
На этом этапе хорошие монетоприемники (к примеру, MEI) подбирают номиналы монет для сдачи грамотно и с учетом наличия достаточного количества нужных монет — если такой монетоприемник видит, что десятки на исходе, то он возьмет не десять рублей, а, к примеру, 2 монеты по пять рублей. С таким умным монетником у оператора не возникнет проблемы недостаточного количества монет того или иного номинала для выдачи сдачи, да и сама загрузка сдачи в тубы будет производиться крайне редко, благодаря равномерному распределению монет. - Монетоприемник, при помощи отпуского механизма, сбрасывает выбранные монеты в окно выдачи сдачи.
Торговый автомат может неправильно выдавать сдачу по одной из следующих причин:
- В прошивке торгового автомата присутствует программная ошибка, поэтому автомат отправляет монетоприемнику неправильную сумму сдачи к выдаче.
- Недостаточное количество монет необходимого номинала в тубах монетоприемника. При этом в программе торгового автомата такой дефицит не учтен, в связи с чем автомат обманывает покупателя, не давая ему сдачу или выдавая меньшую сумму.
- Монетоприемник заблокировал свою работу по причине поломки, застрявшей монеты и прочих неисправностей. При этом в прошивке торгового автомата имеется логическая недоработка, и по этой причине автомат продолжает принимать деньги (в данном случае купюры) и обманывает покупателя.
- Автомат в принципе не выдает сдачу, но покупатель либо не заметил размещенную на автомате информацию, либо такая информация ему не была предоставлена вовсе.
Какие бывают монетоприемники
Все вышесказанное относится, в основном, к электрическим программируемым монетоприемникам. Именно они составляют львиную долю всех монетников в вендинге. Но кроме них, в практике используются и другие виды и подвиды монетоприемных механизмов.
Например, в механических торговых автоматах устанавливаются механические монетоприемники, которые работают, в прямом смысле, под действием силы покупателя, путем прокручивания.
Среди электрических монетников встречается редкий вид с функцией приема монет горстью. К примеру, в линейке NRI это модель Pelicano:
Монетоприемник горстью NRI Pelicano
В противовес программируемым монетоприемникам, где вся информация о монетах храниться в памяти устройства, существуют эталонные монетоприемные механизмы (компараторы). Эталонными они называются как раз потому, что имеют установленный в специальном отсеке эталон монеты. То есть, если портреты монет у программируемых монетоприемников храняться в памяти устройства, то портрет монеты в эталонном монетнике – реально и физически существует. Эталонные механизмы рассчитаны на прием одного номинала монет.
Эталонный монетоприемник KAI-638C
В заключение, предлагаю вам посмотреть любопытную анимацию о путешествии монеты в снековом торговом автомате.
Принцип работы монетоприемников
Принцип работы торгового автомата заключается в следующем: жетон, монета (2, 5, 10 рублей) или комбинация монет (2+1; 2+2; 2+5; 5+5, 10+10, 5+10 рублей) вставляется сверху в прорези для монет монетоприёмного механизма (в двойном монетоприёмнике — с боков). После полного оборота ручки монетоприёмника товар выдаётся покупателю.
При использовании жетона стоимость товара может быть любой.
Принцип работы монетоприемника на две монеты 180 градусов
Принцип работы торгового автомата заключается в следующем: монета достоинством 10 рублей вставляется сверху в прорезь для монет монетоприёмного механизма. После поворота ручки по часовой стрелке на 180 градусов вставляется вторая монета достоинством 10 рублей. После этого ручка проворачивается еще на 180 градусов до упора и товар выдаётся покупателю.
Принцип работы монетоприемника на три монеты
Принцип работы торгового автомата заключается в следующем: монета достоинством 10 рублей вставляется сверху в прорезь для монет монетоприёмного механизма. После поворота ручки по часовой стрелке на 90 градусов вставляется вторая монета достоинством 10 рублей, и ручка проворачивается еще на 90 градусов. Потом вставляется третья монета, ручка поворачивается на 180 градусов до упора и товар выдаётся покупателю.
Принцип работы монетоприемника на четыре монеты
Принцип работы торгового автомата заключается в следующем: по две монеты достоинством 10 рублей вставляются в прорези монетоприёмника с двух сторон. После полного оборота ручки монетоприёмника товар выдаётся покупателю.
Игровой аппарат изнутри и снаружи. Обзор от производителя
Котики, куда ж без них
Привет, меня зовут Олег, и я управляю и владею компанией которая занимается разработкой и выпуском игровых автоматов с денежным выигрышем.
Так как данная тематика слабо освещена на Хабре/GT и хотелось бы о многом рассказать, начну я все же с общей вводной статьи. Я долго думал, с какой стороны подойти к данной тематике: стандартная автобиографическая подача «как я открыл казино..» или рассказать о том, как рассчитываются барабаны и бонусы в играх, о аппаратной платформе, которая применяется в нашей индустрии, об архитектуре программ, которые мы разрабатываем, об игромании, и т.д. Но все же пусть вначале это будет мини-обзор обо всем, а я постараюсь его сделать интересным.
Сразу хотелось бы отметить, что хоть я нахожусь в Украине, где игорный бизнес под запретом, но разработка и экспорт вполне легальны. И хоть мы и охватываем полный цикл (разработка ПО, игровых плат, графики, звуков, корпусов, сборка, эксплуатация) – оперировании происходит в странах где этот бизнес легален, хоть и жестко регулируется.
Игровой аппарат с денежным выигрышем (в дальнейшем – игровой аппарат) это как правило видеослот, как на фото ниже.
Игровой аппарат компании Apex
Так же это может быть
Лоттерейный терминал компании Zeus Play
Бинго-аппарат компании Zitro
Бинго по сути является той же лотереей, нам эта игра знакома по советским бочоночкам в мешке, с карточками, она даже так и называлась – лото. Но тем не менее, эта игра настолько популярна среди латиноамериканских народов, что обычно выносится в отдельный класс.
Игра бинго собственного производства
Мы в этой статье, остановимся на видео слоте, как самом интересном экземпляре игровых аппаратов.
Технически, стандартный игровой аппарат представляет собой металлический корпус, с игровой платой внутри, 2-3 мониторами, с сенсорным экраном, и периферией.
Фото игрового аппарата в открытом виде не нашлось, на данном изображении — игровой терминал собственного производства. Отсек справа с дверцей — для купюроприемника
На главном (нижнем) мониторе специальная программа эмулирует вращение барабанов, на которых изображены игровые символы. Барабанов чаще всего 5, высотой 3 символа каждый, хотя, конечно есть множество вариаций, что б «отличиться». Задача игрока — поймать определенное сочетание символов на соседних барабанах. Чаще всего в линию, чаще всего слева направо, но не всегда.
В данной игровой ситуации выgало 4 символа «10» по линии номер 19. Символ «лев» в данном случае — WILD символ, который заменяет собой любой другой.
Правила игр отличаются, и обычно вынесены, на отдельный дополнительный монитор.
Пример таблицы выплат
Интересно, что дополнительные мониторы, которые ранее были просто рекламным стеклом, с информацией о призах, выросли в размерах настолько, что сейчас превышают по площади главную «рабочую» зону. Общее количество мониторов на одном аппарате, может доходить до пяти – мини-тач панель для управления, монитор с барабанами, 2 монитора с информацией об призах/джекпотами и верхний монитор «топлер» c лого бренда. Стандартный размер диагонали – 24”.
Игровые аппараты компании Arictocrat
Заглянем внутрь аппарата.
Сердце изделия – игровая плата. Ранее это были сложнейшие модульные многослойные платы собственного производства, которые обходились производителем «в копеечку».
Плата Novomatic Coolfire
У проприетарных плат было только одно преимущество – сложность изготовления как защита от копирования, но Китай и Тайвань это не останавливало. Цена копии была весьма ощутимой, например, стоимость голой копии (без прошивки) игровой платы Novomatic Coolfire доходила до 2500 долларов США.
Конечно, и 10, и 15 лет назад, существовали решения на базе ПК. Однако они не очень подходили по ряду причин.
В первую очередь, они плохо справлялись с контролем огромного числа периферии, и с сохранением мгновенного состояния игры при внезапной пропаже питания. Вдобавок не все органы регулирования и контроля были готовы к метрологии подобных устройств: типичный кейс тех времен – инспектор с программатором требует ПЗУ что бы снять контрольную сумму прошивки.
В итоге многие PC-based изделия глючили, теряли данные, или вообще были построены на десктопной версии Windows. Все это создавало плохую репутацию аппаратов, построенных на ПК, и даже отлично работающее изделие было сложно продать.
Стоит отменить, что существовали, и существуют симбиозы x86 платформы, специально разработанной для игрового аппарата.
Игровая платформа Advantech Innocore
Однако в наши дни, большинство производителей используют PC платформу. Это стало возможно благодаря, как и технологиям – спасибо емким и надежным EEPROM, быстрым шинам, dual-head видеомодулям, так и производителям материнских плат, которые сделали шаг на встречу нашей индустрии. Причем, как в техническом аспекте, так и маркетинге. Например, стоило заказать 200 материнских плат, и к нам на производственный участок, приехал из Германии менеджер по развитию Fujitsu в Европе.
В итоге, сейчас стандартное решение для аппарата – это промышленная материнская плата, плюс интерфейсная игровая плата, которая контролирует периферию, и хранит финансовую и игровую информацию.
Мы используем промышленную плату Fujitsu D3313-S4 в связке с «игровой» платой собственной разработки, на базе STM32. Платы общаются между собой по Ethernet. От USB мы отказались по ряду причин, но т.к. на материнской плате есть 2 ethernet разъёма – то нам так даже удобнее.
Рассмотрим периферию стандартного игрового аппарата.
Кнопки управления
«Просто кнопки» применяемые ранее, сменились кнопками с программируемым TFT-дисплеем внутри. Это один из жирных плюсов нашей индустрии – можно «пощупать» интересные изделия, в рабочих целях.
Клавиатурная панель аппарата компании Williams gaming
Сейчас в тренде – ЖК тач панели, однако они не дают тактильного ощущения нажатия, поэтому чаще применяются в сочетании с механической кнопкой «СТАРТ» по которой можно бить.
Клавиатурная панель аппарата компании IGT
Купюроприемник
Главный элемент в полуавтономных аппаратах (существуют cashless решения, но об них позже). Как правило это сложное электро-механическое устройство, с набором датчиков и электро-механических приводов.
Модель купюроприемника JCM iVision
Принятые купюры укладываются в кассету, стопкой. Стандартная кассета – на 500 купюр.
Подрубрика «интересный факт»: многие задумываются как купюроприемник распознает купюру. В нем нет оптического сканера, подобного компьютерным. Естественно, бывают разработки на основе image processing, но обычно это просто оптические и ультрафиолетовые датчики с призмой, которые накапливают интегральные составляющие цветов, и сравнивают с эталоном.
Эти датчики работают в комплексе с магнитными сенсорами, и сенсорами физического присутствия купюры. Принцип сравнения интегральных параметров позволяет фильтровать дефекты на купюрах, а также справляться с различной степенью износа.
Модуль купюроприемника JCM iVision
Существуют купюроприемники с механизмом выплаты купюр, но о них мы поговорим в следующий раз (если он будет).
Монетоприемник
Используется редко, обычно актуален в связке с устройством выплаты монет (хоппером).
Монетоприемники бывают тупыми (мы их называем coin comparator), которые определяют размер жетона сравнивая его с эталоном, и умными – которые способны различать различные номиналы монет.
Монетоприемник Azkoyen Modular A
Как распознать монету, которая в отличие от купюры быстро летит вниз через механизмы? Конечно по звуку удара об площадку. Основной датчик монетоприемника – акустический сенсор. Не думаю, что речь идет о диапазоне частот человеческого уха, но нем не менее, меряются параметры вибрации. Так же в процессе детектирования монеты участвует магнитный сенсор.
Для защиты от «рыбалки» всегда применяются антифишинговые механизмы блокировки, монета которая прошла через сенсоры – обратно уже не выйдет.
Подрубрика «интересный факт»: монетоприемники игровых аппаратов теоретически совместимы с машинами для вендинга, но как правило, используются только в сфере гейминга. В вендинг машинах другой принцип хранения и выдачи монет. Диспенсер вендинг аппарата – это пластиковые высокие тубусы, с различными номиналами монет, рассчитанные что б выдать определенное количество сдачи. Это обычно несколько монет, которые можно неспеша насыпать в мелкий лоток.
Диспенсер игрового аппарата – это большая емкость с одним номиналом (реже -две емкости с двумя). Платить надо быстро (5-10 монет в секунду), из одной емкости. Поэтому в игровом аппарате обычно отсутствует сепаратор монет (аппарат принимает только 1 номинал), а если и присутствует – то довольно специфический. В вендинге – есть много интегрированных изделий, где монетоприемник объединен с сепаратором и диспенсером.
Устройство выплаты монет (хоппер)
Бывают с ленточным механизмом и с дисковым. Это довольно тупые устройства: мотор крутит диск, оптический сенсор считает количество. Как я писал выше, они отличаются от диспенсеров монет кофе-машин, и прочего оборудования выплаты сдачи.
Ленточный хоппер 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 бит в байте – признак что следующий байт является адресом устройства, к которому обращаются, а не байтом данных.
Кард-ридер:
Используется редко. По сути выполняет функции считывания банковских карт для POS операций, а также для идентификации игрока.
Лично мы – не применяем, а если и начнем, то ограничимся бесконтактными считывателями, достаточными для paypass.
Аппарат компании Bally с кард-ридером.
Сенсорный экран:
Все мы помним, как сложно порой нажать на виртуальную кнопку платежного терминала. Причина тому – акустические такчкрины (Сенсорные экраны на поверхностно-акустических волнах — ПАВ). Они очень чувствительны к загрязнениям (посторонний объект полностью блокирует работу устройства). Так же они не любят громкий звук (вернее вибрации).
В игорной индустрии применяются инфракрасные сенсорные экраны и ёмкостные. Инфракрасные экраны чуть дороже чем ПАВ, но более надежны. Они не любят прямые солнечные лучи, но в нашей сфере, этот элемент полностью отсутствует. А вот вибрации от звука — вполне.
Конструктивно, инфракрасный экран – это рамка с светодиодами и фотодатчиками по периметру. Чем их больше – тем точнее. Но палец толстый, так что много и не надо.
noname IR сенсорная рамка
Рамка создает некоторую глубину между внешней поверхностью корпуса и стеклом монитора, поэтому не всегда подходит. Производители, у которых особенности дизайна таковы, что стекло не утоплено, или общее стекло объединяет несколько мониторов, не могут использовать инфракрасные экраны (как и производители смартфонов), поэтому выбирают ёмкостные экраны.
Счетчики
Даже в современном аппарате используются электромеханические счетчики. По сути – это подсистема дублирования целостности финансовой информации.
Данные в электронном виде могут быть повреждены или взломаны, а опломбированный счетчик – повышает надежность. Игровая плата обычно умеет определять факт отсоединения счетчиков, а опломбированные разъемы затрудняют установку «заглушки».
Экзотика
Некоторые производители применяют 3D мониторы, правда польза от таких решений сомнительна – глаза устают сильно. Но глубина 3D эффекта регулируется, вплоть до нуля.
Аппарат компании IGT с 3D монитором не требующим очков.
Те, у кого достаточно денег – выпускают фирменные кресла с клавиатурой, встроенной акустикой, и вибрацией.
Аппарат компании Novomatic «Novostar V.I.P»
Как правило, современный игровой аппарат построен на базе ОС Linux, на котором работает ПО написанное на С++. Активно используются 3D движки, хотя камера зафиксирована.
Компании, пришедшие в land-based из онлайна, а так же те, кто изначально озаботился мультиплатформенной поддержкой используют Unity или самописные web-движки, и в десктопном варианте просто распахивают Web канвас на весь экран.
На первый взгляд, программа видео слота кажется простой, и может создаться иллюзия «мы тоже так можем, давайте нырнем в эту денежную отрасль». На самом деле, много сложных алгоритмов присутствуют неявно «под капотом», а некоторые законы жанра в дизайне и математике – известны только тем, у кого есть опыт.
Кстати о дизайне – отрасль довольно консервативна, у нас работает принцип «лучшее враг хорошего» и «работает – не трогай». Поэтому некоторые интерфейсы выглядят как привет из девяностых. Тут нет места тонким шрифтам, не говоря уже о 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, и получается все необходимая информация. Сложнее, но надежней. Тем более, что иногда к устройству надо постучаться мелкой платой, без ОС.
Математика
Расчет классической игры, для механического аппарата не представляет собой никакой сложности – есть таблица выигрышей за каждую комбинацию, необходимо посчитать количество всех возможных сочетаний для каждого символа, домножить выигрышные комбинации на значение выигрыша, и получить общую сумму денег, которую аппарат выплатит.
То есть расчет ведется для полной прокрутки всех барабанов по очереди. Если провести аналогию с одометром автомобиля, то анализируется комбинации вращения дисков от 00000 последовательно до 99999. Это намного эффективнее чем вращать барабаны случайно и накапливать статистику выигрышей (брутфорс). Каждая комбинация равновероятна, поэтому достаточно все проанализировать по 1 разу.
С выигрышными линиями тоже все просто (в современном игровом аппарате их больше 1). Вероятность сочетания любой комбинации равновероятна по любой линии, поэтому достаточно проанализировать сочетания для одной линии, и этот расчет будет корректен для любого количества линий, активных одновременно (при некоторых правилах игры это не так, например, если в игре присутствует символ, который «распахивается» затирая собой несколько клеток).
Сложности начинаются с появлением WILD символов (джокеров). Wild символ полиморфен, и заменяет собой любой другой символ. Т.е. комбинация LEMON WILD LEMON учитывается ПО аппарата как LEMON LEMON LEMON.
В итоге надо решить задачу «В шляпе 3 шара двух цветов, и из них можно достать 2 белых или 2 черных». Классическая теория вероятностей разводит руками по поводу полиморфных объектов (поправьте если не так), приходится обрабатывать эту ситуацию – когда общее количество сочетаний, больше чем произведение всех элементов.
Так же очень нескучно рассчитывать игры типа бинго, где боле старшая выигрышная комбинация графически исключает младшую, или игры типа draw poker, где результат зависит от стратегии игрока (какие карты поменял, какие оставил).
Все производители рассчитывают барабаны таким образом, что при случайном вращении, мат ожидание суммы выигрышей меньше чем суммы ставок, что обеспечивает доходность.
Лучшая аналогия – диск рулетки. Математика заложена в физике диска и таблице выигрышей – 37 возможных исходов, множитель выигрыша за номер – 36. Итого процент отдачи рулетки с одним зеро: 36*1/37=0.972.
В видео слоте – тоже самое, только количество возможных исходов исчисляется десятками миллионов.
Обычно длина барабанов в видео слоте составляет 25-75 символов. Меньше этого диапазона будет плохо – топовые символы будут часто сочетаться, больше тоже не очень хорошо – слишком долгий выход аппарата на матожидание. Также, барабаны могут быть разной длинны.
Давно небыло картинок — это просто скриншот одной из наших игр
Подрубрика «интересный факт»: в электро-механических аппаратах барабаны слишком коротки, и не подходят для того, что б анонсировать крупные выигрыши, за определенные комбинации. Увеличить длину не позволяют банальные габариты аппарата (барабан круглый).
Как выйти из положения если хочется вращать барабаны честно? В памяти микроконтроллера существуют «virtual reels» — барабаны, составленные из сегментов реальных механических барабанов. Эти виртуальные барабаны имеют необходимую длину, достаточную для того, что б определенные символы выпадали редко.
В итоге, ГСЧ крутит виртуальные сертифицированные барабаны, а шаговый сервопривод останавливает физические барабаны на сегментах эквивалентных виртуальным.
Сборочный цех
Статья выходит за рамки краткого обзора, поэтому просто опубликую несколько фото нашего процесса сборки:
Logic area до применения кабель-канала
Logic area после применения кабель-канала. Тут еще отсутствует левая часть, но смысл думаю понятен.
Упакованный терминал похож на гробик.
Красота
Online казино
За окном 2017-й год, все больше и больше людей имеют банковские карты, и осуществляют платежи в интернет. И что важнее, все большее количество людей научилось доверять онлайн-сервисам. Я имею ввиду не безопасность данных – эта проблема всегда будет актуальной, а уверенность получить услугу, от компании которая «где-то там далеко, а вдруг лохотрон».
Поэтому онлайн казино становятся на ноги все уверенней и уверенней. А значит озвучка сериалов будет страдать все больше и больше.
Немалую роль в популяризации оказывают стримеры (осторожней со ссылкой, много мата), а также работа с клиентом – офлайн казино зачастую не знают своих пользователей даже по имени, а у онлайн заведений – набор персональных данных. Мне, как зарегистрированному пользователю российского казино, не стесняясь звонят в Украину с московского номера, что б рассказать о какой-нибудь текущей акции. Подумаешь, роуминг. Клиент важнее.
Открыть онлайн казино очень просто – достаточно сделать сайт с регистрацией пользователей, и заключить договора с компаниями контент-провайдерами слотов. По-хорошему нужен еще биллинг, но при желании, эту услугу можно так же отдать компании-провайдеру.
Провайдер предоставляет API, и фрейм, в котором отображается видео слот. Онлайн казино передает контент-провайдеру идентификатор игрока, и ставку, и в ответ получает сумму выигрыша (конечно это упрощенное описание процесса взаимодействия с API). Какой интерактив происходит в процессе игры – казино по большому счету не сильно волнует.
В итоге, провайдер игрового контента получает свой небольшой процент, за сервис, а казино – реальные деньги от платежей пользователей.
Обычно онлайн-казино это агрегатор, который взаимодействует с несколькими разработчиками игр. У каждого из разработчиков игр свой API, но суть взаимодействия везде похожа.
Прелесть онлайн платформы – в том, что можно зарегистрироваться и получить лицензию в стране, с лояльными условиями сертификации и налогами. Поэтому это часто Мальта , Гибралтар или еще какие-нибудь острова. Впрочем, островитяне не растерялись, и помимо лицензионных сборов, требуют ежемесячные отчисления от каждого лицензиата.
Понятно, что лицензия одной страны, не дает право вести деятельность по всему миру – есть страны которые требуют локального лицензирования, или полностью запрещают данный вид деятельности. Но не все страны способны осуществлять мониторинг и блокировать доступ к нелегальным ресурсам.
Подрубрика «истории из жизни»: было интересно, как казино выплачивает выигрыш на банковскую карту, с нетерпением ждал перевод, что б посмотреть назначение платежа.
Сумма в 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
Монетоприёмник
Монетоприёмник — устройство, предназначенное для приема монет. Обычно применяется в автоматах самообслуживания, и игровых автоматах. С помощью набора датчиков, монетоприёмник определяет номинал и (или) подлинность монеты.
Содержание
Типы монетоприемников
Монетоприемники делятся на несколько типов.
Монетоприеник эталонный
Существует простейший тип электронных монетоприемников, в простонародье называемый «компаратором» (англ. compare — сравнивать). Принцип их действия заключается в сравнивании полученной монеты с эталоном, который установлен в специальном месте на монетоприемнике. Такой вид монетоприемника может различать только один номинал монеты. При забрасывании, монета проходит через датчик, который определяет подлинность монеты, сравнивая электромагнитные параметры эталона с полученной монетой. Если параметры близки к эталонным, монета принимается. Обычно, монетоприемники снабжают возвратным механизмом, и защитным устройством, предотвращающим вытягивание монеты после прохождения через монетоприемник.
Монетоприемник программируемый
Данный тип монетоприемника может принимать несколько номиналов монет. Характеристики каждой монеты хранятся в флеш-памяти. Данные в флеш-памяти о каждой монете заносятся в режиме программирования путем вброса монеты в монетоприемное отверстие. При прохождении монеты, ее характеристики, такие как диаметр, электромагнитная проницаемость, а иногда и вес, сравниваются с данными в флеш-памяти, и если они совпадают, то монета принимается.
Монетоприемник сортировочный
Сортировочный монетоприемник предназначен для сортировки монет по номиналу. Механизм может быть как барабанным, так и основанный на программируемом типе. Конкретный принцип работы зависит от конструкции производителя.
Монетоприемник с функцией выдачи сдачи
Этот вид совмещает в себе сортировочный механизм, и механизм выдачи сдачи. При попадании монеты, монетоприемник сравнивает характеристики монеты с данными из флеш-памяти, и принимает решение о возврате либо принятии монеты. В последнем случае монета по номиналу попадает в трубки. Наиболее распространены монетоприемники с четыремя или пятью трубками. При заполнении трубки, монеты будут сбрасываться в общую емкость. При необходимости выдачи сдачи, компьютер посылает монетоприемнику сигнал о выдаче определенной суммы. Монетоприемник вычисляет оптимальные номиналы для выдачи, и диспенсером, установленным под трубками, выбрасывает рассчитанное количество монет в возвратный канал, откуда монета попадает в корзину, исполнение которой зависит от дизайна автомата, в котором используется монетоприемник. Туда же попадают монеты, не прошедшие проверку.