Введение

Visual Pinball ("VP") – это бесплатный игровой движок с открытым исходным кодом для создания пинбольных столов и подобных игр, таких как пачинко-автоматы. Он включает в себя редактор столов и сам симулятор, работающий в операционной системе Microsoft Windows. Его можно использовать совместно с Visual PinMAME – эмулятором ROM-образов реальных пинбольных машин. В интернете доступно огромное количество пользовательских столов для VP. Игроки могут выбирать между точными воссозданиями существующих пинбольных автоматов с эмуляцией ROM или без неё, а также оригинальными симуляциями пинбола, основанными на лицензионных или полностью оригинальных темах. Скриптовые возможности VP позволяют создавать игры, похожие на пинбол, такие как бейсбол с мячом и битой, пинбол-бинго, боулинг, бильярд и пачинко. VP можно использовать с обычными настольными компьютерами и мониторами, а также с кабинетами виртуального пинбола, использующими различные мониторы и телевизоры для отображения игрового поля и бэкбокса, как в настоящем пинбольном автомате. Поддерживаются 3D-телевизоры, а в последних версиях реализована поддержка сенсорного управления для игры на планшетах и смартфонах. В феврале 2010 года исходный код VP был опубликован под лицензией, разрешающей бесплатное некоммерческое использование.

Дизайн

Каждый стол Visual Pinball состоит из двух основных частей: дизайна игрового поля и скрипта, определяющего игровой процесс, устанавливающего "связи" эмуляции (через Visual PinMAME) с компонентами стола, такими как лампы, переключатели и флипперы. Редактор использует Microsoft VBScript для пользовательского программирования. Сам VP написан на C++ с использованием библиотеки Active Template Library для создания элементов управления ActiveX. VP основан на DirectX, поэтому он может работать на любой версии Windows, начиная с Windows 98, но для последних версий VP требуется как минимум Windows XP, поскольку современные компиляторы Microsoft больше не поддерживают старые версии операционной системы.

История

Visual Pinball был выпущен для общественности 19 декабря 2000 года программистом Рэнди Дэвисом. В 2005 году Дэвид Р. Фоли приобрел у Дэвиса права на модификацию пакета программ для полноразмерного флиперного шкафа на основе программного обеспечения Visual Pinball. Chicago Gaming приобрела права на лицензионные столы у Williams Electronics. Команда Visual PinMAME и сообщество разработчиков Visual Pinball также присоединились к усилиям по улучшению продукта и созданию нескольких столов. Этот проект, известный как UltraPin, был приобретен Global VR после приобретения определенных активов UltraCade и прекращен в 2008 году. В 2008 году NanoTech Entertainment приобрела права на VP у Дэвиса для использования и распространения движка вместе со своим контроллером для ПК Pinball Wizard. Они вернули сообществу версию 9 движка, включающую множество обновлений, разработанных в период с 2005 по 2008 год. Версия 9 содержит значительные улучшения, но обладает неполной обратной совместимостью, поэтому для корректной работы некоторым старым столам все еще требуется версия VP 8. В 2010 году исходный код Visual Pinball 9.0.7 был выпущен под лицензией, разрешающей бесплатное некоммерческое использование, аналогично оригинальной лицензии MAME, и был интегрирован в Visual Pinball 10.8.0, который добавляет поддержку динамического движения виртуальной камеры, включая гарнитуры виртуальной реальности, а также OpenGL в качестве альтернативного графического API. Благодаря этому, Visual Pinball 10.8.1 добавил поддержку операционных систем, отличных от Windows, включая macOS, iOS, tvOS, Linux (включая дистрибутив Batocera и платформу Raspberry Pi) и Android. Эти версии пока не включают (большую часть) пользовательского интерфейса для создания столов и ориентированы на моделирование и запуск существующих столов.

Визуальный пинМЕМ

Для моделирования большинства современных пинбольных автоматов (особенно тех, которые были созданы после 1992 года и используют большие объемы анимации DMD и цифровых звуковых сэмплов) требуется программа Visual PinMAME (иногда называемая VPinMAME или VPM) для максимально точной эмуляции физических машин. VPM повышает системные требования Visual Pinball и, как и другие эмуляторы, использует файлы образов ROM-памяти реальных пинбольных автоматов, исполняя их в качестве симуляций встроенных процессоров, звуковых чипов и дисплеев оригинальных машин. VPM – это программа (COM-класс), разработанная для работы в сочетании с Visual Pinball (или, в настоящее время, с любой другой программой, способной использовать COM-класс, например, Unit3D Pinball), чтобы обеспечить 3D-рендеринг реальных дизайнов игровых столов для пинбола. Она отвечает за эмуляцию процессоров и подключенных ROM, используемых в современных игровых столах, в отличие от столов с электромеханическими механизмами, которые не содержат ROM или продвинутых интегральных схем. VPM отображает светодиоды или DMD машин в отдельном окне и эмулирует встроенные звуковые чипы. Для корректной работы с отрисованным столом требуются образы ROM конкретного стола. VPM была написана командой программистов, включающей Стива Элленоффа, Тома Хаукапа, Мартина Адриана и Геррита Волкенборна, и выпущена 30 марта 2001 года в бета-версии 0.99. Базовое ядро PinMAME, которое управляет всеми компонентами эмуляции и отвечает за эмуляцию светодиодных дисплеев, DMD и воспроизведение эмулированного звука и музыки, было начато в апреле 1999 года. VPM названа в честь оригинальной программы MAME для эмуляции аркадных игр и основана на некоторых частях ядра MAME .7X. Проект VPM начался как WPCMAMECOM (а его базовое ядро как WPCMAME, основанное на аббревиатурах WPC и MAME). VPM написана на языке программирования C++, в то время как PinMAME по-прежнему основан на C. 1 августа 2008 года полный исходный код PinMAME 2.0 был опубликован в открытом доступе. С тех пор разработка продолжается при участии разработчиков с открытым исходным кодом. В 2017 году была начата работа по обеспечению взаимодействия ядра PinMAME с другими программами через API, отличные от Windows-эксклюзивного COM (первоначально называемого PinMAMEdll). Со временем это было расширено и привело к созданию платформенно-независимой библиотеки (libPinMAME), впервые выпущенной в январе 2021 года, которую можно использовать также на macOS, iOS, tvOS, Linux и Android, а также в 32-битных и 64-битных версиях.