The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Игру Quake II перевели на технологии HTML5 и Javascript

02.04.2010 20:35

В рамках проекта GWTQuake несколько разработчиков из компании Google в свободное от работы время портировали игру Quake II на Javascript и технологии HTML5, такие как WebGL и элемент Canvas для рендеринга графики, WebSocket для работы в сети, Storage API для локального хранения данных, тэг "audio" для вывода звука. Игра была представлена вчера под видом шутки, но суть розыгрыша была в том, что проект оказался реальным.

В качестве основы для GWTQuake был использован код проекта Jake2, в рамках которого ранее был создана реализация игры Quake II полностью переписанная на языке Java. Для преобразования Java-кода в web-приложение, разработчики использовали инструментарий Google Web Toolkit (GWT), предназначенный для разработки динамических web-приложений на языке Java, которые затем при помощи специального транслятора преобразуются в представление на базе JavaScript и HTML (GWT использован при разработке таких сервисов, как Google Maps и Gmail).

Для организации вывода 3D-графики OpenGL-вызовы преобразованы в поддерживаемое некоторыми браузерами WebGL-представление, что дает возможность организовать рендеринг аппаратно ускоренного 3D контента без привлечения сторонних плагинов, используя только HTML5-конструкцию "Canvas" и специальный JavaScript API. Для организации многопользовательской сетевой игры, базирующийся на UDP протокол Quake реализован при помощи разработанного в Google JavaScript API WebSocket, позволяющего организовать двунаправленный обмен данными между wеб-приложением и сервером. Для сохранения настроек и записи текущего состояния игры была сэмулирована файловая система при помощи Storage API, который поддерживает хранение данных на локальной системе в формате ключ/значение.

В настоящий момент запустить игру можно только в тестовых версиях web-браузера Chromium, запущенного с опцией "--no-sandbox" (модель безопасности Chromium ощутимо замедляет вывод графики) и одной из последних ночных сборок Webkit. Что касается поддержки Firefox, то разработчики сообщают, что принципиальных проблем нет, в тестовых версиях Firefox поддерживается Canvas 3D и WebGL, но производительность JavaScript-движка Firefox в настоящее время не может обеспечить приемлемую для игры частоту кадров (в WebKit на MacBook и MacBook Pro удалось достичь 20-25 и 40-45 FPS).

  1. Главная ссылка к новости (http://timepedia.blogspot.com/...)
  2. OpenNews: Вышел первый черновой вариант стандарта WebGL
  3. OpenNews: Вышел Google Web Toolkit 2.0
  4. OpenNews: Консорциум W3C опубликовал 7 связанных с HTML5 документов
  5. OpenNews: В Google Chrome и WebKit появилась поддержка технологии web-сокетов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/26072-quake
Ключевые слова: quake, game, java, javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:02, 02/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждем Crysis в браузере
     
     
  • 2.21, hhg (ok), 01:27, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    предпочёл бы JA2 или 7.62
    хотя на флэше уже есть нечто подобное..
     

  • 1.2, аноним (?), 21:07, 02/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >несколько разработчиков из компании Google
    >
    >запустить игру можно только в тестовых версиях web-браузера Chromium

    Кто бы сомневался!

     
     
  • 2.16, filosofem (ok), 23:01, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Обратите внимание, что не на Google Chrome, а именно на Chromium.
     
     
  • 3.24, User294 (ok), 02:39, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Обратите внимание, что не на Google Chrome, а именно на Chromium.

    А в чем глобальное отличие, кроме того что гугля брендит Chrome под себя и усиленно пхает туда свою спайварь? oO

     
     
  • 4.38, filosofem (ok), 16:38, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сам спросил, сам ответил, молодец.
    Кстати да, есть еще совсем несущественный нюанс. Chromium - это исходники под BSD лицензией, а Chrome - бинарник.
     
  • 2.32, Zenitur (?), 14:49, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Вот, гляньте, наш талант тоже делает игрушки для браузеров Осваивает WebGL и пр... большой текст свёрнут, показать
     
     
  • 3.39, filosofem (ok), 16:43, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >НУ так вот, кажется на этой или соседней теме форума было замечено, что Google Chrome обрабатывает Яву и тому подобное в разы быстрее

    ...
    ...
    ...
    >Вывод: если браузер основан на GTK, то это его тормозит.

    А можно без сумбура, как получен этот вывод. То есть интересно каким образом быстрота Google Chrome привела к выводу, что GTK тормозит браузеры?

     
  • 3.45, ононим (?), 20:07, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты в курсе, что гугл хром для линукса использует GTK?
     
     
  • 4.52, Zenitur (?), 21:09, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, в курсе. Но я не говорю, что FireFox обрабатывает JavaScript медленнее из-за того, что он базируется в Linux на GTK: в Windows ситуация та же самая. Оба браузера там не используют GTK и отрисовывают быстрее. Читай внимательнее.
     
     
  • 5.60, name (??), 15:38, 06/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    есть 3 возможные причины, на мой взгляд:
    1) GTK :)
    2) "кривая венда!" :)
    3) компилятор
     
  • 3.46, User294 (ok), 00:38, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Вывод: если браузер основан на GTK, то это его тормозит.

    Нифига себе логика. Это ж чего надо скурить чтобы построить такую логическую цепочку? oO

     
     
  • 4.53, Zenitur (?), 21:15, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На фактах, на фактах... Это как же можно воображаь вокруг некрофилов, а самому любить и обожать Ubuntu? Принадлежность человека к позитивной социальной группе не делает его автоматически хорошим. Также и то, что в Ubuntu, которую ты уважаешь, большинство программ базируется на библиотеках GTK, не делают их автоматически святыми, идеальными и лучшими на свете. Без них программы работают процентов на 20 быстрее.
     
     
  • 5.54, User294 (ok), 23:32, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >На фактах, на фактах... Это как же можно воображаь вокруг некрофилов, а
    >самому любить и обожать Ubuntu?

    Еще один пример забористой логики? А можно мне, тупому, объяснить: какая взаимосвязь между некрофилами и убунтой? В убунте софт как правило не древний.

    >Принадлежность человека к позитивной социальной группе не делает его
    >автоматически хорошим.

    Ну да, а 2*2 == 4. И?

    >Также и то, что в Ubuntu, которую ты уважаешь, большинство программ базируется
    >на библиотеках GTK, не делают их автоматически святыми, идеальными и лучшими
    >на свете. Без них программы работают процентов на 20 быстрее.

    Без них - это как? На голых иксах? Так это... обычно авторы не осиливают сделать свой приличный рендерер и потому проги на чистых иксах выглядят весьма зубодробильно. Не говоря о том что каждый выглядит по своему т.к. рендерит в меру своей дури. А кутя еще монструознее по идее. Хотя нокия сейчас в ней тормоза неплохо пролечит но при более-менее реальном юзеже GTKшные программы ощущаются как-то слегка пошустрее и менее увесистыми. Ну еще бывает SDL, игрушечники ессно все делают сами, включая рендер контролов. И оно может даже и быстрее, но при этом, блин, без специальных потуг со стороны програмеров даже банальная копипаста в текстовое поле не работает, пардон.

     

  • 1.3, аноним (?), 21:10, 02/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > модель безопасности Chromium ощутимо замедляет вывод графики

    Ч.т.д. - никаких реальных приложений в вебе никогда не будет, ибо они либо тормозны, либо опасны.

     
     
  • 2.7, VBart (?), 21:33, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >никаких реальных приложений в вебе никогда не будет

    640K ought to be enough for anybody.

     
     
  • 3.9, аноним (?), 22:08, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    В объективной реальности s/K/M/, и то это уже не будет выполняться для Java поделий.
     
  • 2.11, szh (ok), 22:41, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    в новости про такое приложение писать что их "никогда не будет" - это оригинально.
     
     
  • 3.13, аноним (?), 22:49, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >в новости про такое приложение писать что их "никогда не будет" -
    >это оригинально.

    Какое приложение? Игра 10летней давности, которая идет на распоследних мобильниках с сотней FPS в software, на сверхмодном вебдваноль работает с горем пополам в одном браузере, используя ускоренный opengl? Это со словом "реально" даже рядом не стояло.

     
     
  • 4.18, Ariel (ok), 23:48, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Какое приложение? Игра 10летней давности, которая идет на распоследних мобильниках с сотней

    Quake 2 не меньше 13

     
  • 4.22, szh (ok), 01:32, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Какое приложение? Игра 10летней давности, которая идет на распоследних мобильниках с сотней FPS в software, на сверхмодном вебдваноль работает с горем пополам в одном браузере, используя ускоренный opengl?
    > Это со словом "реально" даже рядом не стояло.

    Реально работает на 40 FPS. Новость об этом. Сколько не тверди "с горем пополам" оно от этого реально работать не перестанет и 40 FPS в 4 FPS не превратятся. Ты это в состоянии понять ?

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

     
     
  • 5.25, User294 (ok), 02:42, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >т е для большинства GUI программок.

    А зачем GUI програмкам GL вообще?  oO Собссно апликухоподобную гуйню и так на ajax-е делают на ура запросто. Даже JS либ с виджетами развелось как грязи.

     
  • 5.41, аноним (?), 17:52, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Реально работает на 40 FPS. Новость об этом. Сколько не тверди "с горем пополам" оно от этого реально работать не перестанет и 40 FPS в 4 FPS не превратятся. Ты это в состоянии понять ?

    А ты в состоянии понять, что не игрушечное приложение, которое использует графику современного уровня, не даст и 4 FPS?
    Попробуй осознать простую логическую цепочку - весь софт на веб-технологиях реализовать принципиально невозможно -> рано или поздно тебе придется ставить нативные приложения -> для поддержания их в актуальном состоянии у тебя будет пакетный менеджер -> какой остается смысл использовать веб, когда то же самое можно тем же одним кликом поставить нативное, и при этом сэкономить кучу ресурсов, получить более широкие возможности и лучшую отзывчивость, и не быть привязанным к сети?
    Первая импликация может нарушаться если список приложений с которыми ты работаешь жестко ограничен. Тогда и скажи, что тебе нужна печатная машинка, и больше никогда на опеннет не ходи.
    Вторая может нарушаться если использовать аналог .dmg или .pbi пакетов. Ну о их недостатках уже было говорено тыщу раз, профаны могут и схавать.
    Третья импликация всегда истинна.

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

     
     
  • 6.50, szh (ok), 14:42, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1. Большинство современных приложений не используют "графику современного уровня" - ту которая будет тормозить.

    > весь софт

    2. Речь веду не о всем софте, а о большинстве софта.

    > не быть привязанным к сети

    3. веб софт можно делать непривязанным к сети, если грамотно писать его.

    4. вы похоже не знаете про NaCL.

    Все ваши цепочки рассыпались.

    > поставить нативное, и при этом сэкономить кучу ресурсов, получить более широкие возможности и лучшую отзывчивость

    Недостаток нативных gui приложений в том что они в подавляющем большинстве (из популярных) написаны под виндоус (которая в версиях последних 3х лет радостно сжирает кучу сэкономленных вами ресурсов).
    Уход от зависимости от виндоус возможен только через веб, линукс на десктопе вытесняет винду слишком медленно, apple не хочет снижать цены, поэтому тоже винду не потеснит как следует.

     
     
  • 7.59, аноним (?), 15:38, 05/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Все ваши цепочки рассыпались

    Вы ни одну из них не опровергли, вообще-то.

    > 3. веб софт можно делать непривязанным к сети, если грамотно писать его

    Тогда зачем вообще "веб"?

    > 4. вы похоже не знаете про NaCL.

    Прекрасно знаю. А вы можете своими словами рассказать что он даст цивилизации?

    > Недостаток нативных gui приложений в том что они в подавляющем большинстве (из популярных) написаны под виндоус (которая в версиях последних 3х лет радостно сжирает кучу сэкономленных вами ресурсов).

    Это не недостаток "нативных gui приложений", это недостаток "приложений, написанных под windows". И ваша вебня его никак не решает, потому что приложения эти так или иначе придется переписывать. Переписать их можно "традиционным способом", что уже много лет успешно делают и бед не знают. Но тут приходит szh и предлагает переписать вместо этого под какой-то веб, который всеми силами пытается скопировать тот же традиционный способ вплоть до нативного кода и отказа от веба (sic!). В чем же разница? В малом:
    1) оверхедно
    2) несукурно
    3) но модно

    > Уход от зависимости от виндоус возможен только через веб

    Бредите. Вы очень, очень сильно запутались.

     
     
  • 8.61, szh (ok), 15:18, 07/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    1 инсталляция не требует никаких действий от пользователя, 2 обновление верси... текст свёрнут, показать
     

  • 1.4, JL2001 (ok), 21:25, 02/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    если java можно сконвертить в жаваскрипт то почему нельзя сконвертить в нормальный экзешник с си-подобной моделью использования памяти вкомпиленой в саму программу ?
     
     
  • 2.5, birdie (?), 21:25, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ActiveX? :)))
     
     
  • 3.6, JL2001 (ok), 21:29, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    мне интересно почему нет компилятора Java => нативный код (те которые вкрячивают минижавамашину в экзешник ничего по сути не меняют)
     
     
  • 4.8, аноним (?), 21:59, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    gcj и кажется что-то в рамках llvm было. Только вот не все ими собирается. В java же вроже есть аналог eval(), значит без jit не обойтись.
     
  • 4.14, anonymous vulgaris (?), 22:52, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >мне интересно почему нет компилятора Java => нативный код (те которые вкрячивают минижавамашину в экзешник ничего по сути не меняют)

    http://www.excelsior.ru/products/index.html

     
  • 4.26, User294 (ok), 02:43, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >мне интересно почему нет компилятора Java => нативный код

    Есть, например, gcj. Но можно подумать что от этого она становится быстрее, ага...
    Да и вообще - вы конечно извините, но я не буду запускать из веба ни ваш EXE, ни ваш ява аплет. Потому что ссыкотно, знаете ли. А вдруг там троянец?


     
     
  • 5.36, svchost (ok), 16:01, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Навели на мысль, а нельзя ли написать какой-нить javascript, который на jit-компиляторе браузера превратится в исполняемый код, причем, не внутри браузера?
     
  • 5.51, JL2001 (ok), 18:03, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Есть, например, gcj. Но можно подумать что от этого она становится быстрее

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

     
  • 3.40, Iv946n (?), 16:51, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    "Native client" :-)
     

  • 1.10, Аноним (-), 22:37, 02/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1. Переписать кваку на жабаскрипте.
    2. Прикрутить к этому делу конвертер карт из гугльмапс.
    3. ??????
    4. PROFIT!!!
     
     
  • 2.12, аноним (?), 22:45, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >1. Переписать кваку на жабаскрипте.
    >2. Прикрутить к этому делу конвертер карт из гугльмапс.
    >3. ??????
    >4. PROFIT!!!

    Какой профит? Бегать по плоскости с невнятными пятнами? По google maps можно сделать разве что симулятор. И его сделали, пока проект gaia не закрыли - конвертили карты для MSFS. Выглядело очень красиво.

    А для наземных игрушек лучше сливать данные из OpenStreetMap и сделать гонки на каких-нибудь сверхскоростных байках по реальным городам. Более того, там кое-где есть информация о этажности домов, так что можно сделать что-то типа MechWarrior между реальными домами. С разрушениями и т.д.

     
     
  • 3.19, Аноним (-), 00:57, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Какой профит? Бегать по плоскости с невнятными пятнами? По google maps можно
    >сделать разве что симулятор. И его сделали, пока проект gaia не
    >закрыли - конвертили карты для MSFS. Выглядело очень красиво.

    Street View и 3D View в Google Maps великая вещь.

     
     
  • 4.20, Аноним (-), 01:00, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>Какой профит? Бегать по плоскости с невнятными пятнами? По google maps можно
    >>сделать разве что симулятор. И его сделали, пока проект gaia не
    >>закрыли - конвертили карты для MSFS. Выглядело очень красиво.
    >
    >Street View и 3D View в Google Maps великая вещь.

    Вот суперский ролик про Street View: http://www.spike.com/video/google-maps/2936622

     
  • 2.17, Аноним (-), 23:45, 02/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Никогда не понимал, зачем в таких псевдоинструкциях из 4 пунктов вторые два?
     
     
  • 3.28, Lain_13 (?), 04:20, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Мем такой.
     
  • 3.43, аноним (?), 17:54, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Никогда не понимал, зачем в таких псевдоинструкциях из 4 пунктов вторые два?

    Классику надо знать.

     
  • 3.44, Аноним (-), 19:55, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    http://ru.wikipedia.org/wiki/Гномы_(серия_South_Park)
     

  • 1.15, cherepashko (?), 22:56, 02/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    и как поиграть можно?где прямая ссылка?
     
     
  • 2.48, deboon (?), 12:55, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Where's the public demo link?
    We are as yet unable to provide a public demo link. The Quake II code is GPL licensed, but the demo resources (textures, models, sounds, et al) are not, so we cannot simply upload them to a server. We are pursuing legitimate avenues to do so, though -- stay tuned.
    Модели, текстуры, etc под не свободной лицензией - не могут себе на халяву положить на сервер.
     

  • 1.23, IGX (?), 02:12, 03/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждём, когда Linux переведут на HTML5 и JavaScript :)
     
     
  • 2.27, User294 (ok), 02:46, 03/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ога, написав виртуальную машину на JS какомнить :). А потом 15 минут ффтыкать на процесс загрузки минимальной системы. Действительно, сделать из могучего проца с кучей ядер подобие i386 - это ж прикольно. Как PoC "а еще мы вот так можем", а вовсе не для того чтобы это юзать :)
     
     
  • 3.57, IGX (?), 12:08, 05/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем что-то юзать, если и так все пальцы растопырены веером до невозможности :) Когда пальцы торчат торчком, совсем не обязательно что-то еще делать :)
     

  • 1.47, xcode (?), 01:17, 04/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем?
    Следующим шагом будет написание операционной системы на жабаскрипте, браузера и интерпретатора жабаскрипа для этой операционки, и запустить ее рекурсивно из под самой себя:)

    На асме надо кодить, на асме...

     
     
  • 2.49, filosofem (ok), 13:33, 04/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем?
    Асм не позволяет использовать многие хаки и недокументированные инструкции и на нем не реализовать все возможности различных процессоров. В машинном коде надо писать...
     
     
  • 3.55, ыыы (?), 05:11, 05/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    пишите псевдокодом или блок-схемами
     
     
  • 4.56, IGX (?), 12:05, 05/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Перфоленты! Перфоленты!
     

  • 1.58, sluge (ok), 12:23, 05/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ждем когда спортируют Q3
     
     
  • 2.62, Dretch (?), 17:59, 12/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >ждем когда спортируют Q3

    Ну я бы от Tremulous(движок Q3 юзает) тоже не отказался:)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру