Русский
Русский
English
Статистика
Реклама

Игровые приставки

Перевод Векторные игры на 32с3

17.04.2021 12:09:16 | Автор: admin

Статья раскрывает тему нашего выступления на 32-м Всемирном конгрессе хакеров (32с3), посвященного ретро-геймингу и работе с эмулятором игровых автоматов (MAME) на XY-дисплеях. В нем освещается результат моего сотрудничества с еще одним членом NYC Resistor, цифровым дизайнером Адель Лин, которая увлекается разработкой игр и игровых пространств. При желании можно посмотреть получасовое видео выступления онлайн.

История векторной графики


Аналоговые компьютеры




В самых ранних аналоговых компьютерах для вывода результатов вычислений использовались осциллографы или плоттеры. На фото выше EAI680 отображает на своем XY-мониторе Tektronix результат дифференциального уравнения, моделирующего демпфированный маятник.


Первая видеоигра, Tennis for Two 1958 года, была разработана на похожем аналоговом компьютере и выводилась на осциллограф. Отскакивание мяча было реализовано с помощью другого дифференциального уравнения, очень похожего на приведенное в предыдущем примере.



В Tennis for two нет исходного кода, так как создавалась игра исключительно аппаратно. Здесь использовались реле для управления направлением мяча, блоки сравнения, которые обнаруживали касание мячом земли или сетки, операционные усилители, которые реализовывали дифференциальное уравнение, резисторы, имитировавшие притяжение и т.д.



Адель в сотрудничестве с продюсером Жаном Анджелом, студией игрового дизайна Sozen Eyes и физиком Питером Такачем работала над современной реконструкцией этого устройства для Silicon City. Ввиду необходимости поддержания работоспособности инсталляции без обслуживания на все время пятимесячной выставки в музее NYHC они использовали монитор 4К и эмулировали игру. Дело в том, что во время демонстрации Tennis for Two в Брукхэвене работал штат техников, которые заменяли выходившие из строя детали, чего в NYHC хотели избежать.

Цифровые компьютеры




Spacewar! 1962 года стала одной из первых цифровых видеоигр, в которой на XY-дисплее компьютера PDP-1 отображались корабли игроков, их орудия, а также звездное поле. Управление осуществлялось с помощью рычагов и кнопок на передней панели системы, хотя зачастую во избежание их износа для этого собирались отдельные блоки управления.



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

Почему векторные игры?


В 1978 году, когда для игры Lunar Lander был разработан цифровой генератор векторов, память для фреймбуферов в видеоиграх обходилась очень дорого. Двум буферам размером 512х512х4 требовалось 128 запоминающих устройств общей стоимостью $614. Джед Марголин, инженер Atari.

Именно поэтому во времена доминирования растровых дисплеев был смысл затратить все эти усилия, чтобы добиться отрисовки векторов. Стоимость создания растровой версии Asteroids с фреймбуфером, способным поддерживать разрешение экрана 1024х1024 составила бы тысячи долларов. Для этого также необходим дисплей, который справился бы с отрисовкой столь огромного количества вертикальных линий: большинство ЭЛТ же разрабатывались для телевидения, и обеспечивали разрешение всего в пару сотен тысяч линий.


Star Wars на Acorn Electron


Star Wars на векторном дисплее

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


Star Wars на Atari 2600


Star Wars на векторном дисплее

Помимо этого, векторы упрощают 3D-анимацию. Выше представлено сравнение растровой версии игры, пытающейся сымитировать трехмерный мир, с масштабированной и повернутой 3D моделью Tie-Fighter. В какой вариант вы бы предпочли сыграть?

Устройства генерации векторов


Как происходит отрисовка




В векторном дисплее луч не рисует горизонтальные линии сканирования, как в условной ЭЛТ. Вместо этого он может быть направлен в произвольную область экрана для создания яркой точки в конкретном месте. В векторных дисплеях без запоминания яркость точки определяется продолжительностью направления на нее луча. Варьируя входы X и Y, можно рисовать линии или другие фигуры. С помощью быстрого перемещения или изменения яркости (Z) входного сигнала можно отображать прерывистые линии. В данном случае я отключил вход Z, чтобы можно было увидеть последовательность отрисовки объектов на экране. В показанной здесь игре Lunar Lander используется цифровой генератор векторов, непосредственно управляющий лучом.



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

Аналоговая и цифровая генерация


При написании этого раздела я опирался на руководство Джеда Марголина по векторным дисплеям.


Схема цифровой генерации векторов


Схема аналоговой генерации векторов

Один из способов генерации векторов это использование цифро-аналогового преобразователя (ЦАП), напрямую управляющего входами X и Y дисплея. Это и есть цифровой генератор векторов, который использовался в ранних играх вроде Asteroids и Lunar Lander. В нем задействовались 10-битные ЦАП и операционный усилитель, настроенный в качестве буфера, но при этом требовалось, чтобы ЦПУ большую часть времени выполнял обновление входных сигналов ЦАП, а разрешение ограничивалось до приблизительно 1024х768 точек.

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



На современном оборудовании можно легко генерировать 12-битные линии, которые намного превышают разрешение небольших векторных дисплеев. При этом можно также задействовать механизмы прямого доступа к памяти (ПДП) на микроконтроллерах, чтобы разгрузить процесс отправки данных в ЦАП. На картинке выше показанпрототип моей открытой для использования платы v.st. Ее можно без проблем собрать также на макетной плате для собственных экспериментов.



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

Аппаратная часть векторного дисплея


Осциллограф




Современные цифровые осциллографы не очень хорошо подходят для отображения данных. Их ЖК-дисплеи могут эмулировать послесвечение, но обычно обладают всего лишь 8-битным АЦП и очень низким разрешением. Они по-прежнему сверхполезны для общего измерения сигнала, но не в интересующем нас случае.



Вместо этого можно отправиться на eBay или craiglist и найти аналоговый ЭЛТ-осциллограф с режимом X-Y, который обойдется в районе $50 Подойдет любой вариант с шириной полосы в 5МГц и более все равно ЦАПы на платах v.st могут выдавать частоту максимум 2МГц.

Запоминающие дисплеи




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

Вектороскоп




Вектороскопы, такие как Tek 1720, использовались в телевизионных станциях для калибровки цветовых полос, и по мере перехода станций в цифровой режим их применение постепенно прекращалось. В результате таких аналоговых дисплеев на eBay предлагается очень много и за небольшие деньги. Они используют очень быстрое электростатическое отклонение и оснащены, как правило, небольшими, но очень резкими экранами. Эти дисплеи также оборудованы дифференциальными входами, что избавляет от необходимости использовать отрицательный выход на ЦАП.

Консоли Vectrex



Консоль Vectrex


Электроника Vectrex

Домашняя игровая консоль Vectrex оборудована приятным черно-белым экраном с высокой резкостью. Можно без проблем отсоединить материнскую плату от аналогового драйвера ЭЛТ и вывести провода из корпуса для подключения платы v.st.



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

Лазерные проекторы




Также можно использовать лазерный проектор, вот только результат получится не лучшего качества. Физические зеркала обладают определенной долей инерции, и на включение/выключение луча требуется время. В результате частота обновления падает, и изображение получается мерцающим. Некоторые специализированные игры могут работать с очень быстрыми (45-60 Kpps) гальваническими сканерами, но почти все аркады требуют отображения слишком большого количества векторов.



Проект LazyMame добился неплохих успехов, но я не могу найти никаких подробностей или исходного кода уже с 2008 года. Позже в 2013 возник проект OpenLase-Mame, который с тех пор молчит. Помимо этого, другие разработчики пробовали создавать новые лазерные игры с помощью кастомного плагина Unity. Некоторые преуспели.

MAME



MAME это акроним от Multiple Arcade Machine Emulator, означающего эмулятор множества аркадных автоматов, и его имя себя вполне оправдывает он способен эмулировать тысячи игр и автоматов, включая практически все когда-либо созданные векторные аркады.

Эмуляция векторных дисплеев



Фактическое свечение на векторном дисплее


Эмулированное векторное свечение

Эффект свечения, создаваемый яркими векторными линиями, относится к одной из излюбленных игроками особенностей. В MAME есть поддержка шейдеров HLSL, которые размывают яркие линии и создают подобие этого эффекта. Сверху изображен реальный дисплей
Vectrex, а снизу эмуляция на MAME.

Патчи для подключения к дисплею




К сожалению, мой патч для MAME, который добавлял поддержку экспорта векторов, был закрыт как неприемлемо грязный способ достижения желаемого результата. Так что вам потребуется клонировать мое дерево и следовать инструкциям по созданию векторного MAME. Основная часть изменений находится в src/emu/video/vector.cpp и опирается на усекаемые окна, которые MAME использует для ограничения векторов областью экрана.

Патчи для Raspberry Pi




Я также портировал изменения в голую сборку MAME4AllPi для Raspberry Pi. Инструкции для векторного MAME на Pi аналогичны. Нужно будет клонировать дерево и вшить его в Pi. К сожалению, здесь имеется ряд проблем с джойстиком, которые еще предстоит исправить.

Играем



Вы можете поиграть в одну из оригинальных игр, Space Wars, вышедшую в 1977 году


Asteroids (1979) тоже всегда славилась популярностью и была одной из самых кассовых игр своего времени!


Lunar Lander на вектороскопе


Tempest на вектороскопе

Или, быть может, вам больше по душе придутся Lunar Lander (1979) и Tempest (1980).


Сэмулировать можно огромное число векторных игр, включая весь список Atari


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

Кастомизация


Пользовательские устройства ввода



Консоль Robotron собственной сборки


Robotron

Как только вы подключите векторный дисплей к MAME, вам наверняка захочется внести свои доработки. Можно без проблем собрать собственные USB HID-устройства на основе предлагаемых Adafruit аркадных джойстиков, кнопок и даже монетоприемников.

Примечание ред.: доступ к ресурсу Adafruit возможен только через VPN.

Креативное программирование с векторами




Если же вы устали от игр, то всегда можно превратить дисплей в вектороскопические часы. В Teensy 3 есть сквозные отверстия для кварцевого резонатора 32.768КГц и резервная батарея, позволяющая поддерживать точность отображаемого времени.


Можно писать игры, которые будут выполняться непосредственно на Teensy, как мой клон Asteroids, Space Rocks, или создавать какие-нибудь арт-проекты.


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






Мы создали простую библиотеку на Processing, чтобы показать, как пишутся программы, взаимодействующие с такими дисплеями. Образец кода лежит в репозитории, а также портирован на ProcessingJS в виде демо-заставок Swarm и Random Walk.


Дополнительную информацию по платам можно найти на MAME, Vectrex и Tek 1720.



Подробнее..

Перевод Как я программировал шахматную партию против брата

13.06.2021 12:23:01 | Автор: admin


Это история о том, как я попытался выиграть у брата партию в шахматы. Всего лишь гребаную одну игру. Что в этом особенного? Хорош ли я в шахматах? Вовсе нет. Научился ли я чему-то в процессе игры? Тоже нет. Может, это история о путешествии ради путешествия, а не цели? Не совсем. Получил ли я хотя бы удовольствие от этого? Не уверен.

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

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

Почему я вообще связался с шахматами


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

И все же однажды на его вызов я поддался. Стоит ли говорить, что проигрыш был разгромным. Я знал правила и основы игры, так как немного играл еще в детстве, но с навыками брата это ни в коей мере сопоставить было нельзя. В последствии, просматривая анализ игры на chess.com, я увидел, что мое тактическое отставание ход за ходом только росло, пока не достигло оценки в +9 (что равно потере ладьи, слона и пешки против отсутствия потерь противника). В тот момент, утратив всяческую надежду, я сдался. Подобная ситуация повторялась на протяжении еще пары партий, когда я понял с этим нужно что-то делать.

Первым моим решением было углубиться в изучение игры.

Попытка первая: изучение


Моя первая попытка улучшить качество игры состояла в очевидном: обратиться к Reddit и YouTube за рекомендациями других обучающихся. В перерывах между уроками от GM Naroditsky, чтением и решением задачек на Lichess я также сыграл несколько игр со случайными соперниками по интернету. Несмотря на все это мой рейтинг оставался низким (1300 1400 Rapid на Lichess).



После еще пары партий против брата на меня снизошло, что шансов победить у меня нет. Я продолжал следовать все тем же приемам развития (играл, изучал техники и смотрел видео), но уделял этому намного меньше времени, чем брат. На тот момент он уже играл сотни партий в месяц, я же не более 10. Такими темпами мое отставание росло все больше и больше.

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

Попытка вторая: изучение противника


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

На стадии миттельшпиля преимущество обычно достигается за счет развертывания долгосрочной стратегии и применения тактики. Стратегию можно совершенствовать чтением и изучением принципов игры (мне это нравится), а тактика вырабатывается только через решение задач (что мне особенно не нравится). Поэтому я понимал, что в тактических навыках буду однозначно отставать, учитывая, что мой брат решал на chess.com около 20 таких задач ежедневно. Для меня это был недостижимый предел. Таким образом, оставалась всего одна возможность: получать преимущество на стадии дебюта.

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

Тогда я решил просмотреть несколько случайных игр брата и попробовать понять используемые им дебюты. Я также изучил на Lichess дебюты Итальянская партия и Сицилийская защита, постаравшись запомнить их основные принципы. Помимо этого, я просмотрел кучу видео на YouTube.

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

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

Попытка третья: программирование


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

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

У меня также был список из более, чем 500 игр, которые брат сыграл на chess.com. А так как я программист, то естественным подходом для меня стало решить эту задачу инженерным путем.

Я начал скачивать сыгранные им партии с помощью API chess.com и разделять их на игры белыми и черными. Далее я сосредоточился на партиях, где брат играл за черных, потому что чувствовал, что имею больше шансов направить игру в нужное мне русло при игре за белых.

import jsonimport requestsdef get_month_games(player, yyyy_mm):    url = 'https://api.chess.com/pub/player/{}/games/{}'    r = requests.get(url.format(player, yyyy_mm))    if not r.ok:        raise Exception('get_month_games failed')    games = json.loads(r.content)    # Format: {games: [{url, pgn}, ...]}    return games['games']# ...

import chess.pgnimport ioimport jsonwith open('games.json') as f:    data = json.load(f)games = []for game in data:    pgn = io.StringIO(game)    games.append(chess.pgn.read_game(pgn))black_games = [g for g in games if g.headers["Black"] == "playerx"]

Далее я сформулировал задачу так: Учитывая все позиции, которые видел PlayerX, какие из них по завершению дебюта скорее всего окажутся для него наименее выгодными?.

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

Оказалось, что в Python уже есть отличные библиотеки для работы с шахматами: python-chess (генерация ходов, оценка и визуализация) и python stockfish (привязки для оценки шахматной позиции с помощью известного шахматного движка Stockfish).

Я преобразовал задачу в граф таким образом: узел это частная шахматная позиция (описанная в нотации FEN). Ребро связывает два узла при том, что целевая позиция оказывается достижима из исходной путем допустимого хода. Для всех игр есть один одинаковый стартовый узел: начальная позиция.

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

class GamesGraph():    def __init__(self):        self.graph = igraph.Graph(directed=True)    def add_move(self, start_fen, end_fen, uci):        vs = self._ensure_vertex(start_fen)        vt = self._ensure_vertex(end_fen)        try:            e = self.graph.es.find(_source=vs.index, _target=vt.index)            e["count"] += 1        except:            e = self.graph.add_edge(vs, vt)            e["uci"] = uci            e["count"] = 1    @property    def start_node(self):        return self.graph.vs.find(chess.STARTING_FEN)    def _ensure_vertex(self, fen):        try:            return self.graph.vs.find(fen)        except:            v = self.graph.add_vertex(name=fen)            v["fen"] = fen            v["turn"] = chess.Board(fen).turn            return v

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



Здесь начальная позиция обозначена квадратным узлом, цвет указывает, чей в этой позиции ход: белых или черных.

Я также хотел получить оценку каждой позиции в плане преимущества белых, для чего использовал Stockfish. Учитывая, что процесс оценки тысяч позиций требует времени, я решил выполнить его отдельно и создал объект JSON, сопоставляющий каждую уникальную позицию FEN с ее оценкой Stockfish.

from stockfish import Stockfishstock = Stockfish(parameters={"Threads": 8})stock.set_depth(20)stock.set_skill_level(20)def eval_pos(fen):    stock.set_fen_position(fen)    return stock.get_evaluation()# fens - это сопоставление между строкой FEN и узлом графа.for fen, node in graph.fens.items():    node.eva = eval_pos(fen)

Оценка преимущества возвращалась в сантипешках или как мат в X ходов, где положительное число означает преимущество белых, а отрицательное преимущество черных:

{"type":"cp", "value":12}    # Преимущество белых в 12 сантипешек.{"type":"mate", "value":-3}  # Черные получают мат в три хода.

100 сантипешек означают преимущество перед оппонентом в одну пешку, а 300 в одну легкую фигуру вроде слона. Однако стоит обратить внимание, что Stockfish присваивает фигурам значение в зависимости от их позиции, значит вполне возможно иметь преимущество в 1000 сантипешек даже при равнозначном количестве фигур на доске.

Мне нужно было отобразить эту оценку во что-то более удобное для обработки, например в числа между 0 и 1. Для этого я навскидку решил, что преимущество в 300+ будет отображаться в 1.0, а отставание в 300+ в 0. Помимо этого, любой мат в X ходов (даже если X равен 20) будет 1 или 0.

# Возвращает [-1;1]def rating(ev, fen):    val = ev["value"]    if ev["type"] == "cp":        # Закрепить -300, +300. Достаточно захватить фигуру.        val = max(-300, min(300, val))        return val / 300.0    # Мат в X ходов: также max рейтинг.    if val > 0: return 1.0    if val < 0: return -1.0    # Это уже мат, но для белых или черных?    b = chess.Board(fen)    return 1.0 if b.turn == chess.WHITE else -1.0# Возвращает [0;1], где 0 - это min, а 1 - это max преимущество для черных.def rating_black(ev, fen):    return -rating(ev, fen) * 0.5 + 0.5

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

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

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

  • Они представляли расстояние, а не вероятность (т.е. чем больше расстояние, тем ниже вероятность выбора пути).
  • Расстояние между двумя узлами являлось суммой весов пройденных ребер (в противоположность произведению вероятностей).

На деле это гораздо легче сделать, чем объяснять. Формула очень проста:

distance(e) = -log(prob(e))

В Python это будет выглядеть так:

def compute_edges_weight(vertex):    all_count = sum(map(lambda x: x["count"], vertex.out_edges()))    for edge in vertex.out_edges():        prob = edge["count"] / all_count        edge["prob"] = prob        edge["weight"] = -math.log(prob)

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

  • Сумма логарифмов равна логарифму произведения их аргументов: log(a) + log(b) = log(a*b).
  • Чем больше результат, тем ниже определяющая его вероятность.



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

В этот момент я произвольно выбрал минимальное значение преимущества и упорядочил пути по вероятности. Первые несколько путей представляли для меня наибольший шанс выйти из дебюта с преимуществом перед PlayerX.

Доработки


Что я выяснил? Среди выданных этим алгоритмом позиций была следующая (ход белых):



Как видите, черные находятся в очень неловком положении (+8.9 согласно Stockfish), потому что g6, последний ход черных, был ошибкой. Белые продолжат, забирая пешку с e5 и слона. На этом партия для черных практически закончена, так как спасать им придется коня, пешку на h7 и слона. Еще один результат алгоритма был таким (ход белых):



Здесь мы видим мат в один ход (детский мат).

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

Еще одна проблема была связана с последовательностями ходов, которые происходили только раз, но из типичных позиций. Вероятность их заключительной позиции оказывалась такой же, что и вероятность последней типичной позиции, потому что каждое ребро имело вероятность 1.0 (учитывая, что другие возможности не разыгрывались). В примере ниже можно проследовать по ребрам 7 и 6 (наиболее распространенная позиция на втором ходу), а затем по одному из ребер с 1-ми. Далее все последующие ходы будут сыграны только раз (потому что данная позиция сложилась только в одном матче), в результате чего каждый ход будет иметь вероятность 1.0.



А вот и вероятности:



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

Известная цитата (Б. Брюстера?): В теории нет разницы между теорией и практикой, а вот на практике есть оказалась в этом случае верна, поэтому мне потребовались кое-какие доработки и самостоятельное исследование, чтобы найти более удачные предполагаемые позиции.

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

def compute_edges_weight(vertex, prob_ceiling=0.9):    all_count = sum(map(lambda x: x["count"], vertex.out_edges()))    for edge in vertex.out_edges():        # Уверенности нет... Установим потолок вероятности (default 90%).        prob = min(edge["count"] / all_count, prob_ceiling)        edge["prob"] = prob        edge["weight"] = -math.log(prob)

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

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



Подготовка


В процессе изучения я остановил свой выбор на следующей позиции:



Согласно Lichess, это защита Алехина (атака двух пешек). В этой позиции для черных есть всего один удачный ход (Nb6), после которого они все равно остаются в менее выгодном положении (+0.6 согласно Stockfish). Однако из этой позиции PlayerX зачастую играет на Nf4, что весьма для него неудачно (+2.3). Я создал на Lichess студию и начал просматривать несколько вариаций (хороших ходов и ходов, сыгранных PlayerX).

В конечном итоге получилось дерево возможностей, которое я постарался запомнить и понять. К примеру, мне нужно было узнать, чему угрожал ход вроде d5, почему ход Nf4 был неудачным, и подготовить на все оптимальные ответы.

Занимался я этим недолго, потому что мне быстро надоело, и подготовился по факту лишь частично.

Решающая партия


Все случилось так, словно я глядел в будущее: мы с PlayerX попали в позицию защиты Алехина. Оказавшись в неудобной ситуации, он прозевал своего коня на пятом ходу. Оказывается, что даже игроки намного опытнее тебя начинают одну за другой совершать ошибки, когда попадают в проигрышные условия. Легко играть четко, когда ты побеждаешь, но удастся ли тебе сохранить хладнокровие в противоположной ситуации? На 10 ходу я уже вел с преимуществом +7.1, при котором сложно проиграть, но на этом также завершалась проработанная мной схема. Взгляните, насколько стеснены сейчас черные, и как мои фигуры нацелены напасть на короля:



С этого момента я начал тут и там совершать ошибки, но при этом мне удалось сохранять некоторое преимущество вплоть до 27 хода:



К сожалению, я был очень ограничен во времени (мы играли ускоренную 10-минутную партию), поэтому ходить приходилось быстро. В конечном итоге я совершил фатальные ошибки на 32 и 33 ходах, а еще через один получил от своего недобитого противника мат :/



Вот весь матч (с грубыми ошибками и прочим):


Интерактивный просмотр партии: lichess.org/2qKKl2MI

Выводы


Чему я из всего этого научился? Нескольким вещам, большая часть из которых в ретроспективе выглядит очевидной:

  1. Подготовка под конкретного противника может дать значительное преимущество в дебюте.
  2. Начинающие игроки часто упускают возможность воспользоваться сомнительными ходами соперника. В связи с этим легко получить преимущество, доведя противника до позиции, из которой есть лишь один удачный ход.
  3. Дебют не является определяющим. Если вы не умеете действовать по времени и слабы в тактике, то вполне можете проиграть даже абсолютно выигрышные позиции. Шахматная партия порой решается одним неверным ходом.
  4. Очень важно изучать игру, и нет никакого универсального средства против оппонента, который намного опытнее вас. Однако за счет правильной подготовки разрыв в навыках можно сократить .
  5. Применение к шахматам принципов программной разработки оказалось занятной идеей, особенно учитывая, что самоцелью было победить брата.

Использованный мной код лежит в репозитории. Обратите внимание, что я не включил туда данные, и сам код весьма небрежен. Тем не менее, надеюсь, он окажется полезен, в особенности тем, кто еще размышляет на тему освоения компьютерной науки. Смотрите с ее помощью вполне можно решать задачи из реальной жизни, так что это не просто перемещение битов туда-сюда.

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


Подробнее..

То, чего не может быть самые необычные версии обычных игровых консолей

17.06.2021 12:20:28 | Автор: admin


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

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

Теория гибрида: консольные эксперименты Sega


Хотя шестое поколение консолей оказалось для компании последним, именно Sega побила все рекорды по количеству невероятных гибридов, опередив на этом поприще и Sony, и даже Nintendo.

Sega SC-3000



8-битный игровой компьютер Sega SC-3000

Первые эксперименты со скрещиванием разнообразных девайсов Sega начала еще в 1983 году, выпустив 8-битный компьютер SC-3000, способный запускать игры для оригинальной домашней системы SC-1000 и позволяющий своему владельцу создавать простенькие программы. Хотя девайс был доступен в ограниченном числе стран (помимо Японии, SC-3000 официально продавался только в Австралии, Франции, Италии, Финляндии и Новой Зеландии), гибридная игровая консоль оказалась достаточно востребованной, показав даже лучшие результаты, чем ее предшественница.

Приставка-компьютер выпускалась в двух основных модификациях: кроме базовой версии, оснащенной встроенной мембранной клавиатурой довольно низкого качества, существовала и более дорогая SC-3000H, получившая полноценную механику.


Sega SC-3000H с механической клавиатурой

По характеристикам Sega SC-3000 и SC-1000 были практически идентичны: оба девайса были построены на базе процессора Zilog Z80A и использовали графическую подсистему от Texas Instruments TMS9918A с 16 КБ видеопамяти. Ключевое отличие между устройствами заключалось в объеме оперативной памяти: Sega SC-3000 несла на борту 2 КБ RAM вместо 1, как у SC-1000.

Помимо этого, количество оперативной и видеопамяти памяти у SC-3000 можно было увеличить с помощью картриджей BASIC разных типов, на которых также было записано программное обеспечение, необходимое для работы домашнего компьютера. Всего существовало 4 разновидности картриджей:

  • BASIC Level II A не добавлял дополнительной памяти;
  • BASIC Level II B добавлял системе 4 КБ RAM и 16 КБ VRAM;
  • BASIC Level III A добавлял 18 КБ RAM и 16 КБ VRAM;
  • BASIC Level III B добавлял 32 КБ RAM и 16 КБ VRAM.

В 1984 году для Sega SC-3000 был выпущен аддон Super Control Station SF-7000, расширяющий возможности оригинального устройства. Super Control Station добавлял компьютеру дополнительные 64 КБ оперативной памяти, 8 КБ ПЗУ, параллельный порт Centronics и последовательный порт RS-232, а также флоппи-дисковод.


Sega SC-3000H с подключенным к ней Super Control Station SF-7000

В отличие от самой гибридной консоли особой популярностью аддон не пользовался, прежде всего из-за дороговизны: на старте за устройство просили $600, то есть, почти вдвое больше, чем за сам SC-3000. Кроме того, дисковод Super Control Station был рассчитан не на доступные 3.5-дюймовые дискеты, а на более редкие 3-дюймовые, что делало данный девайс еще менее привлекательным в глазах конечного пользователя.

Sega Teradrive и Amstrad Mega PC



ПК со встроенной игровой консолью Sega Teradrive

Воодушевившись успехом SC-3000, в 1991 году Sega предприняла очередную попытку скрестить ПК и игровую консоль. На этот раз гибрид, выпущенный эксклюзивно для японского рынка и получивший название Teradrive, объединил в себе IBM PC на базе процессора Intel 80286 и популярную приставку Sega Mega Drive. Всего свет увидели 3 модели Teradrive, отличающиеся друг от друга объемом оперативной памяти и конфигурацией накопителей данных. Топовая модификация Model 3 несла на борту 2.5 МБ RAM, винчестер на 30 МБ и поставлялась с предустановленной операционной системой DOS/V (специальная версия DOS, поддерживающая японские иероглифы). В отличие от обычных IBM PC, системный блок Teradrive имел на корпусе слот под стандартные картриджи Sega Mega Drive.

Два года спустя Sega совместно с Amstrad выпустила более совершенную версию Teradrive, ориентированную на международный рынок и получившую название Mega PC.


Гибридный ПК Amstrad Mega PC

Гибридные ПК, выполненные на базе CPU Motorola 68000 или Intel/AMD 80386sx, оснащались 1 МБ оперативной памяти с возможностью расширения до 16 МБ, жестким диском на 40 МБ и дискретной графической подсистемой от Western Design Center WD90C11A-LR SVGA с 256 КБ VRAM на борту и возможностью расширения до 512 КБ.

И Teradrive, и Mega PC закономерно провалились в продажах. Причиной этого оказалась неадекватная цена за сравнительно слабое даже по тем временам железо. Так, например, имея на руках $2000, которые просили за Mega PC на старте, вы могли собрать куда более мощный ПК с Intel 80486DX, на котором можно было комфортно работать и играть, так что для большинства потребителей покупка такого гибрида попросту не имела смысла. Результат вполне закономерен: оба ПК были сняты с производства уже в год релиза, а анонсированный Amstrad Mega PC Plus на базе Cyrix Cx486SLC так и не увидел свет.

Victor Wondermega и JVC XEye



Игровая консоль с функцией караоке Victor Wondermega RG-M1

С момента изобретения караоке обрело невероятную популярность в Стране восходящего солнца, став неотъемлемой частью японской культуры, поэтому появление консоли Victor Wondermega RG-M1, разработанной Sega совместно c JVC, было лишь вопросом времени. Гибридный аппарат, дебют которого состоялся в 1992 году, объединял в себе игровую консоль Sega Mega Drive, аддон Mega CD и продвинутый аудиоплеер, оснащенный высококачественным цифровым сигнальным процессором от JVC, MIDI-выходом и парой 3.5-миллиметровых разъемов Audio Jack для подключения микрофонов.

Изначально Wondermega хотели снабдить выдвижным лотком для компакт-дисков, однако затем от этой идеи отказались в пользу CD-привода с верхней загрузкой и светодиодной подсветкой. Выглядело это оригинально и футуристично, однако на деле такое решение оказалось до ужаса непрактичным.


Дисковод Wondermega получил стильную светодиодную подсветку

Дело в том, что все модификации Wondermega поддерживали работу с Sega 32X, однако из-за особенностей конструкции консоли аддон попросту блокировал крышку дисковода после подключения. Чтобы решить эту проблему, Victor предложила покупателям услугу по апгрейду консоли, который сводился к замене стандартной крышки CD-ROM на специальную версию с боковым вырезом. Воспользоваться данным сервисом можно было вплоть до 2013 года, то есть, даже спустя 20 лет после релиза аппарата.


После установки аддон Sega 32X блокировал дисковод консоли

Через год JVC выпустила обновленную версию Victor Wondermega RG-M2. Вторая модель подверглась рестайлингу (однако проблема с Sega 32X так и не была решена) и получила поддержку беспроводных геймпадов, подключаемых к приставке с помощью фронтального ИК-порта. Впрочем, при желании владельцы консоли могли использовать и классические контроллеры, благо порты DE-9 никуда не делись, а лишь были перемещены на заднюю панель.


Wondermega RG-M2 с беспроводным геймпадом

Весной 1994 года свет увидела специальная версия Wondermega RG-M2 для США разработкой и дистрибуцией которой занималась уже сама JVC. Устройство получило название XEye и во многом уступало оригиналу. Первая партия консолей лишилась ИК-порта для беспроводных геймпадов и разъема S-Video, место которого занял 9-контактный AV-порт, а более поздние модификации приставок JVC XEye остались без поддержки аддона Sega 32X.


JVC XEye для американского рынка

Увы, проект Wondermega оказался провальным, причем как и в случае с Teradrive и Mega PC, главной причиной фиаско оказалась ценовая политика компании: купить Sega Mega Drive и Sega CD было куда дешевле, нежели чудо-агрегат от JVC (70 тысяч йен против 82 тысяч), а музыкальные системы с поддержкой караоке и так были у большинства поклонников данного развлечения.

Aiwa СSD-GM1



Игровой бумбокс Aiwa СSD-GM1

Плодом сотрудничества Sega с японской компанией Aiwa, специализирующейся на производстве бытовой электроники, стала портативная стереосистема Aiwa СSD-GM1, выпущенная ограниченным тиражом в Японии в 1994 году. Девайс вышел во всех отношениях странным: если покупатель той же Wondermega получал в свое распоряжение универсальный аппарат в монолитном корпусе, то в случае с СSD-GM1 консоль Sega Mega Drive была вынесена в независимую док-станцию, подключаемую к основному устройству с помощью идущего в комплекте кабеля. Сам же бумбокс заменял собой Sega CD, позволяя запускать на Mega Drive игры на оптических дисках.


Док-станция и стереосистема соединялись с помощью кабеля

Как и в случае с Wondermega, Aiwa СSD-GM1 поддерживала Sega 32X, так что владелец системы мог подключить этот аддон, чтобы поиграть в немногочисленные эксклюзивы и улучшенные версии оригинальных проектов для Mega Drive. Однако из-за неудачного расположения слота для картриджей, в который вставлялся Sega 32X, собранный воедино девайс необходимо было каждый раз класть набок.

Хотя Aiwa СSD-GM1 была не особо востребована среди геймеров на релизе, сейчас этот артефакт весьма ценится коллекционерами: найти полный комплект на том же eBay совсем непросто, а если таковой и удастся отыскать, будьте готовы выложить за него не менее 5 тысяч долларов.

Hitachi Hi-Saturn MMP-1000NV



Hi-Saturn MMP-1000NV игровая консоль для автомобилистов

В числе стратегических партнеров Sega, получивших права на создание собственных версий игровой консоли Saturn, была и Hitachi, занимавшаяся разработкой процессора и дисковода для игровой консоли. Среди нескольких моделей приставок, выпущенных японской корпорацией, особого внимания заслуживает Hi-Saturn MMP-1000NV, также известная под именем Game & Car Navi Hi-Saturn.

Как можно догадаться по расширенному названию, данный аппарат был ориентирован на геймеров-автолюбителей. К MMP-1000NV можно было подключить портативный ЖК-монитор, ТВ-тюнер и спутниковый навигатор с поддержкой картографического ПО Naviken, которые продавались отдельно, и запитать систему через прикуриватель с помощью специального адаптера. Также Hi-Saturn можно было использовать и в качестве аудиосистемы с функцией караоке, причем эта версия приставки обзавелась полноценным мультиплексором.


Реклама Hi-Saturn MMP-1000NV на развороте японского журнала

Несмотря на богатый функционал, Hi-Saturn MMP-1000NV не пользовалась особой популярностью, ведь даже за ее базовую версию просили почти $1500, тогда как за портативный дисплей пришлось бы отдать еще $440. Стоит ли возможность скоротать время за видеоиграми в пробке подобных затрат? Для большинства автомобилистов ответ на этот вопрос оказался вполне очевиден.

Fuji Divers 2000 CX-1



Игровой телевизор Fuji Divers 2000 CX-1 со встроенной Sega Dreamcast

В мае 2000 года Sega сделала невозможное, выпустив совместно с Fuji практически идеальный геймерский телевизор, обладать которым мечтал, наверное, каждый фанат Dreamcast. Речь идет об уникальном моноблоке Fuji Divers 2000 CX-1, выполненном в форме головы бессменного маскота Sega ежика Соника, главного героя серии игр Sonic the Hedgehog.


Корпус Fuji Divers 2000 CX-1 напоминал голову ежика Соника

Помимо футуристичного дизайна, Fuji Divers 2000 CX-1 отличался весьма богатым функционалом. Это был отнюдь не просто моноблок со встроенной игровой консолью, а самый что ни на есть полноценный Smart TV! Телевизор имел полный набор сетевых интерфейсов и поддерживал работу с клавиатурой и веб-камерой Dreameye, которые поставлялись в комплекте, благодаря чему его владелец мог с комфортом серфить в Интернете и даже участвовать в видеоконференциях, используя фирменное ПО Dream Passport 3 от Sega.

Счастливые обладатели Fuji Divers 2000 CX-1 также отмечали превосходное качество цветного 14-дюймового кинескопа и встроенных стереодинамиков, что помогало с головой погрузиться в игровой процесс.


Комплектация Fuji Divers 2000 CX-1 была весьма богатой

К сожалению, гибридный игровой телевизор был выпущен ограниченным тиражом и только для японского рынка. Так что если вы вдруг захотите приобрести подобное чудо в свою коллекцию, будьте готовы отдать за него от 3 до 5 тысяч долларов США.

Sega Fish Life



Виртуальный аквариум Sega Fish Life

Однако самой дорогой модификацией Dreamcast оказался аппарат под названием Sega Fish Life, предназначенный для запуска всего одной игры. Специальная версия консоли вышла в 2000 году и была ориентирована на рестораны и отели. В комплект стоимостью 6 тысяч долларов США, помимо самой приставки, входил разработанный Sega 15-дюймовый сенсорный LCD-монитор.

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


Совсем как настоящая, ведь правда?

Увы, Fish Life оказался слишком дорог даже для предприятий HoReCa. В общей сложности Sega удалось реализовать около 300 комплектов оборудования, а большую часть тиража впоследствии пришлось утилизировать.

Страсти по Nintendo: инновации, интриги и предательства


В отличие от Sega, у Nintendo практически не было откровенно неудачных экспериментов. Кроме одного, результатом которого стало появление на консольном рынке нового игрока.

Sharp Famicom Titler



Famicom Titler самая навороченная 8-битная консоль

Если вы полагаете, что выпуск PRO-версий консолей на закате поколения является ноу-хау Sony, то жестоко ошибаетесь: именно Nintendo стала первопроходцем на этом поприще, представив в 1989 году игровую систему Famicom Titler прокаченную версию оригинальной NES, разработанную совместно с Sharp.

На момент релиза Famicom Titler являлась самой технологичной 8-битной игровой системой из представленных на рынке, поистине опередив свое время. Консоль умела генерировать RGB-видеосигнал, выводя на телевизор картинку, сопоставимую по сочности и четкости с изображением, генерируемым игровыми автоматами на базе PlayChoice-10. В свою очередь, полный набор видео- и аудио- входов и выходов, среди которых присутствовал и S-Video, позволял подключать к приставке камкордер и видеомагнитофон, записывать игровой процесс на видеокассеты и использовать Famicom Titler для видеомонтажа.


Задняя панель Famicom Titler

С помощью встроенного программного обеспечения пользователь мог добавлять к видео субтитры (для ввода букв на корпусе консоли был предусмотрен миниатюрный сенсорный дисплей, причем аппарат умел распознавать рукописный текст, преобразуя его в печатные символы), записывать аудиокомментарии с помощью поставляемого в комплекте микрофона, и накладывать на видеоряд клипарты из богатой коллекции, сохраненной во внутренней памяти устройства. Таким образом каждый владелец Famicom Titler мог без особого труда создавать эффектные видеооткрытки и забавные клипы без специальных знаний и дорогостоящего оборудования.

Ничего не напоминает? Фактически Sharp Famicom Titler предвосхитил появление социальных сетей, сторис и летсплеев. Другое дело, что в конце 80-х все это являлось лишь смутным концептом: тогда мало кто мог себе представить, что в будущем сетевые технологии позволят передавать файлы и потоковое видео на колоссальные расстояния, а ведь именно возможности свободного обмена информацией между людьми и не хватало для популяризации такого функционала. Как следствие, в своих последующих игровых системах Nintendo отказалась от дальнейших экспериментов подобного толка, всецело сосредоточившись на совершенствовании игровых систем.

Sharp Famicom TV C1, Sharp NES TV и Sharp SF-1 SNES TV



Игровой телевизор Sharp Famicom TV C1

В отличие от Sega, Nintendo никогда не стремилась скрестить бульдога с носорогом. Очевидно, менеджеры компании прекрасно понимали, что аудитории пользователей ПК и домашних консолей мало пересекаются, а создать производительный и, вместе с тем, доступный комбайн, который бы устроил всех, в принципе невозможно. Идея же игрового телевизора напрашивалась сама собой, так что появление проекта Sharp Nintendo Television не заставило себя долго ждать.

Первой ласточкой в рамках данной концепции стал Sharp Famicom TV C1, вышедший в 1983 году и продававшийся в Японии под официальным названием My Computer TV C1. Линейка цветных телевизоров со встроенной NES включала в себя две модели с диагональю экрана 14 и 19 дюймов. Моноблоки поставлялись с предустановленными приложениями JR GRAPHIC и TV NOTE. Также к каждому телевизору прилагался мультикартридж с урезанными версиями игр Donkey Kong Jr. и Donkey Kong Jr. Math. На тот момент это был единственный лицензионный мультикартридж для игровой системы Famicom.

Релиз версии Sharp Famicom TV C1 для США, получившей название Sharp NES TV, состоялся в августе 1989 года. Игровые телевизоры получили обновленный дизайн корпуса, который оказался не самым удачным: пластиковые ножки, призванные обеспечить устойчивость системы, были слишком хрупкими и быстро ломались.


Sharp NES TV отличался весьма хрупкими ножками

В следующем поколении консолей Nintendo вновь обратилась к Sharp, и в 1990 году свет увидели две модели игровых телевизоров Super Famicom Naizou TV SF1 (SF1 SNES TV) с диагональю экрана 14 и 21 дюйм. За пределами Японии моноблоки официально не продавались.


Телевизор Super Famicom Naizou TV SF1 со встроенной SNES

С проектом Sharp Nintendo Television связан интересный факт. В силу технологических особенностей моноблоки выдавали заметно лучшую картинку, нежели обычные NES и SNES. Из-за этого в рекламе и пресс-релизах Nintendo использовала скриншоты, полученные именно с помощью игровых телевизоров, поскольку они смотрелись значительно эффектнее. Конечно, подобное лукавство не идет ни в какое сравнение с современными махинациями с пререндеренными сценами, выдаваемыми за реальный геймплей, однако даже здесь Nintendo оказалась законодателем мод.

SNES-CD (Nintendo PlayStation)



Полумифическая Nintendo PlayStation во плоти

Долгое время SNES-CD окутывал ореол таинственности. Вокруг этого устройства ходило немало слухов и спекуляций, а многие эксперты и коллекционеры и вовсе считали консоль выдумкой. Так продолжалось вплоть до 2015 года, когда наконец был обнаружен единственный уцелевший из 200 выпущенных прототипов уникальной приставки, созданной ныне непримиримыми конкурентами Sony и Nintendo.

Обретение SNES-CD иначе, как чудесным, не назовешь. Один из бывших сотрудников Advanta Corporation, Терри Диболд, после банкротства компании выкупил часть ее имущества, выставленного на аукцион, всего за $75. Среди приобретенного по дешевке хлама было и нечто весьма необычное, больше похожее на фейк. Странная находка представляла собой игровую консоль, оснащенную слотом для картриджей и CD-приводом, и идущую в комплекте с геймпадом, облик которого один в один повторял дизайн стандартного контроллера для SNES. Вот только на всем перечисленном гордо красовалась надпись PlayStation.


SNES-CD в сравнении с оригинальными Super Famicom и PlayStation

А история была такова. Понимая, насколько перспективным может оказаться использование оптических дисков в качестве носителей данных для игровых консолей, Nintendo в конце 80-х стала искать партнера для реализации подобного проекта, обретя его в лице Sony. В 1989 году две японских компании начали разработку модификации SNES со встроенным CD-приводом, получившую кодовое название PlayStation. Официальный анонс инновационной игровой системы состоялся 28 мая 1991 года в рамках выставки Consumer Electronics Show, прошедшей в Чикаго, став чуть ли не главной сенсацией мероприятия. А уже на следующий день Nintendo объявила о прекращении сотрудничества с Sony и заключении договора с голландской компанией Philips.

Причиной столь внезапного разрыва являлись давние подозрения руководства Nintendo в отношении Кена Кутараги инженера, курировавшего проект со стороны Sony. И, надо сказать, подозрения эти были небезосновательны: будущий отец PlayStation действительно рассматривал партнерство с Nintendo как отправную точку для развития собственного игрового бизнеса Sony.


Кен Кутараги, отец PlayStation и главный интриган игрового подразделения Sony

Превентивный удар, призванный выбить почву из под ног потенциального конкурента, возымел диаметрально противоположный эффект. Тогдашний президент Sony, Норио Ога, после такого публичного предательства буквально впал в ярость, чем и воспользовался Кен, убедив начальство, что компания сможет без труда отомстить бывшему партнеру. Норио дал добро на создание игрового подразделения Sony Computer Entertainment, которое и возглавил Кутараги, а всего через 3 года состоялся релиз первой Sony PlayStation.

В то же время Nintendo и Philips так и не сумели довести задуманное до конца, в итоге прекратив сотрудничество. А единственным живым напоминанием об этом проекте осталась мертворожденная Nintendo PlayStation, стоимость которой ныне составляет около 300 тысяч долларов США именно за такую цену уникальная консоль была продана на аукционе Heritage, прошедшем в 2020 году в Далласе (штат Техас), некоему коллекционеру, пожелавшему остаться неизвестным.

iQue Player



iQue Player лицензионная китайская консоль Nintendo

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

iQue Player представляла собой локализованную версию Nintendo 64 для рынка Китая, выпускаемую компанией iQue, основанной тайваньским инженером Вэй Йеном при участии японского игрового гиганта. Консоль представляла собой массивный геймпад, внутри которого была спрятана вся аппаратная начинка. Как и оригинал, iQue Player использовал SoC R-4300i, однако из-за различий в архитектуре и прошивке, что было следствием миниатюризации устройства, приставка не могла запускать игры для оригинальной Nintendo 64.

Еще одна интересная особенность iQue Player заключалась в необычном подходе к дистрибуции видеоигр. Последние распространялись через своеобразный аналог современного Nintendo eShop iQue Club. Поскольку на физических носителях игры для этой консоли не выходили вообще, а интернет (не говоря уже о eCommerce) тогда еще не был достаточно развит, геймерам приходилось посещать киоски iQue Depot, где они могли приобрести скретч-карты iQue Ticket с кодами активации понравившихся игр, подключить консоль к сети и скачать дистрибутив на проприетарную флеш-карту iQue Card объемом 64 МБ, заменявшую собой классический картридж (одна из них поставлялась в комплекте с приставкой).

Счастливые обладатели домашнего интернета могли воспользоваться веб-сервисом iQue@Home, чтобы приобрести и загрузить желаемые игры онлайн. С одной оговоркой: для этого было необходимо иметь еще и ПК под управлением 32-разрядной системы Windows, поскольку сама iQue Player выходить в сеть не умела, а драйверы для консоли не поддерживали 64-битные версии ОС.

Все эти сложности закономерно обеспечили приставке оглушительный провал: iQue Player продалась рекордно низким тиражом около 12 тысяч устройств, при этом для нее было портировано всего 14 игр из богатой игротеки Nintendo 64, что также не способствовало росту популярности девайса. Последним релизом на злополучной игровой системе стала Animal Crossing, вышедшая в 2006 году.

Panasonic Q



Мультимедийный центр Panasonic Q шикарный и недоступный

В отличие от прямых конкурентов в лице PlayStation 2 и Xbox, Nintendo GameCube нельзя было использовать в качестве домашнего мультимедийного центра. Поскольку консоль поддерживала исключительно проприетарные оптические диски стандарта mini-DVD, эту проблему было невозможно решить одним лишь обновлением прошивки: полноразмерные накопители попросту не влезали в миниатюрный дисковод.

Чтобы исправить это недоразумение, Nintendo заключила партнерский договор с Panasonic, благодаря чему в конце 2001 года на свет появился мультимедийный центр Panasonic Q. Цельнометаллический девайс, напоминавший по своему дизайну этакий SWAG-осциллограф, поддерживал воспроизведение DVD, VCD, Audio CD и MP3 CD, включая самописные, также позволяя запускать любые игры для оригинального GameCube и Game Boy с помощью модифицированной версии Game Boy Player Q (оригинальное устройство не подходило к станции Panasonic из-за форм-фактора). Кроме всего прочего, Panasonic Q мог похвастаться качественной аудиоподсистемой, поддерживал Dolby Digital 5.1 и DTS, и имел отдельный выход под сабвуфер.

Благодаря всему перечисленному гибридная консоль пользовалась (и продолжает пользоваться) популярностью среди коллекционеров, однако рядовые покупатели не оценили столь роскошный агрегат: по всему миру было реализовано менее 100 тысяч устройств. В результате Panasonic Q был снят с производства уже в конце 2003-го года, всего через пару лет после релиза.

Заурядная экзотика: нестандартные консоли от Sony


На фоне конкурентов Sony выглядит несколько консервативно. В портфолио компании практически нет устройств, при виде которых хочется воскликнуть: Да кто вообще мог такое придумать?. Тем не менее и в линейке PlayStation присутствуют несколько не совсем обычных консолей, заслуживающих упоминания в рамках данного материала.

Sony PlayStation Hi-Fi Edition



Аудиофильская PlayStation это как обычная PlayStation, только аудиофильская

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

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

Вступая на доселе неизведанную территорию игровой индустрии компания самую малость перестраховалась, установив в первые модели PlayStation (а это SCPH1000 для реализации на территории Японии, SCPH1001, ориентированные на американский рынок, и SCPH1002, предназначенные для продаж в Евросоюзе) топовый 16-битный сигма-дельта ЦАП АКМ AK4309AVM от Ashahi Kasei Microsystems и оснастив консоль полноценными RCA-разъемами, обеспечивающими превосходное качество передачи аудиосигнала.

В результате домашняя игровая приставка за $400 зазвучала значительно лучше, чем аудиосистемы за несколько тысяч долларов США. Благодаря этому первые ревизии PlayStation остаются востребованными среди меломанов и по сей день: поскольку таких устройств было выпущено достаточно много, приобретение б/у консоли все еще остается самым доступным способом приобщиться к миру Hi-Fi.

Sony PlayStation One



Бандл PlayStation One Combo

В 2000 году, на закате поколения, Sony выпустила компактную версию своей первой игровой консоли, получившую название PlayStation One. Данная модель отличалась от толстушки существенно меньшими габаритами (38 193 144 мм против 45 260 185 мм), улучшенной прошивкой и отсутствием последовательного порта для локального мультиплеера. Однако главной фишкой PlayStation One являлась возможность подключения 5-дюймового жидкокристаллического дисплея со встроенными динамиками, который можно было приобрести как в составе бандла PSone COMBO, так и отдельно.


LCD-дисплей для PSone можно было приобрести и отдельно от консоли

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



ЖК-дисплей PlayStation One в сложенном состоянии

Также Sony выпустила специальные блоки питания для подключения приставки к автомобильному прикуривателю и адаптер, позволяющий выводить консоль в Интернет посредством сотового телефона своеобразный мобильный гейминг начала нулевых. Однако перечисленные девайсы практически не продавались за пределами Японии: хотя PlayStation One и показала отличные результаты, обойдя на старте продаж не только предыдущие ревизии оригинальной консоли, но и свою старшую сестру, PlayStation 2, большинство геймеров продолжали воспринимать приставку сугубо в качестве домашней игровой системы.

Sony PSX



Мультимедийная игровая станция Sony PSX

Аббревиатура PSX является не только кодовым именем первого поколения игровых приставок Sony, но и названием уникального устройства 3 в 1, релиз которого состоялся в декабре 2003 года. PSX представлял собой продвинутый CD/DVD-плеер, оснащенный винчестером на 160 ГБ (5000-я серия) или 250 ГБ (7000-я серия), и способный запускать игры для PlayStation и PlayStation 2 благодаря 90-нанометровому гибридному чипу EE+GS, объединявшему в себе, как можно догадаться по названию, Emotion Engine и Graphics Synthesizer для оригинальных приставок.

Мультимедийный комбайн был совместим со всеми официальными геймпадами и картами памяти, выпускаемыми Sony, а старшие модели PSX, DESR-5700 и DESR-7700, также получили поддержку синхронизации с PlayStation Portable, что позволяло переносить между устройствами фото, видео и музыкальные файлы. К сожалению, за пределами Японии PSX не продавались.

Sony BRAVIA KDL22PX300



Телевизор Sony BRAVIA KDL22PX300 со встроенной PlayStation 2

В отличие от Nintendo, Sony не нуждалась в партнерах для создания гибридных устройств: когда компания задумала выпустить собственный моноблок, то взяла за основу линейку телевизоров BRAVIA.

Sony BRAVIA KDL22PX300 с диагональю 22 дюйма и разрешением 720p (1366 на 768 пикселей) вышел в 2010 году. От собратьев игровой телевизор отличало массивное основание, являющееся ничем иным, как модифированной игровой консолью PlayStation 2. Помимо игр, встроенная приставка поддерживала воспроизведение CD, CD-R, CD-RW, DVD, DVD-R и DVD-RW. Добавьте сюда возможность просматривать видеозаписи в большинстве популярных форматов непосредственно с флешки, а также поддержку IPTV, и на выходе вы получите универсальную мультимедийную систему, способную стать отличным приобретением даже сегодня. Тем более, что на вторичном рынке этот девайс все еще можно найти по адекватной цене.



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru