Стрельба по уткам: как работает «световой пистолет» NES Zapper
В 1984 году на японском рынке вышел уникальный контроллер NES Zapper от Nintendo для приставки NES, с помощью которого игрок мог «стрелять» в телевизор, подстреливая уток из игры Duck Hunt. Ведущий YouTube-канала The 8-Bit Guy доходчиво объяснил, как работает этот «световой пистолет».
Внутри «пистолета» закреплен электрический прибор, преобразующий энергию фотонов в электрическую энергию и носящий название фотоэлемент. На конце ствола также закреплена обычная линза.
Когда игрок нажимает на спусковой крючок, экран телевизора на мгновение становится чёрным. За это мгновение сменяется два кадра: на первом ничего нет, а на втором появляется белый квадрат на том месте, где несколькими кадрами ранее была утка. Эту белую точку на экране улавливает «световой пистолет» при нажатии спускового крючка. Если он направлен мимо белой точки, то выстрел будет засчитан как промах.
В случае, если на экране две утки, за мгновение после нажатия на курок сменяется не два, а три кадра, где дополнительный отображает положение второй белой точки. Таким образом определяется, какая из двух уток была подстрелена. В качестве интересного факта The 8-Bit Guy добавил, что подключённый во время игры второй и основной контроллер позволяет управлять утками.
На современных жидкокристаллических телевизорах работа контроллера NES Zapper невозможна ввиду практически мгновенного отклика дисплея.
На технологии NES Zapper было создано несколько других видов контроллеров, выполненных в форме различных видов оружия. Например, охотничьего ружья.
В своём видео The 8-Bit Guy также рассказывает про устройство так называемых «световых ручек»: внутри них установлен фотосенсор и линза. С их помощью пользователь мог рисовать на экране, однако сенсор также улавливал только белый свет.
Принцип работы NES Zapper поясняется уже не в первый раз, несмотря на то, что само устройство не пользовалось большой популярностью. Интерес игроков быстро угас, как и желание разработчиков добавлять его поддержку в своих играх.
Как работал пистолет на приставке Dendy, и почему не получается играть на ЖК-экране
Счастливые владельцы 8-битных игровых консолей Dendy (или Family Computer, Subor) в 1990-х годах могли наслаждаться не только играми с привычными джойстиками, но и упражняться в стрельбе из светового питолета, принцип работы которого оставался загадкой даже для родителей.

Идея световых тиров впервые была реализована еще в 30-х годах прошлого века. В стволе ружья устанавливался источник света, а в мишени крепился фотоэлемент, попадание засчитывалось при срабатывании последнего. Впоследствии источник и приемник света поменяли местами, что упростило саму конструкцию и ее калибровку.
На этом же нехитром принципе построен пистолет Zapper, которым комплектовались игровые консоли. К сожалению, среди родителей того времени более популярной была версия, согласно которой пистолет стрелял инфракрасными лучами, способными посадить кинескоп и вызвать слепоту, поэтому долго играть с девайсом и направлять его на людей строго воспрещалось.
Если разобрать такой пистолет, то его устройство окажется разочаровывающе простым — несколько проводов, соединяющих приставку, курок и небольшую микросхему с фотоэлементом.

В момент нажатия на спусковой крючок приставка отправляет на экран телевизора один полностью черный кадр, а в следующем кадре оставляет небольшую белую область. Это всего два кадра из 25-ти за одну секунду, поэтому мы даже не замечаем этого мерцания. Белая область на втором черном кадре — это мишень, утка в Duck Hunt или бандит в Wild Gunman.
Не трудно догадаться, что после нажатия на курок фотоэлемент должен был отправить на приставку простую команду вида 0 0 (черный черный, промах) или 0 1 (черный белый, попадание). В игре Hogan’s Alley изначально использовался черный фон, так как на экране могло быть сразу три мишени, и тогда результат удачного выстрела фиксировался как 0100, 0010 или 0001.
Самые любознательные геймеры в те времена путем проб и эксперементов обнаружили, что попадание засчитывается, если просто стрелять в лампочку на потолке. Однако читерство строго каралось — фотоэлемент в стволе пистолета быстро приходил в негодность после многократного применения такого способа.
Что касается ЖК-экранов, то они не могут работать со световыми пистолетами типа Zapper по нескольким причинам. Во-первых, они имеют задержку буферизации до 60 мс, тогда как полукадр на аналоговых телевизорах длится втрое меньше. Во-вторых, HDTV в принципе не может с такой скоростью менять черный цвет на белый и обратно. Вероятно, это стало причиной того, что мечты всех Dendy-геймеров о будущих полноценных шутерах с физическим пистолетом были отложены на несколько десятков лет.
Как работает световой пистолет?

В пистолете (который, на самом деле, называется Zapper) встроен фотодиод, принимающий свет, а из-за длинного «дула» этот фотодиод становился узконаправленным. В момент нажатия «курка», весь экран на мгновение заливался чёрным, а спрайт мишени — белым прямоугольником. Если «дуло» было направлено на прямоугольник, засчитывалось попадание. Если же мишеней было несколько (NES поддерживала до 4, но это не точно), то мишени подсвечивались по очереди (подмигивая) и приставка вычисляла попадание, используя бинарный поиск.
В детстве мне никак не приходило в голову, что пистолет не излучает, а принимает.
Это одна из самых простых реализаций светового пистолета. В других приставках использовались и более сложные методы, к примеру учитывающие то, что луч (в ЭЛТ-телевизорах) освещает только одну точку в каждый момент времени. Приставка заливала экран белым в момент нажатия и отсчитывала время до засветки фотодиода. Таким образом, направление можно было вычислить более точно, а количество мишеней определялось «радиусом поражения» пистолета. Эта схема, к примеру использовалась в SNES.
Первый же световой пистолет был изобретён аж в 1936 году для автомата Seeburg Ray-O-Lite, в котором кинескопа ещё не было =). Надо было тоже целиться в уток, как и в известной всем Duck Hunt.
В видеозаписи игры Clay shooting, где нужно было стрелять по тарелкам (да, тоже из детства помню) можно заметить те самые прямоугольники.
Подробно можно прочитать, зная английский:
ROM-образы игр для пистолета.
Телефон со встроенным эмулятором и специальными кнопками, чтобы играть в NES, SNES, GameBoy.
А самые ярые поклонники уток могут насладиться флеш-аналогом Duck Hunt on Flash.
Сам же подумываю прикупить настоящую, живую Денди, благо всего 400 Р. И вспомню детство. Лишь бы сессию потом сдать =)
Как работает пистолет Денди!
«Не стреляй в экран, а то телевизор испортишь!» — помните эту фразу от наших родителей? Наивные, были уверены, что пистолет Денди стреляет светом или невидимым лазером. Это в корне неверное утверждение.
Тогда как он работает и как фиксируются попадания по мишеням в игре? Давайте разберёмся.
Начать стоит с того, что этот пистолет на западе называется Zapper. Так вот, Zapper имеет фотоэлемент, который принимает свет. Благодаря конструкции пистолета, фотоэлемент был способен уловить лишь узконаправленный пучок света. Таким образом, мы приходим к выводу, что пистолет Денди не стреляет светом, а наоборот, принимает его.
Но как фиксируется попадание? Ещё в 90-е годы автор этих строк, играя в «Охоту на уток», замечал, что в момент выстрела весь экран на долю секунды становился чёрным. Так вот, в этой черноте и кроется ответ на вопрос. В момент нажатия на курок весь экран на долю секунды (один кадр) становится абсолютно чёрным. В следующую долю секунды (второй кадр) на чёрный экран выводится белый прямоугольник в том месте, где была мишень. Это всё длится 1/25 долю секунды. Человеческий глаз не способен уловить переход от абсолютно чёрного изображения к изображению с белым прямоугольником. Но это может сделать наш фотоэлемент в пистолете. Если вы в момент нажатия на курок точно указывали на мишень, то фотоэлемент фиксирует переход от чёрного изображения к белому на месте мишени. Засчитывается поражение цели. Если же вы были не точны и не попали в мишень, то фотоэлемент не видит перехода от белого к чёрному, а видит лишь 2 кадра с чёрным цветом. Фиксировался промах.
В случае с несколькими целями, если говорить кратко, определение попадания происходит следующим образом. В момент выстрела экран, опять же, полностью чернеет, а в следующий кадр происходит подсветка только одной из мишеней, через кадр — второй мишени и так далее. Фотоэлемент регистрирует переход от черного цвета к белому, а также время, через сколько кадров произошёл этот переход. На основании времени перехода определяется сама мишень.
Световой пистолет Денди и ЖК-телевизоры
Случается так, что многие геймеры спустя десятилетие находят свою приставку с пистолетом в целости и сохранности и решают «встряхнуть стариной». Подключают они её к новенькому LCD-телевизору, включают «Охоту на уток» и начинают стрелять. Во только не могут убить ни одну утку. По началу вам кажется, что вы просто мазила, но через 5 минут, приставив пистолет к телевизору, вы понимаете, что не можете поразить мишень даже с расстояния в 1-2 мм. При этом звук выстрела слышится. «Видимо сломался фотоэлемент» — решаете вы и задумываете выбросить Zapper. Но не торопитесь с выводом! С пистолетом может быть всё в порядке. Проблема кроется в ЖК-телевизоре, а точнее — в задержке, которая происходит при обработке аналогового изображения в цифровое. Да-да, в ЖК-телевизорах мы имеем маленькую и несущественную задержку. И снова, наш глаз не способен её заметить, а вот приставка способна. В момент вашего выстрела не происходит затемнения экрана, а вышеописанный вывод белого прямоугольника тоже происходит с задержкой. В тот момент, когда фотоэлемент срабатывает на переход от чёрного к белому, на экране телевизора этого перехода нет и в помине. Вот из-за этого как раз вы и не можете поразить мишень. Увы, ЖК-телевизоры не подходят для игр Денди со световым пистолетом. Правда, в редких случаях исключения всё же бывают.