Содержание
Как играть в скрытую игру про динозавров в Google Chrome
Если у вас нет подключения к Интернету, вам не нужно делать ничего особенного, чтобы играть. Просто введите любой URL-адрес в адресную строку Google Chrome, и вы увидите этот экран.
Если у вас есть подключение к Интернету, вы можете получить доступ к этой странице, не прерывая соединение. Введите chrome://dino в адресную строку, и вы попадёте туда.
Попав на этот экран, вы можете начать игру, нажав пробел. Как только вы это сделаете, динозавр побежит. Цель игры — избегать всего, что встречается на вашем пути, например птиц и кактусов. Как только динозавр сбивает птицу или сталкивается с кактусом, игра окончена.
Это довольно изящный способ убить время, и всегда весело пытаться побить свой собственный рекорд. По мере продолжения сложность игры возрастает. Интересно подумать о том, какой наивысший результат когда-либо был достигнут, конечно, без жульничества, что подводит нас к следующему пункту.
Как играть
Чтобы играть в Динозавра в Гугл Хром, достаточно зайти в браузер. Если вы пытаетесь открыть страницу в веб-проводнике, а Интернета нет, появляется Динозаврик. Он начинает бежать сразу после нажатия на пробел. Суть игры для Гугл Хром незамысловата — перепрыгивать через препятствия. В некоторых случаях необходимо пригнуться. Таким образом, главный герой умеет делать только три вещи — бежать, прыгать и пригибаться. Управление осуществляется с помощью стрелки на клавиатуре (вниз), а также пробела.
Рассматривая вопрос, как играть в Динозавра в Гугл Хром, отметим бесконечность этого развлечения. Пройти его не получится. Бег начинается автоматически после нажатия пробела, после чего остается ждать только две кнопки — пробел (прыжок) или вниз (приседание).
При достижении где-то 300 очков на пути Динозаврика появляются летающие птеродактили. В зависимости от высоты полета их можно перепрыгнуть или пригнуться. Кроме того, в некоторых версиях можно менять время суток — устанавливать в настройках день или ночь. Еще раз отметим, что в Динозаврике не предусмотрено конца, поэтому пройти его не получится.
Нейросеть
Когда игра готова, можно к ней прикручивать искусственный интеллект. Для этого Эван пишет простую самообучающуюся нейросеть, которая работает по принципу обучения с подкреплением. Это значит, что ИИ сначала ничего не знает о мире, в который его поместили, и его задача — определить для себя правила, которые помогут играть в игру как можно дольше.
Если очень коротко, то это работает так:
- делают первое поколение сети;
- запускают её в игру и смотрят результат;
- те версии первого поколения, которые показали наилучшие результаты или дольше всех играли, остаются, а остальные убираются;
- эти удачные версии снова запускают в игру и тоже смотрят, какие из них покажут наилучший результат;
- новых везунчиков оставляют, остальных убирают, и всё повторяется до тех пор, пока ИИ не научится полностью проходить игру.
Первая версия ИИ, которую сделал Эван, просто прыгала случайным образом, и, если повезёт, то перепрыгивала кактусы:
Синяя линия — связь между параметрами игры и действием динозаврика. Пока всё примитивно.
У первых нескольких поколений ИИ была примитивная тактика: просто прыгаешь и надеешься, что интервал прыжков совпадёт с расстояниями между кактусами. Это не сработало, поэтому к седьмому поколению нейросеть нашла взаимосвязь между расстоянием до препятствия, расстоянием между препятствием и моментом, когда надо подпрыгивать:
Цветные линии вверху — это связи внутри нейросети в упрощённом виде. Видно, как одни параметры начинают влиять на другие.
Теперь ИИ умеет дожидаться, пока кактусы не окажутся достаточно близко для прыжка, вместо того чтобы перепрыгивать их случайным образом.
Интересный момент: так как Эван использует самообучающуюся нейросеть, то мы можем заметить, как в некоторых моментах динозаврик раздваивается или распадается на множество частей.
Это связано с тем, что ИИ постоянно проверяет, что лучше: прыгнуть чуть раньше или чуть позже. И если какая-то стратегия даёт результат лучше, чем у остальных вариантов — ИИ делает эту стратегию базовой и в следующем поколении опирается уже на неё.
25-е поколение — здесь появилась реакция на низко летящую утку: нужно пригнуться.
40-е поколение — связи поменялись, чтобы приспособиться к высокой скорости игры, когда кактусы за секунду пролетают от одного края до другого.
43-е поколение — визуально отличие не сильно заметно, но некоторые линии в связях стали толще. Это значит, что одни коэффициенты и параметры стали сильнее влиять на другие.
Что за игра Динозаврик в Хроме
Встроенная игра Динозаврик в Google Chrome предлагает перенестись в далекую эпоху — во времена, когда еще не было стабильного Вай-Фай соединения, а обрывы Сети были обычным явлением. После создания развлечения оно получило название Project Bolan. Имя получено в честь Марка Болана, являющегося вокалистом группы Т-Рекс.
При создании разработчики ориентировались на наиболее простую — пиксельную графику. Главный герой игры — Динозавр из Google Chrome под названием T-Rex. Он относится к виду тиранозавров, а само слово Rex переводится как Царь. Сразу после запуска Динозаврик бежит по пустыне, а на своем пути перепрыгивает через птеродактилей и кактусы.
После длительных обсуждений разработчики пришли к мнению, что в развлечении достаточно трех основных действий — уклонения, прыжков и бега. Цель создания Динозавра в Гугл Хроме, как уже отмечалось — помочь «убить» время в ожидании подключения. Необходимость ее создания была вызвана частными обрывами и нервами пользователей.
Динозавра нельзя назвать доступным, ведь увидеть его после первого входа не всегда удается. Многие пользователи Гугл Хром и вовсе не знают о существовании такого героя. Но в кругах опытных юзеров Динозаврик очень популярен. Пользователи знают, что достаточно нажать на пробел, чтобы Т-Рекс отправился в бесконечное путешествие по пустыне.
Инженер из компании Хром (Эдвард Юнг) утверждает, что каждый месяц игра запускается более 27 000 000 раз, что свидетельствует о ее популярности. Чаще всего она применяется на мобильных телефонах, но и владельцы ПК также не остаются в стороне. Наиболее востребовано развлечение в странах с нестабильным подключением к Сети или дорогим Интернетом. Чаще всего речь идет об Индии, Индонезии, Мексике или Бразилии.
Чит (взлом) игры Google Chrome Dinosaur
Этот приём позволяет вашему динозавру стать непобедимым, позволяя игрокам продолжать игру, не опасаясь, что их клюнут или уколят.
Чтобы взломать игру, вам необходимо находиться на экране «Нет Интернета», поэтому введите chrome://dino в адресной строке. Оказавшись там, щёлкните правой кнопкой мыши в любом месте экрана и выберите «Просмотреть код» в появившемся меню.
Откроется Chrome DevTools, который появится справа от окна браузера. В DevTools выберите вкладку «Console».
Кроме того, вы можете нажать Ctrl+Shift+I и сразу перейти на вкладку «Console» в Chrome DevTools.
На вкладке «Console» вставьте следующую команду и нажмите клавишу «Ввод»:
var original = Runner.prototype.gameOver
Может показаться, что это ничего не дает, но мы объясним, почему это необходимо, через секунду.
Далее введите эту команду:
Runner.prototype.gameOver = function (){}
В следующей строке после нажатия клавиши «Enter» появится f (){}.
Вот что происходит сейчас. Когда игра окончена (т.е. когда вы ударяете по объекту), вызывается Runner.prototype.gameOver() и запускается действие. В этом случае вы услышите звук, игра остановится и появится сообщение Game Over. Это без нашего кода.
Наш код заменяет функцию gameOver пустой функцией. Это означает, что вместо звука, остановки игры и появления сообщения ничего не происходит. Просто продолжаете бежать.
Проверим это. Закройте DevTools и нажмите пробел, чтобы начать игру.
Как видите, на динозавра не действуют кактусы или летающие существа. Миссия выполнена.
Теперь предположим, что вы играете 25 минут и хотите остановить игру и записать свой рекорд. Вам понадобится способ завершить игру, чего больше нельзя сделать, столкнувшись с кактусом.
Помните первый введённый код? Он сохранил обычную функцию gameOver в переменной original. Это означает, что теперь мы можем выполнить эту команду, чтобы использовать обычную функцию gameOver:
Runner.prototype.gameOver = original
Если вам интересно, вы можете (см. 2) посмотреть, что должно произойти, когда вызывается обычная функция gameOver.
Есть и другие
На Ютубе много примеров, как нейросети учатся играть в эту игру. Подходы существуют разные, но чаще всего вы увидите какие-то эволюционные или генетические алгоритмы, смысл которых в одном: случайным образом мутируешь много исходных персонажей, проверяешь их, отбираешь лучшего, потом делаешь ему копии и случайным образом мутируешь их. И так шаг за шагом, поколение за поколением удачные мутации укрепляются, а ненужные пропадают.
Так как машины могут прогонять поколения очень быстро, буквально за секунды, за несколько часов можно обучить нейронку какой-нибудь несложной игре, даже если она не знает её правил. А за дни, недели и месяцы можно обучить и более сложным играм. Об этом — в следующих частях.
Нравятся эксперименты с данными? Попробуйте аналитику
Практический курс и билет в профессию аналитика. Побеждайте знаниями и данными. Посмотрите, что внутри.
Попробовать