Классическая игра Doom была портирована (https://developer.mozilla.org/en-US/demos/detail/doom-on-the.../) разработчиками Mozilla для работы в любом современном веб-браузере, поддерживающем JavaScript и такие возможности HTML5, как поддержка тегов canvas и audio. Для портирования был использован проект Emscripten (https://github.com/kripken/emscripten), позволяющий преобразовать байткод LLVM в JavaScript-представление. В свою очередь, байткод LLVM может быть получен путем компиляции исходного текста на языках Cи или Cи++ при помощи llvm-gcc или clang.Из проблем отмечается (http://code.google.com/p/v8/issues/detail?id=947) низкая скорость работы в браузере Opera, а также в браузерах на базе движка V8 (Chrome, Chromium и т.п.). Для ускорения работы игры желательно чтобы браузер поддерживал типизированные массивы.
URL: https://developer.mozilla.org/en-US/demos/detail/doom-on-the.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=30743
Им, конечно, виднее, но лучше бы Firefox ускоряли и облегчали.
Они это и делают. Canvas почти удвоил fps с 4 до 6. Нужно же на чём то тестировать.
Есть еще над чем работать
У меня этот doom на Firefox 4 выжимает 30-40FPS (вверху написано) - отлично играбелен. Вы там что, на первом пентиуме его запустили чтоли?
4-й пентиум, 4-й Файрфокс, 11.04-я убунта, fglrx. 14-16 fps.
FF4, кор2 и феном под убунтой 11.04 спокойно выжимают 35-40 FPS. Драйвера графики дефолтные, открытые. Тут они совершенно не важны. Дум писался тогда когда 3DFX не было еще и в проекте, поэтому все 3D считается чисто программно на основном CPU. Ну или вот на яваскрипте теперь :)
> Драйвера графики дефолтные, открытые. Тут они совершенно не важны.Если бы так! К сожалению, нынешние проприетарные драйвера ATI (AMD) в линуксе все еще сильно напоминают ту самую обезьяну с гранатой - не знаешь, где вдруг объявятся тормоза.
Во всяком случае, с моей AGP HD2600 XT...
> все еще сильно напоминают ту самую обезьяну с гранатой - не
> знаешь, где вдруг объявятся тормоза.Вообще, да, 2D у открытых драйверов ВНЕЗАПНО быстрее чем у каталиста :). Хотя при таком размере картинки и FPSах - это сильно пофигу.
nouveau выдал ~35 при включенном compiz
firefox 3.6.17, 300 mb ram, core2duo
> firefox 3.6.17, 300 mb ram, core2duoFF 3.6.x в разы медленнее чем FF4 когда дело касается запуска JS. На core2 файрфокс 4 спокойно выжимает за 30fps и картинка плавнее чем на первых пентиумах с ISA видеокартами на которых оригинал запускался.
Ох вы и фантазер :) Пентиум с ISA видяхой, это надо же..
А оригинал бегал и на 386DX/486SX, только если по сетке, приходилось окошки у всех немного уменьшать, чтобы не лагало ))
> Ох вы и фантазер :) Пентиум с ISA видяхой, это надо же..Дык у первых пентиумов была как правило ISA + PCI. PCI карточки как раз начали появляться, ну и на них переходили постепенно. Они впрочем тоже скоростью не отличались, но для дума хватало. Всякие там VLB и прочие странные шины были экзотикой и не получили особой популярности, так что выбор был между картой на ISA если денег нет, и на PCI если есть.
> А оригинал бегал и на 386DX/486SX, только если по сетке, приходилось окошки
> у всех немного уменьшать, чтобы не лагало ))На 486-100 и 5х86-133 особо не приходилось уже. На 386 и без сетки приходилось уменьшать, иначе FPS получался никаким. В том числе и благодаря исовым видеокартам, бандвиза исы явно не хватало даже на 320х240 с хорошим FPS.
> Им, конечно, виднее, но лучше бы Firefox ускоряли и облегчали.Ну так вот такие штуки и являются отличным тестом JS движка. И тут вдруг внезапно оказывается что опера - тормозит. А у хрома дикие тормоза из-за бага в движке V8 (по этому поводу им был заведен баг). Ну вот и результаты нормального сравнения на по настоящему сложных скриптах :).
угу, с V8 огромные грабли в последних сборках Хромиума, но потихоньку исправляют.
> результаты нормального сравнения на по настоящему сложных скриптах :)А нафига они нужны, эти "по-настоящему сложные скрипты" ?
Писать серьёзное настольное приложение на javascript - безумие либо гениальная шутка.
>> результаты нормального сравнения на по настоящему сложных скриптах :)
> А нафига они нужны, эти "по-настоящему сложные скрипты" ?
> Писать серьёзное настольное приложение на javascript - безумие либо гениальная шутка.jmsx, jspeccy и jx86 улыбаются.
> jmsx, jspeccy и jx86 улыбаются.Из всего этого понаслышке знаком только с jspeccy - эмулятор то ли altirra, то ли spectrum. В общем, чьё-то безвредное хобби.
>> jmsx, jspeccy и jx86 улыбаются.
> Из всего этого понаслышке знаком только с jspeccy — эмулятор то ли
> altirra, то ли spectrum. В общем, чьё-то безвредное хобби.«всё, чего я не знаю, не существует. а если и существует, то это всё равно ерунда, потому что я о нём не знаю.»
> А нафига они нужны, эти "по-настоящему сложные скрипты" ?DOOMается что теперь куча всем известных игр постепенно появится в онлайне. Даже может с сетевым мультиплеером и прямо в браузере.
На самом деле эпохальность события вот в чем: это первая SDLная игра, запущенная в браузере. Так можно запросто переделать почти любую 2D SDL игрупод браузеры. Указанная тулза обеспечивает SDLное апи для ... того что было кодом на си/си++ :)
> Писать серьёзное настольное приложение на javascript - безумие либо гениальная шутка.
Кармак тоже толи безумный, толи гениальный. Но это не важно - он дал старт целому направлению отрасли. И спасибо ему за то что он не зажал сорц - настоящие профи не стесняются поделиться частичкой мастерства.
А что вы мне скажете на это, уважаемый?
А что можно на это ответить ? Движек ql это бинарный плагин. Никаким js там не пахнет.
> DOOMается что теперь куча всем известных игр постепенно появится в онлайне. Даже
> может с сетевым мультиплеером и прямо в браузере.Какой профит от жаваскрипта? Слаботипизированный, с ужасной производительностью, с катастрофически скудным набором библиотек и фреймворков. Очередное восьмигранное колесо.
Просто потому что работает во всех браузерах. А позвольте, во всех ли?> Указанная тулза обеспечивает SDLное апи для ... того что было кодом на си/си++ :)
Если хочется перверсий с интерпетируемыми языками, есть дотнет и джава. Или пусть этот жаваскрипт работает клеем, дергая апи системных высокопроизводительных библиотек.
>Какой профит от жаваскрипта? Слаботипизированный, с ужасной производительностью,
>с катастрофически скудным набором библиотек и фреймворков.Вернитесь в двадцать первый век. Тут все теперь по другому... если броузер не работает со js, то он не может называться броузером. Это уже просто html-viewer.
>Если хочется перверсий с интерпетируемыми языками, есть дотнет и джава.
Если им хочется перверсий, то не всё ли тебе равно как?
Остальные проблемы JS этим никак не отменить. Слабую типизированность, отсутствие структур, отсутствие нормальных эффективных контейнеров, (и невозможность всё это написать самостоятельно), невозможность работы с бинарными данными... Да, я знаю, что часть из этого грозятся поправить - только вот подобные вохможности надо заклажывать на этапе проектирования языка, а то уже сейчас имеем чудо, в сравнении с которым плюсы кажутся простым и понятным языком - потому что костыли ни хрена не объединены какой-либо внутренней логикой.Блин, нет на него повсеместно распространённого NaCl, для которого JS jстался бы способом реализовать нужные в каждом конкретном случае способы связи со страницей.
> Какой профит от жаваскрипта?Простой. Сразу есть во всех бразуерах.
> Слаботипизированный,
Для вас, Козлов ... типизированных массивов понастроили :)
> с ужасной производительностью,
Да ладно вам, в последнее время там идет нешуточная рубка и оно по скорости легко сделает остальные скриптоязыки.
> с катастрофически скудным набором библиотек и фреймворков.
Вот чего-чего а фреймворков для например создания гуев на жабаскрипте выше крыши.
> Очередное восьмигранное колесо.
> Просто потому что работает во всех браузерах. А позвольте, во всех ли?Во всех современных браузерах, поддерживающих фичи HTML5. А пользователи IE 3.0 пусть выгребают как умеют.
> Если хочется перверсий с интерпетируемыми языками, есть дотнет и джава.
И то и другое просрало веб. В силу грабельности с лицензированием и патентами и общей монструозности (дотнет ставится ЧАС, вываливая ГИГ ДРЯНИ на диск! Хотите себе браузер с сетапом на 200Мб?!) их почти невозможно включить везде в дефолтную поставку.
> Или пусть этот жаваскрипт работает клеем, дергая апи системных высокопроизводительных библиотек.
Фигня вопрос, какое апи будем стандартизировать? POSIX? Пусть его MS у себя по дефолту воткнет, и нет проблем :)
> и оно по скорости легко сделает остальные скриптоязыки.Неправда, LuaJIT, если не быстрее, то точно сопоставим с V8 & co по скорости.
> Неправда, LuaJIT, если не быстрее, то точно сопоставим с V8 & co по скорости.Да и хрен с ним. Его в браузерах нет и это пожалуй к лучшему. Паскалеподобный синтаксис годен только для академических зануд.
Это в ответ на эмулятор Белларда.
Вот только эмулятор Белларда написан им собственноручно
Ждем убунту которая будет работать на js в браузере
> Ждем убунту которая будет работать на js в браузереComing soon :). Пруфлинк: http://bellard.org/jslinux/
может комунить интересно будет: ктото скомпилировал Python в javascript :-)
> путем компиляции исходного текста на языках Cи или Cи++ при помощи llvm-gcc или clangВот, вот оно!! Я говорил что за LLVM будущее - она свяжет мир нативного кода и нормальных ЯП с новомодной VM-помойкой и динамическими ЯП. Конечно, лучше бы оно работало наоборот, ибо от VM все бегут скомпилить doom под браузер - дебильные игрульки, но, к сожалению, для динамических ЯП это не всегда возможно. Главное, теперь для web совсем не обязательно писать на гoвноскрипте - можно написать софтину на C/C++, и собирать её как в нативный код, так и в хрена лысово.
> Из проблем отмечается низкая скорость работы в браузере Opera, а также в браузерах на базе движка V8 (Chrome, Chromium и т.п.).
Ну опера и не претендовала, а гуглоподелка опять доказала что быстрая она только на собственных гугловских тестах.
> Ну опера и не претендовалаНу да, Опера не претендует. Она просто выдает свои ~30 fps. ЧЯДНТ?
Ах да, забыл. Opera 11.11
я подвтерждаю. поначалу показывала 3-5 фпс, а через 10 секунд 30-40 как на ФФ4
опера 11.11
У меня тоже на Опере показывает 3-5 фпс там где меню, выбор уровня, настройки. Запускаешь уровень, тут же вырастает до порядка 30 попугаев.
> У меня тоже на Опере показывает 3-5 фпс там где меню, выбор
> уровня, настройки. Запускаешь уровень, тут же вырастает до порядка 30 попугаев.У фокса и в меню под 40FPSов...
зря ты так. freebsd 8-stable, amd64, opera 11.11, драйвер от nvidia. 25-33 fps
и ещё: CPU: AMD Athlon(tm) 64 X2 Dual-Core Processor TK-53 (1693.84-MHz K8-class CPU)
> Вот, вот оно!! Я говорил что за LLVM будущее - она свяжет
> мир нативного кода и нормальных ЯП с новомодной VM-помойкойНа самом деле, LLVM там вообще побочная стадия - транслировать сразу си/си++ в JS было бы логичнее, но пока автоматически это можно сделать только такой вот 2-ступенчатой конверсией.
> и динамическими ЯП.
То-то в JS для повышения скорости работы типизированные массивы ввели... :)))
Без них работать с произвольными данными (ну вот например разобрать WAD файл DOOM) - очень геморройно и медленно.> совсем не обязательно писать на гoвноскрипте - можно написать софтину на
> C/C++, и собирать её как в нативный код, так и в хрена лысово.Кстати, нетребовательные игры на SDL теперь должно быть довольно просто запортировать под вебню.
> Ну опера и не претендовала,
В этой рубке гугла и мозиллы она так, под ногами гигантов путается.
> а гуглоподелка опять доказала что быстрая она только на собственных гугловских тестах.
На самом деле там у них какой-то дурной баг, из-за которого оно большую часть времени страдает какой-то фигней. Это, вероятно, можно починить - будет гораздо культурнее. Но пока вот так вот, да.
>[оверквотинг удален]
> мир нативного кода и нормальных ЯП с новомодной VM-помойкой и динамическими
> ЯП. Конечно, лучше бы оно работало наоборот, ибо от VM все
> бегут скомпилить doom под браузер - дебильные игрульки, но, к сожалению,
> для динамических ЯП это не всегда возможно. Главное, теперь для web
> совсем не обязательно писать на гoвноскрипте - можно написать софтину на
> C/C++, и собирать её как в нативный код, так и в
> хрена лысово.
>> Из проблем отмечается низкая скорость работы в браузере Opera, а также в браузерах на базе движка V8 (Chrome, Chromium и т.п.).
> Ну опера и не претендовала, а гуглоподелка опять доказала что быстрая она
> только на собственных гугловских тестах.Хм. Я однозначно за нормальные (т.е. статические, типизированные, компилируемые) языки, и против LLVM ничего не имею - но радоваться, что получилось (с тормозами) запустить Doom, который примерно с той же скоростью шел на i386 с 8 метрами памяти... Что-то здесь не так.
И NaCl дал бы вам гораздо лучшую среду.
P.S. Отдельно напоминаю гордящимся "подвигом" мозилловцев - http://labs.adobe.com/technologies/alchemy/
> P.S. Отдельно напоминаю гордящимся "подвигом" мозилловцев - http://labs.adobe.com/technologies/alchemy/Нахрен нужно. Пусть оно заработает на браузерах в том виде как они из коробки - тогда будет смысл. А доустанавливать дырявые сита от адобы - желающих все меньше. Если мозилла и хром оперативно на дыры реагируют и платят хаксорам за их поиск, то адоба только тупит до последнего, а апдейт выпускается когда все уже завалено троянами через их кривульки. Спасибо, но с таким подходом у адобы нет будущего.
в хроме флеш искоробки есличо
> в хроме флеш искоробки есличоЭто видимо ненадолго. Скоро HTML5 будет рулить и педалить. Гуглу с быстрым JS логично переманивать на свой браузер. А флеш у всех примерно одинаковый.
> Скоро HTML5 будет рулить и педалитьНу да, ну да, безусловно.
> А флеш у всех примерно одинаковый.
Абсолютно одинаковый - и в этом его основное преимущество над убогими тормознутыми жабаскрит поделками.
Кто-нибудь запускал на ФФ5? У меня чёрный экран. NoScript'ом разрешил, куки принимаю.
> Разработчики Mozilla создали вариант игры Doom на языке JavaScriptПафосно то как. А на деле полтора разработчика взяли исходники дума, скомпилили его llvm и прогнали через emscripten. Охренеть просто.
А то что спрайты пропадают, монстры через двери просвечивают - всем как обычно, наплевать.
Запустил в ff4
После 5 минут игры, на втором уровне повис с красивой картинкой:
Error: R_DrawColumn: 232 to 241 at 17
FAILURE in loop iteration: SDL_Quit!Но, блин, прикольно )
> FAILURE in loop iteration: SDL_Quit!Ну, понимаете, оно попробовало выйти. И если DOS версия зубоскалила про выход в DOS, а *никсная в *nix ... то куда выходить в веб-браузере?! Ну вот SDL_Quit и работает несколько странно: ему quit'ить некуда. Если выход делать штатно, про это позубоскалят в лучших традициях DOOM'а ;)
core2duo, powersave mode, 800MHz
intel gma x3100
leechcraft 0.4.70-473-g35606ad, qt 4.7.2
8-15 fps
MSI Wind U100 :: Ubuntu 11 netbook remix, firefox 4 -- все из коробки. играет уверенно с 16-20-25fps. Свалилось в корку на 2м уровне, когда очередной бронежилет взял.
А так, по ощущениям - тот самый ностальгический думец ...
Восхитительно! Обожаю я эти все штуки программные - LLVM, виртуальные машины и т.д. и т.п. Запуски того-то в чем-то и т.п. - на первый взгляд бессмысленно, но именно такие вещи ускоряют прогресс...
> Восхитительно! Обожаю я эти все штуки программные - LLVM, виртуальные машины и
> т.д. и т.п. Запуски того-то в чем-то и т.п. - на
> первый взгляд бессмысленно, но именно такие вещи ускоряют прогресс...VM VM'у рознь. LLVM в итоге компилит в машинный код и рулит, а java только тормозит и жрёт память.
> VM VM'у рознь. LLVM в итоге компилит в машинный код и рулит,Эээ вообще-то в данном случае это вообше промежуточное представление. Которое второй тулзой делается из своего виртуального байткода не менее виртуальным JSом. Ну а будет ли JS где-то сконверчен в нативный код - браузерские проблемы уже :)
> а java только тормозит и жрёт память.
Сдается мне что C -> LLVM -> JS в этом плане не сильно лучше, виртуальная машина еще более забористой получается. Зато не требует дырявых аддонов от всяких левых ораклов с их патентными троллями^W юристами.
я тоже люблю запускать линукс в браузере в винде под виртуалбоксом в линуксе в ксене на удаленном сервере. люблю делать глубокие проникновения ;]
Прошел три уровня под ФФ4, но все же отрисовка не идеальная: пропадают из видимости стены-решетки, монстры и предметы иногда... появляются если подойти ближе.
Со звуком тоже есть накладочки - для сравнения запустил этот же DOOM1 в досбоксе.
НО ЭТО ЯВАСКРИПТ, ребята! так что как proof of concept - впечатлило.
Первыми были Adobe со своим Alchemy. Там тоже промежуточное LLVM представление, которое превращается затем в ActionScript, а затем в байткод их виртуальной машины.Вот сами сравните с этим - работает в разы быстрее:
http://www.newgrounds.com/portal/view/470460
> Первыми были Adobe со своим Alchemy.и что?!!! то что они были первыми -- это обществу не прибавло НИКАКОГО технологического прогресса!
так как все эти технологии пришлось делать ЗАНОВА с НУЛЯ
задумайтесь об этом, любители проприетарщины!
> Первыми были Adobe со своим Alchemy.Адобу подходит это название :). А потом пришли нормальные физики и химики и показали как надо такие вещи делать.
Я далеко не фанат Adobe.
НО: DooM от адобе не тормозит, DooM от мазилы тормозит. Без фанатизма.
А doom от id вообще летает.
> НО: DooM от адобе не тормозит, DooM от мазилы тормозит. Без фанатизма.Doom от мозиллы не тормозит в браузерах мозиллы :). А то что у хрома вылезли баги - ну ой, бывает. Починят. У оперы просто движок JS похуже чем у этой парочки. Пусть пилят, или будут затоптаны.
Коды работают? (iddqd idkfa)
:3
Работают и iddqd b idkfa - только не все оружие дают )))
> Работают и iddqd b idkfa - только не все оружие дают )))Дык, шароварный эпизод!
> Работают и iddqd b idkfa - только не все оружие дают )))Вам небось ещё и supershotgun подавай?
В фуррифоксе показывает только заставку и не реагирует на воздействия, в хроме вообще сразу виснет.LLVM такой LLVM...
> В фуррифоксе показывает только заставку и не реагирует на воздействия, в хроме
> вообще сразу виснет.
> LLVM такой LLVM...А может руки такие крюки?
Нажать на ссылку - мастерских скиллов не надо. Да, не работает оно нифига.
У меня не пошла, но это скорее всего из-за интегрированного видео контролера i3 Intel.
У меня много демок не идут из-за не полной поддержки GL в интеловских дровах :(
Версия FF 4.0.1
Дайте Heroes III и Diablo II и чтобы всё сохранялось на сервере. А то я играю раз в год, к этому моменту уже другая система и Вайн не стоит.
> Дайте Heroes IIIvcmi или как их там правильно по идее использует SDL как раз, так что чисто теоретически даже наверное можно попытаться портировать. Только у HMM3 мнооооого данных. По сети задолбаетесь их грузить.
> HMM3 мнооооого данных. По сети задолбаетесь их грузить.Сэйвы у них маленькие. Сливайте папку с ними rsync'ом на сервак, что вы как лузеры то?
Подумать никогда не вредно. Раньше железо обновляли, чтобы не тормозило. Теперь есть повод сделать это еще раз %)
Скоро и поквакаем.
Ссылка уже не рабочает :( У кого есть рабочие ссылки?
ЗЫ. Ностальгия спать не дает.
Поиграли и хватит) Прикрыли уже)