Создать бота в Телеграм намного проще, чем кажется. Рассказываем, как это сделать.
Telegram — это один из самых популярных мессенджеров в России. Он активно используется для общения, получения самых свежих новостей, поиска интересных фактов и даже покупок. Такие широкие возможности мессенджера, в первую очередь, связаны с огромным числом ботов на его просторах.
Это такие мини-программы, которые работают непосредственно в мессенджере и взаимодействуют с пользователем с помощью специальных команд или интерфейса. Боты могут выполнять самые разные, порой, и очень сложные задачи. И, по сути, их может создать любой пользователь Telegram, даже очень далекий от программирования и всего, что с этим связано.
Как сделать мини-НПС Мелон Плейграунд | Melon playground
Что нужно знать для создания бота
Все зависит от того, что вы хотите, и какого бота рассчитываете получить. Самые сложные и продвинутые боты создаются практически на любом языке программирования, начиная от Python и заканчивая PHP или Java. Но если ваша цель — создать простого бота в Телеграм, то изучать язык программирования для этого вовсе не обязательно. В интернете есть масса платных и бесплатных конструкторов, где требуется лишь знание минимальной логики. Есть такие сервисы и в самом Telegram, которые, по сути, представляют собой ботов по созданию других ботов.
Пока вы читаете эту статью, мы готовим другие, тоже интересные. Подпишитесь на наши каналы, чтобы не пропустить!
С чего начать
Перед, собственно, созданием нашего бота, нам нужно его зарегистрировать. Для этого найдите в поиске мессенджера официального бота для управления другими ботами. Его имя BotFather.
Для начала работы с ним нажмите кнопку «Запустить». После этого вы сможете ознакомиться с доступными возможностями бота и командами для взаимодействия с ним.
Нажмите кнопку «Меню» и выберите команду /newbot.
Как создать Android игру за 10 минут на языке Python!
Источник: ichip.ru
Как сделать приложение через VK Mini Apps — инструкция по созданию и примеры
VK Mini Apps — платформа для создания удобных функций, которые не требуют установки и открываются прямо ВКонтакте. Заказывать еду или такси, знакомиться с новыми людьми, искать работу или приобретать товары и услуги — всё это можно делать не покидая суперприложение VK.
Большинство VK Mini Apps придуманы независимыми разработчиками. На сегодняшний день пользователям ВКонтакте доступно уже 13 тысяч активных мини-приложений. Только за последний год количество людей, которые ими пользуются, выросло в 12 раз — с 1,6 миллиона до 23 миллионов.
VK Mini Apps предлагает решения и для бизнеса. Предприниматели найдут приложения для аналитики и оптимизации сообществ, оформления страниц и расширения их функциональности за счёт новых виджетов.
Команда ВКонтакте для бизнеса собрала 5 полезных приложений на платформе VK Mini Apps, созданных специально для предпринимателей и маркетологов.
«SMM анализ»
Приложение «SMM анализ» поможет администраторам и владельцам Страниц бизнеса ВКонтакте получить полную аналитику по их сообществам.
Как продвигать финансовые проекты в интернете?
Спецпроект о цифровых инструментах, которые помогают банкам, стартапам и другим финкомпаниям. Тексты экспертов и ничего лишнего:
- какие инструменты и подходы использовать для маркетинга;
- как распределить рекламный бюджет и настроить воронку продаж;
- какие каналы пора освоить, пока этого не сделали конкуренты;
- как развиваться и адаптировать рекламу под горячий рынок финуслуг.
Всё про диджитал для «финансов» →
Ознакомиться с практическими рекомендациями по обновлению сообщества и ответить на вопрос, почему в нём мало продаж, легко:
- откройте приложение;
- выберите одно из сообществ в списке. Кстати, проанализировать можно не только страницы, где вы администратор, но и сообщества из ваших подписок;
- нажмите кнопку «Анализировать», и приложение проверит ваше сообщество по собственному чеклисту.
В результате вы получите практические советы по оптимизации вашей страницы. «SMM анализ» расскажет, как лучше оформить основные разделы вашего сообщества и повысить пользовательскую активность.
Для получения результатов не обязательно быть владельцем страницы. Вы всегда можете проверить, как идут дела у конкурентов и подсмотреть полезные решения.
Разработчик приложения: SMM секреты с Анастасией Юговой
Язык программирования приложений для “ВКонтакте”
Из документов следует, что все приложения, которые будут разрабатываться применяют API (определённые команды, используемые различными программами Vkontakte) и делятся на два типа:
- Flash-приложения – файлы с расширением .swf., созданные в среде Adobe Flash и после компиляции в файл загружаемые на свой сервер или на серверы конкретного ресурса.
- Iframe-приложения (ифрейм) – создаются с использованием разных технологий, которые предоставляются браузерами, существующими на сегодняшний день, после чего, пользователи смогут пользоваться приложением из определённого окна.
Программа будет принимать и передавать данные посредством JavaScript – специального языка веб программирования, созданного для приложений, работающих в интернете на веб-сайтах.
Ниже я только назову некоторые технологии и языки программирования, с которыми вам нужно разобраться самостоятельно, поскольку так или иначе при создании приложения придётся столкнуться с этими понятиями, так как без таких знаний работать над проектом просто нереально:
Об JavaScript уже было сказано выше, кроме этого нужно знать:
- PHP – язык программирования, применяющийся для автоматизации работы с сайтом.
- HTML – язык маркировки (или разметки) гипертекста, предназначенный для разработки Web-страниц.
- 3D движки – инструменты, существенно ускоряющие и упрощающие процесс разработки, графической составляющей, т.п.
- Adobe Flash – специальная мультимедийная платформа, использующаяся для разработки веб-приложений. В неё входят такие инструменты, как Adobe Flash Professional и программа воспроизведения флеш-контента. Первым делом, приступая к созданию приложения, нужно загрузить и установить Adobe Flash
Теперь об исходниках.
Сейчас в сети интернет можно найти множество исходников приложений для «ВК», большинство из них бесплатны, более подробная информация есть на оф. сайте. Для получения самих кодов понадобятся декомпиляторы, с помощью которых придётся поработать над файлом с исходником.
«Рассылки сообщений»
Держите подписчиков в курсе самых важных новостей. Предложите им подписаться на рассылку и вовремя узнавать о поступлениях товаров или актуальных акциях.
Запускаете новый магазин или кофейню — сообщите дату и место открытия, продаёте билеты на концерты — отправьте напоминания накануне мероприятия. Главное, не злоупотребляйте сообщениями, иначе можно свести все усилия на нет. Частые рассылки начинают восприниматься как спам и не принесут вам пользы.
Для того чтобы подписаться на ваши новости, участникам нужно нажать кнопку в меню сообщества. А распространять вы их сможете через приложение «Рассылки сообщений».
Вы также можете подключить специальную платную версию рассылки. Она будет доступна только заплатившим за неё подписчикам. Функция полезна для тех, кто, к примеру, продаёт услуги онлайн-образования и хочет поделиться особенным контентом — расширенными уроками или дополнительными учебными материалами.
Разработчик приложения: Happy Santa
«Отзывы»
Многие перед покупкой предпочитают узнавать мнения других людей об интересующих товарах или услугах. Зачастую это становится ключевым фактором в принятии решений. Добавьте возможность делиться отзывами на вашей странице и покажите клиентам, что уверены в своём бизнесе. Это только повысит их доверие к вам. Как только вы установите «Отзывы» на своё сообщество, любой пользователь ВКонтакте сможет поделиться своими впечатлениями о вашей компании.
Приложение позволяет отработать обратную связь: оставить подробный ответ или поблагодарить клиентов за фидбек.
Разработчик приложения: Разработка приложений ВКонтакте
Примеры полезных и интересных мини-приложений VK
Веб-приложения помогут сэкономить свои время и силы:
- Программы для заказа еды («Макдоналдс Макфест», DLVRY, Pizza Hut и др.), цветов, одежды.
- Запись к врачу (DocOnline), юристу (PravovedRu), такси.
- Сервисы покупок (Aliexpress, Wildberries).
- Туризм и путешествия (поиск билетов – ScyScanner, BlaBlaCar, поиск отелей – Airbnb, Hotellook).
- Бизнес (DyLanding, «Мой ЖК», «Автоботы продаж», SocialSend).
«Макдоналдс Макфест» — лучшая программа для заказа еды.
К интересным веб-проектам стоит отнести Avatan (редактора фотографий), «Мои Гости», TopFace (для знакомства по фото), «Киноманию» и «Будильник».
SpyCat
SpyCat не просто мини-приложение, а полноценная коллекция умных виджетов для создания промостраниц, каталога товаров, списков клиентов, запуска актуальных акций и персональных предложений.
В SpyCat создано уже более 115 тысяч виджетов, которыми пользуются свыше 100 тысяч сообществ! В их числе и крупные бренды.
Необходимо повысить вовлечение или поднять продажи? Всего за пару кликов вы сможете настроить показ персональных обращений, установить уникальную обложку сообщества, поделиться списком предложений на которые у вас сейчас действуют скидки и акции. Сложно перечислить даже малую часть того, что доступно в SpyCat. Поэкспериментируйте с множеством виджетов и узнайте, какие из них лучше решат ваши бизнес-задачи.
А недавно команда запустила конструктор промостраниц на базе VK Mini Apps — Spycat Page. Он позволяет создавать посадочные страницы в соцсети и увеличивать конверсию с рекламы до 40%! Вы можете подключить к своему лендингу пиксель ВКонтакте, сервисы рассылок приложений, уведомления и даже сторонние системы аналитики.
Разработчик приложения: Spycat
Подробнее о платформе VK Mini Apps
Социальная сеть позволяет разработчикам создавать веб-приложения, цель которых – решение различных повседневных задач (общение, просмотр погоды, курса валют, пробок на улицах).
- пользователям не нужно скачивать приложения из App Store или Google Play;
- все функции программы работают при открытой странице профиля ВК;
- нет нужды нигде регистрироваться для запуска программы;
- формат выгоден как сайту, так и разработчикам;
- сервисы присутствуют не только в компьютерной версии, но и в мобильном приложении.
Структура и особенности
Любой сервис ВК является веб-ресурсом, управление которым осуществляется в специальной панели социальной сети.
VK Mini Apps дает возможность разрабатывать программы для повседневных задач.
Возможно разместить 3 различных версии приложения:
- Для браузеров сотовых телефонов (m.vk.com).
- Для персонального компьютера (vk.com).
- Для мобильных клиентов (с помощью нативных программ).
Веб-ресурс можно встроить через системный компонент Android WebView или через Inline Frame.
Приложения создаются на базе CSS, JavaScript, HTML (лично мне удобна Java, т.к. ее язык чем-то похож на C++). Для новичков в области программирования существуют бесплатные шаблоны и библиотеки ВК, позволяющие в короткий срок освоить все необходимые операции. Также многие другие полезные ресурсы (программы для создания интерфейса, тестирования, встраивания) находятся в разделе «Разработчикам» (vk.com/dev).
Как работает «ВК Мини Аппс»
Все сервисы создаются при использовании компонентов библиотеки для интерфейса.
VK API позволяет получать информацию о сообществах.
Я бы отметила 3 пункта, которые обеспечивают бесперебойную работу мини-приложений в ВК:
- VK UI Connect. Обмен данными между сервисами ВК и приложениями (важно при создании программного обеспечения для сферы продаж).
- VK API. Интерфейс, позволяющий получать информацию о пользователях и сообществах ВК, а также о событиях и мероприятиях (развлекательных сервисах, играх).
- VK UI. Адаптивные компоненты React. Они используются при проектировании сервиса, его внешнего вида. Включают в себя более 70 лучших мини-программ для React–JavaScript, позволяют писать кросс-платформенные веб-программы.
Разработка приложений
Алгоритм создания сервиса:
- Создание жизнеспособной либо необычной идеи.
- Проектирование (исследование потенциального рынка, общение с целевой аудиторией).
- Кастомизация, создание интерфейса. Работа проходит с помощью фреймворка React и VKUI StyleGuide.
- Разработка. Перед этим важно почитать правила и критерии размещения сервисов во ВК. Полезными будут WebSkills, Poo-Mini-App, VK Bridge Sandbox.
- Прохождение модерации.
- Бета-тестирование в системе Testpool (занимает около 2 недель).
- Выход в каталог, загрузка иконок, обложек для отображения на сниппетах. Публикация проекта.
- Дальнейшая монетизация, реклама, продвижение.
Разработка приложения включает проектирование и создание интерфейса.
Библиотека VK Connect
Сервис обеспечивает доступ к возможностям социальной сети.
- вызов карточки контактов;
- получение геопозиции;
- сканирование QR-кодов;
- поддержка запросов к API VK.
«Афиша»
Часто организуете мероприятия? Или, возможно, продаёте туры или билеты на концерты? Обратите внимание на приложение «Афиша». С его помощью вы можете удобно настроить все предстоящие мероприятия и встречи.
Приложение позволяет не только указать точную дату, время и место проведения событий, но и предложить участникам купить билеты, не покидая ВКонтакте.
Разработчик приложения: Афиша Dvizh
Источник: 3dgitter.ru
HTML5 Canvas — простая игра
До сих пор мы изучали, каким образом применить к холсту некоторые ключевые методы программирования, чтобы демонстрировать интерактивные рисунки и анимацию. Эти методы позволяют использовать холст не только для простого рисования, но и создавать на его основе завершенные, автономные приложения, такие как игры или мини-приложения в стиле Flash.
На рисунке ниже показан более амбициозный пример интерактивности и анимации, для реализации которого применяются все приобретенные нами на данный момент знания. Это простая игра, в которой пользователь должен провести значок через лабиринт. Значок начинает двигаться в определенном направлении после нажатия клавиши со стрелкой и продолжает перемещаться, пока не столкнется со «стеной» лабиринта. Для продолжения движения нужно нажать клавишу со стрелкой в направлении, в котором нет препятствий:
С точки зрения посетителя веб-страницы это забавная игра, а с точки зрения разработчика это эффективное использование возможностей холста HTML5 и искусного программирования на JavaScript. Посмотреть этот пример вживую вы можете на странице — «HTML5 Canvas — лабиринт». Оттуда же можно скачать необходимые файлы изображений для этого примера — face.png, maze.png и easy_maze.png.
Использование холста для создания сложного приложения требует от разработчика перелопатить значительный объем кода. В следующих разделах мы изучим основные моменты создания этого приложения, но будьте готовы хорошенько попотеть с программированием JavaScript.
Подготовительные работы
Прежде чем анимировать что-либо, нам нужно создать для этого соответствующие условия, подготовив должным образом холст. Хотя весь лабиринт можно было бы нарисовать на холсте линиями и прямоугольниками, для этого потребовался бы внушительный объем кода, написание которого вручную будет чрезвычайно долгим и утомительным процессом. Для этого нужно составить логическую модель всего лабиринта, а потом вырисовывать каждую его часть отдельной операцией.
Для этого подхода почти наверняка потребуется инструмент для автоматического создания кода рисования. Например, лабиринт можно будет нарисовать в Adobe Illustrator, а потом преобразовать его в код для холста с помощью какого-либо модуля расширения.
Другой вариант — взять готовую графику лабиринта и прорисовать ее на холсте. Этот подход будет особенно легким, т.к. Интернет изобилует бесплатными страницами для создания лабиринтов. Найти такие страницы очень легко — просто выполните поиск в Google по словам «maze generator», и вы получите буквально тысячи ссылок. Выбрав понравившийся вам генератор, укажите несколько параметров (например, размер, форму, цвета, плотность и сложность лабиринта), нажмите кнопку Создать, и в считанные секунды вы получите рисунок лабиринта, который можно сохранить на своем компьютере.
Исходная разметка примера выглядит следующим образом:
HTML5 Canvas — Лабиринт canvas < border: 6px double black; background: white; >img < display: none; >button Сложный лабиринт Простой лабиринт
В нашем примере используется готовый рисунок лабиринта. При загрузке страницы код отображает этот рисунок (хранящийся в файле maze.png) на холсте. Далее приводится код, который запускает этот процесс при загрузке страницы:
// Определяем глобальные переменные для холста и контекста var canvas; var context; window.onload = function() < // Подготавливаем холст canvas = document.getElementById(«canvas»); context = canvas.getContext(«2d»); // Рисуем фон лабиринта drawMaze(«maze.png», 268, 5); // При нажатии клавиши вызываем функцию processKey() window.onkeydown = processKey; >;
В действительности этот код не рисует фон лабиринта, а вызывает для этого другую функцию — drawMaze(). Использование в этом примере отдельной функции рисования лабиринта означает, что он не ограничен одним видом лабиринта, а позволяет загрузить любую картинку лабиринта. Для этого нужно просто вызвать функцию drawMaze() и передать ей название файла изображения лабиринта и координаты начала его прохождения. В следующем листинге приведен код этой функции:
// Отслеживаем текущую позицию значка var x = 0; var y = 0; // Таймер, включающий и отключающий новый лабиринт в любое время var timer; function drawMaze(mazeFile, startingX, startingY) < // Остановить таймер (если запущен) clearTimeout(timer); // Остановить перемещение значка dx = 0; dy = 0; // Загружаем изображение лабиринта var imgMaze = new Image(); imgMaze.onload = function() < // Изменяем размер холста в соответствии // с размером изображения лабиринта canvas.width = imgMaze.width; canvas.height = imgMaze.height; // Рисуем лабиринт context.drawImage(imgMaze, 0,0); // Рисуем значок x = startingX; y = startingY; var imgFace = document.getElementById(«face»); context.drawImage(imgFace, x, y); context.stroke(); // Рисуем следующий кадр через 10 миллисекунд timer = setTimeout(«drawFrame()», 10); >; imgMaze.src = mazeFile; >
В коде используется двухэтапный метод рисования изображения на холсте. Сначала определяется функция для обработки события изображения onload и последующего отображения загруженного изображения на холсте. Потом устанавливается атрибут src объекта изображения, что загружает изображение и активирует код. Этот двухэтапный процесс немного посложнее, чем просто получение изображения из скрытого элемента на странице, но он необходим для создания функции, позволяющей загружать любое изображение лабиринта.
После загрузки изображения лабиринта код подгоняет размер холста к размеру изображения, устанавливает значок в исходную позицию, а потом прорисовывает ее на холсте. Наконец, вызывается метод setTimeout(), чтобы начать показ кадров анимации.
Анимация значка
Процесс прохождения лабиринта начинается, когда пользователь нажмет одну из клавиш со стрелками. Например, при нажатии клавиши значок начинает двигаться вниз, пока не натолкнется на препятствие или не будет нажата другая клавиша.
Для этого в коде используются две глобальные переменные для отслеживания скорости значка, иными словами, количества пикселов, на которое он смещается по оси x или y в каждом кадре. Эти переменные называются dx и dy.
Когда пользователь нажимает какую-либо клавишу, холст вызывает функцию processKey(). Эта функция проверяет, не была ли нажата одна из клавиш со стрелкой, и если была, изменяет направление движения значка. Чтобы определить, какая именно клавиша со стрелкой была нажата, проверяется код нажатой клавиши. Например, код 38 соответствует клавише . Функция processKey() игнорирует все клавиши, за исключением клавиш со стрелками:
// Скорость перемещения значка var dx = 0; var dy = 0; function processKey(e) < // Если значок находится в движении, останавливаем его dx = 0; dy = 0; // Если нажата стрелка вверх, начинаем двигаться вверх if (e.keyCode == 38) < dy = -1; >// Если нажата стрелка вниз, начинаем двигаться вниз if (e.keyCode == 40) < dy = 1; >// Если нажата стрелка влево, начинаем двигаться влево if (e.keyCode == 37) < dx = -1; >// Если нажата стрелка вправо, начинаем двигаться вправо if (e.keyCode == 39) < dx = 1; >>
Функция processKey() не меняет текущую позицию значка и не пытается обновить ее отображение на холсте. Эта задача осуществляется функцией drawFrame(), которая вызывается каждые 10 мс:
function drawFrame() < // Обновляем кадр только если значок движется if (dx != 0 || dy != 0) < // Закрашиваем перемещение значка желтым цветом context.beginPath(); context.fillStyle = «rgb(254,244,207)»; context.rect(x, y, 15, 15); context.fill() // Обновляем координаты значка, создавая перемещение x += dx; y += dy; // Проверка столкновения со стенками лабиринта // (вызывается доп. функция) if (checkForCollision()) < x -= dx; y -= dy; dx = 0; dy = 0; >// Перерисовываем значок var imgFace = document.getElementById(«face»); context.drawImage(imgFace, x, y); // Проверяем дошел ли пользователь до финиша. // Если дошел, то выводим сообщение if (y > (canvas.height — 17)) < alert(«Ты победил!»); return; >> // Рисуем следующий кадр через 10 миллисекунд timer = setTimeout(«drawFrame()», 10); >
Код функции drawFrame() довольно простой, но всеохватывающий, решающий несколько задач. Прежде всего, он проверяет, движется ли значок в каком-либо направлении. Если не движется, то функция, по сути, ничего не делает.
Если же значок движется, то функция drawFrame() закрашивает желтым цветом текущую позицию значка, создавая, таким образом, след после продвижения. Потом значок перемещается в новую позицию. Затем код вызывает функцию checkForCollision(), чтобы проверить новую позицию. (Код этой функции проверки попадания рассматривается в следующем разделе.) Если новая позиция не верна, это означает, что значок столкнулся с преградой, и его нужно возвратить назад в старую позицию и прекратить движение.
Потом проверяется, не вышел ли значок за пределы лабиринта, т.е. прошел его. Если вышел, то выводится соответствующее сообщение. В противном случае код устанавливает время ожидания для вызова метода drawFrame() опять 10 мс.
На данном этапе мы рассмотрели весь код для игры в лабиринт, за исключением логики функции checkForCollision(), которая выполняет проверку столкновения значка с преградой.
Проверка попадания с использованием цвета пикселов
В предыдущей статье вы увидели, как можно выполнять проверку попадания посредством математических вычислений. Но это можно сделать и другим способом. Вместо того чтобы просматривать коллекцию нарисованных объектов, можно исследовать цвет блока пикселов. В некоторых отношениях этот подход более простой, т.к. для него не требуется обрабатывать все объекты и код для отслеживания позиции объекта. Но он будет работать только в случае четко определенных предположений об исследуемых цветах.
Проверка попадания посредством тестирования пикселов является идеальным способом для применения в игре «Лабиринт». С помощью этого метода можно определить, когда значок столкнулся со стеной лабиринта черного цвета. Если бы не этот метод, то нужно было бы сохранить всю информацию о лабиринте в памяти, а потом определять, не перекрывают ли координаты значка линии стен лабиринта.
Метод проверки на столкновения посредством анализа цвета пикселов возможен благодаря предоставляемой холстом возможности манипулировать отдельными пикселами, из которых состоит любое изображение. Контекст рисования имеет три метода для манипулирования пикселами: getImageData(), putImageData() и createImageData().
Метод getImageData() применяется для захвата пикселов прямоугольной области холста. Захваченные пикселы можно изменить и вставить обратно в холст с помощью метода putImageData(). А метод createImageData() позволяет создать в памяти новый, пустой блок пикселов, которые можно изменить, а потом вставить в холст посредством метода putImageData().
Если вы ожидаете, что каждый пиксел представляется одним числом, то ошибаетесь. Каждый пиксел представляется четырьмя числами — тремя для красной, зеленой и синей цветовых составляющих и одним для прозрачности. Поэтому, чтобы исследовать каждый пиксел, нам требуется цикл, который проходит через массив с шагом в четыре элемента. Ниже показана структура метода checkForCollision(), выполняющего проверку столкновения с преградой:
function checkForCollision() < // Перебираем все пикселы и инвертируем их цвет var imgData = context.getImageData(x-1, y-1, 15+2, 15+2); var pixels = imgData.data; // Получаем данные для одного пиксела for (var i = 0; n = pixels.length, i < n; i += 4) < var red = pixels[i]; var green = pixels[i+1]; var blue = pixels[i+2]; var alpha = pixels[i+3]; // Смотрим на наличие черного цвета стены, что указывает на столкновение if (red == 0 green == 0 blue == 0) < return true; >// Смотрим на наличие серого цвета краев, что указывает на столкновение if (red == 169 green == 169 blue == 169) < return true; >> // Столкновения не было return false; >
Итак, обсуждение программы «Лабиринт» завершено.
Примеры игр на HTML5 Canvas
Диапазон творческих возможностей холста практически неограничен. Интернет содержит огромное множество еще более амбициозных примеров работы с холстом, которые демонстрируют высшее мастерство кодирования на HTML5. Далее приводится список некоторых веб-сайтов, демонстрирующих потрясающие примеры:
Этот сайт содержит столько увлекательных примеров разработок на основе холста, что вы не сможете оторваться от экрана. Можно порекомендовать начать знакомство с этим сайтом с игры Mutant Zombie Monsters или инструмента для построения графиков биржевых котировок TickerPlot.
Это впечатляющее приложение на основе холста графически представляет статьи английской Википедии, где связанные темы соединяются тонкими линиями, похожими на паутину. При выборе новой темы соответствующая часть карты знаний помещается в центр страницы посредством плавной анимации.
В этой игре вы ходите с автоматом наперевес по простому трехмерному лабиринту, наподобие древней 3D-игры Wolfenstein, которая открыла повальное увлечение стрелялками в далеком 1992 г.
Источник: professorweb.ru