Введение
Visual Pinball ("VP") – это бесплатный игровой движок с открытым исходным кодом для создания пинбольных столов и подобных игр, таких как пачинко-автоматы. Он включает в себя редактор столов и сам симулятор, работающий в операционной системе Microsoft Windows. Его можно использовать совместно с Visual PinMAME – эмулятором ROM-образов реальных пинбольных машин. В интернете доступно огромное количество пользовательских столов для VP. Игроки могут выбирать между точными воссозданиями существующих пинбольных автоматов с эмуляцией ROM или без неё, а также оригинальными симуляциями пинбола, основанными на лицензионных или полностью оригинальных темах. Скриптовые возможности VP позволяют создавать игры, похожие на пинбол, такие как бейсбол с мячом и битой, пинбол-бинго, боулинг, бильярд и пачинко. VP можно использовать с обычными настольными компьютерами и мониторами, а также с кабинетами виртуального пинбола, использующими различные мониторы и телевизоры для отображения игрового поля и бэкбокса, как в настоящем пинбольном автомате. Поддерживаются 3D-телевизоры, а в последних версиях реализована поддержка сенсорного управления для игры на планшетах и смартфонах. В феврале 2010 года исходный код VP был опубликован под лицензией, разрешающей бесплатное некоммерческое использование.
Visual Pinball ("VP") is a freeware and source available video game engine for pinball tables and similar games such as pachinko machines. It includes a table editor as well as the simulator itself, and runs on Microsoft Windows. It can be used with Visual PinMAME, an emulator for ROM images from real pinball machines. A huge variety of user created VP tables are available on the internet. Players can choose between faithful recreations of existing pinball machines, with or without ROM emulation, and original pinball simulations based on licensed or completely original themes. VP's scripting capabilities can also be used to create pinball like games such as pitch and bat baseball, pinball bingo, bowling, cue sports, and pachinko. VP can be used with common desktop PCs and monitors, but also supports "virtual pinball" cabinets, with various monitors and TVs used to display the playfield and backbox, similar to a real pinball machine. 3D televisions are supported; and recent versions support touch controls for playing on tablet computers and smartphones. In February 2010, VP's source code was released under a license allowing free non commercial use.
Дизайн
Каждый стол 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-битных версиях.
On August 1, 2008, the full source code of PinMAME 2.0 was made available to the public. Since then, development continues with the help of open source contributors. In 2017, the effort of making the PinMAME core interact with other programs through other APIs than the Windows exclusive COM was started (initially called PinMAMEdll). Over the years, this was further extended to result in a platform independent library (libPinMAME) initially released in January 2021, that can be employed also on macOS, iOS, tvOS, Linux and Android, and in 32 bit and 64 bit flavors.