Какое-то время назад разработчики из Mozilla портировали игру Doom в браузерный вид. Для демонстрации того, на что способен современный JavaScript в связке с HTML5.
Казалось бы: ну, запустили устаревшую игру в браузере, и чего теперь? Да нет, ничего. Мозилла всего лишь дала разработчикам недвусмысленный сигнал: теперь сложные приложения (без шуток, игры — одни из самых технологичных приложений в принципе) могут не зависеть от конкретной операционной системы и запускаться прямо в окне голого браузера без дополнительных костылей.
Небольшая демонстрация с очень серьёзными последствиями. Было круто.
А потом пришли копирасты из Id Software и всё поломали.
Mozilla не растерялась и написала собственную игру. Построила свой лунапарк, так сказать.
Ниже — перевод. Источник: http://hacks.mozilla.org/2012/03/browserquest/
Играть: browserquest.mozilla.org
BrowserQuest это дань классическим видеоиграм в связке с мультиплеером. Вы играете за молодого воина, движимого жаждой приключений. Здесь нет принцессы, которую нужно спасти, есть только опасный мир, наполненный сокровищами, которые нужно отыскать. И всё это написано на славном HTML5 и JavaScript.
Более того, это открытый проект, в чём можно убедиться по исходникам на GitHub.

Многопользовательский режим
В BrowserQuest могут одновременно играть тысячи игроков, распределенных по разным местам внутри игрового мира. Нажми на счётчик населения в любой момент, чтобы точно узнать, сколько людей играют прямо сейчас.
Игроки могут видеть друг друга и взаимодействовать друг с другом, используя встроенную систему сообщений. Кроме того, они могут объединяться в команды и сражаться с врагами вместе.
BrowserQuest это игра исследования: чем опаснее место, в которое ты пришёл, тем большим будут вознаграждения.
Работа на WebSockets
WebSockets это новая технология, обеспечивающая двунаправленный обмен данными между браузером и сервером в Интернете.
BrowserQuest — демонстрация того, как уже сегодня эта технология может быть использована для создания многопользовательской игры реального времени на одной-единственной веб-страничке. Когда вы начинаете игру, браузер поднимает WebSocket соединение к одному из нескольких игровых серверов с балансировкой нагрузки. Каждый сервер содержит множество разных областей игрового мира и управляет синхронизацией игроков и игровой логики во всех областях. Благодаря тому, что серверный код работает на Node.js, как сервер, так и клиент разделяют небольшую часть одного и того же кода на JavaScript.
Исходный код сервера доступен на Github.

Разработан на веб-платформе
BrowserQuest широко использует различные веб-технологии, таких как:
- HTML5 Canvas, который служит основой двумерного "плиточного" графического движка.
- Web workers, позволяющий инициализировать большую игровую карту, не замедляя при этом интерфейс.
- localStorage, в который постоянно сохраняется состояние персонажа.
- CSS3 Media Queries, благодаря которому интерфейс может менять масштаб и адаптироваться для множества устройств.
- HTML5 audio, позволяющий слышать агонию крыс и скелетов!
Доступен отовсюду
Так как BrowserQuest написан на HTML5/JavaScript, он доступен для множества различных браузеров и платформ. Можно играть из Firefox, Chrome и Safari. Игра может быть доступна и из Оперы, если в ней включить WebSockets. Кроме того, она совместима как с устройствами iOS, так и с планшетами и телефонами, запускающими Firefox из под Android.

Версии для мобильных устройств пока экспериментальные и менее стабильные, чем версия для компьютера с большей функциональностью и производительностью, но они дают представление о том, какие игры придут на мобильный Интернет в будущем. Попробуй игру на своём любимом планшете или мобильнике!
Присоединяйся к приключению
Хочешь стать участником BrowserQuest? Создай своего персонажа и помести его в мир. Сражайся с врагами в одиночку или вместе с друзьями, чтобы получать новое снаряжение и предметы. А в процессе ты даже можешь наткнуться на пару сюрпризов...
- Doom на JavaScript
- Виртуальная машина на JavaScript
- BrowserQuest – a massively multiplayer HTML5 (WebSocket + Canvas) game experiment
Комментарии