Ads
Comments 116
у браузера сейчас достаточно мощности для запуска серьёзных 3D-игр


Quake: Release date(s) MS-DOS NA June 22, 1996

Я не оспариваю процитированную фразу, но она не к месту по-моему:)
Вы уж не обижайтесь, но данный проект сам по себе очень похож на реализацию анекдота о том, что какой бы мощный компьютер не был выпущен — программист всегда найдет, чем его занять.
Через бету Chrome (com.chrome.beta ищите в Google, на Play бета скрыта) надо с флажком в chrome://flags. Ну или через бету Firefox, но там 12 FPS.
Оказывается уже в релизе можно включить WebGL и просмотр FPS.
Но игра выдает ошибку «id1/pak0.pak is not pak file»
Все запустилось, но дальше меню и видеодемки игры по тапу в любое место уйти не удалось.
Планшет Nexus7 выдает около 20фпс, судя по показаниям хрома. Картинка плавная, черных стен нет.
Нет, я не хочу добавлять отсебятины, хватит меню по центру (хотя это не совсем отсебятина — было в Q2) и круглых частиц.
Даже схему наименования файлов музыки и строку, появляющуюся при удалении сохранения, я взял из Half-Life.
Кнопки «назад» и «вперед» желательно не нажимать, они кеширование с заголовком Range в браузере ломают, из-за этого возникает «is not a pack file».
И ещё не советую играть без USB-клавиатуры, так как на клавиатуре Transformer нет Esc и F1-F12, всё через консоль надо делать.
5 минут грузится, кроме надписи Starting Quake… ничего не происходит, видимо все ломанулись вспоминать детство
Офигенно! Правда, меня быстро убили (сноровку потерял много лет назад)…

И вот это тоже круто.
А что у вас за ОС и браузер? У меня на Windows и Android таких полосок между строками нет.
Классика жанра:
— У тебя менюха поехала
— Какой браузер?
— FF
— Я же пофиксил там все!
— Под Макосью…
В iOS'овском Safari не поддерживается WebGL. Ну он есть, но только для рекламы. По идее должен alert об ошибке выскочить, но значит там ещё другая ошибка появилась.
Мсье SiPlus, что-то на данной картинке, которая мне тоже встретилась при выходе из игры, я не вижу ваших инициалов Виталий Кузьмин. Разъясните пожалуйста ситуацию. Где указано, что вы имеете какое-то отношение к квейку в браузере? Наличие у вас в гитхабе файлов ничего не доказывает — вы могли взять их в открытом доступе.
Во-первых, это титры первого Quake, а не порта. Я старался добавлять как можно меньше отсебятины, чтобы сделать близкий к оригиналу порт. В DarkPlaces, например, LordHavoc упоминается только в комментариях к шейдерам.
Во-вторых, воровать просто нагло и неэтично, и программирование, как и большинству людей на этом сайте, интересно как процесс.
Если вы уж совсем не верите, могу скинуть бекап какой-нибудь стадии разработки.
Воровать нагло и неэтично, согласен с Вами. Но все же воров немало.
К сожалению, у меня не хватит квалификации разобраться в бэкапе. К тому же, бэкапы тоже могут быть в открытом доступе. Файлов в открытом доступе я не видел. Но это, конечно, не доказывает, что они принадлежат Вам.
Впрочем, если общество верит, что это сделали Вы, значит Вы действительно очень толковый человек. Поверю вам на слово и я. Удачи Вам.
...
Не верится, что вам 16 лет. У меня в 16 лет интернета даже не было, а вашей квалификации и подавно.
Круто! Всегда поражался людям, которые ничего не понимают в какой-то технологии берутся за серьезную разработку и доводят ее до конца, причем с великолепным результатом!
Особенно если учесть что этому товарищу всего 16 лет. Я в 16 лет в Кваку ИГРАЛ и на Паскале программки писал.
Прицел — crosshair 1 в консоли.
Мышь работает в Chrome. Чтобы смотреть вверх-вниз, либо зажмите колесо, либо введите +mlook (именно с плюсом) в консоли.
Так как браузер не может быть сервером WebSocket, сделать listen-сервер было невозможно.


Не рассматривали WebRTC data channels для этих целей? Пока что работает только в Chrome Canary/Firefox Nightly, но вещь весьма перспективная для мультиплеера в реальном времени
WebRTC на сколько мне известно всего лишь 640 на 480 способен выжать.
Возможно и прикручу, но при переходе на другую вкладку снижается частота цикла событий (до 5 или 10 выполнений в секунду, как я понял), а сервер Quake по умолчанию работает на 20 кадрах в секунду. Я на 10 пробовал играть (sys_ticrate 0.1), подлагивает, а на 5 — слайдшоу.
Всё нормально, на сервере файлы распакованы для кеширования, вот и нет .pak'ов.
Сервер не мой, мне админ сказал, что надо распаковывать.
Поностальгировал, спасибо)

p.s. иногда подвисает скрипт при загрузке и вываливается диалог на прекращение выполнения скрипта =/
Виновата реализация синхронного XMLHttpRequest в Firefox. В Chrome такого нет, если не ошибаюсь.
Проверял в FireFox последнем, да и зависло всего один раз. Если нажать «ждать выполнения скрипта», то он выполнится, и всё в порядке)

Ох, помню времена были. Долгие дни геймлея и атмосфера кваки…
Когда я играл десмач по сети (на ком портах), за этим наблюдал младший брат и когда я брал Quad Damage (синенький пак, который увеличивал повреждения), младший брат говорил «о, квач-дамач» тем самым выдавая меня противнику по десмачу по голосовой связи.
Противник, услышав комментарий брата (микрофон был весьма чувствительный), прятался по тёмным углам от меня, пока я «светился».
</Минутка ностальгии>

И вопрос — а как вам удалось переписать из Си на ЖС столько кода?
Долгим, иногда нудным переписыванием кода из одной колонки в другую.
Но прямо переписывал я чуть больше половины. Многое (отрисовка, звук, консоль, сеть) написано по-своему.
Спасибо за подробный и познавательный рассказ, за впечатляющий и плодотворный труд.
W.LoadWadFile: couldn't load gfx.wad

GET pak0.pak 403 Forbidden webquake.quaddicted.com 185 B 85.13.140.204:80 65ms GET pop.lmp 403 Forbidden webquake.quaddicted.com 186 B 85.13.140.204:80 48ms GET gfx.wad 403 Forbidden webquake.quaddicted.com 184 B 85.13.140.204:80 65ms
Хабраэффект. Походу хост заблокировал WebQuake. Я не могу на FTP зайти даже.
Автору — выведите ДЕМО ссылкой жирно!

Этот пост должен войти в лучшие месяца
Поставьте на локалхост, это не трудно, просто файлы порта и игры на веб-сервер с поддержкой HTTP/1.1 закиньте. Тут ничего конвертировать, как в GWT Quake 2, не надо.
А никто похостить дезматч или кооп не желает? Я не могу, у меня NAT.
А еще у меня DIR-632 (типа IPv6 Ready) с корявой прошивкой без IPv6…
Кстати, ставить американскую прошивку на русский роутер через emergency recovery не опасно?
Да, действительно. Отключил media.webaudio.enabled и заработало.

// В 20 фоксе у меня немного подлагивало, но там открыта пара десятков страниц, а вот в найтли всё нормально.
// Прошёл три уровня :)
В инструкции по установке написано:
Get Quake resource files. The demo version containing only the first episode is enough.

А где их взять эти «resource files».
На 64-битной Windows демка не устанавливается (установщик для DOS), так что гуглите
"pak0.pak" 17m "index of"
и кидайте в папку id1.

Полная, как и DLC, есть в Steam.
> демка не устанавливается
WinRar, Total Commander и т.п. распаковывают файл resource.1. (это sfx lzh архив)
Его и не должно быть. Quake загружает pak-и от нулевого, пока не дойдет до несуществующего.
Уже 2ой уровень проходите? :)

А вообще у меня в хроме не ругается и работает. Попробую ещё поискать ресурсных файлов.
Ругается в Файрбаге. Это ошибочный код ответа на HTTP-запрос, а не ошибка в коде.
мм у меня просто не загружается почему то. Скорее это опять бага. Почему то у меня в винде 8 часто страницы не догружаются, в любом браузере. В линуксе все ок. Потом в нем попробую.
В настройках «размер экрана» как раз для исправления таких неприятностей.
Я имею в виду, что HUD, нарисованный в Paint, не вписывается в общую тематику.
UFO landed and left these words here
Апплодирую стоя, вы — явный гений. Буду давать ссылку на этот пост всем, кто плохо отзывается о молодом поколении в стиле «при Сталине трава была зеленее»
UFO landed and left these words here
А смысл? К тому же, в вебе Web Audio API уже есть, а биндинг для OpenAL никто добавлять не планирует.
А я лет 5-6 назад по его постам на форуме нашалайф (потом как-то и не видел его, да и сам я оттуда ушел) и не сказал бы что до такого человек дойдет. Действительно молодец. :)
Очень круто! Респект и уважуха! :)

Какой у вас опыт программирования до WebQuake?

Кодили рилтайм 3D?
Начал со скриптов для Garry's Mod. Возможно, вы когда-нибудь видели мои Valkyrie Rockets на Toybox. Потом попробовал на Си сделать унылую игру (с текстурами не больше 256x256, чтобы на Voodoo 2 работала) про разноцветные кубы, к которой даже внутриигровой редактор сделал, но забросил из-за того, что под такую идею (переключение между белым «слоем» и черным «слоем») было невозможно придумать нормальные уровни, и это был OpenGL Immediate Mode. Потом решил сделать WebQuake.
Восхитительно! Для меня в 16 лет был предел — кривой wolfenstein-подобный движок на паскале )
Поностальгировал, даже сразу вспомнил +mlook )
Так как сервер вы убили, хост теперь перенаправляет с webquake.quaddicted.com на старое расположение, но там немного нестандартные config.cfg и progs.dat, поэтому желательно в консоли написать unbindall и exec default.cfg. «Player exited the level» — это делает модифицированный progs.dat. Я ничего не могу с этим поделать.
Серьезно. Я в 16 ковырял ядра всяких nix-like систем… до 3д руки так и не дошли =)
Я просто позавидую тут. Надеюсь, когда нибудь и я так смогу…
Все прекрасно, замечательно и круто, прям как в детстве, НО(!) — у меня у одного в четвертом эпизоде 4й уровень не проходится?
т.е. пройти то его можно, показывается время уровня, скольких убито, сколько секретов… А дальше, нажимаем что-нибудь, чтобы грузить следующий уровень, и все, пустота :(
Там, оказывается, не только двери пересекаются, ещё и мультиплеерная перегородка у выхода, видимо там ещё какая-то мультиплеерная дверь есть. Буду искать.
не знал этого. когда я в кваку играл у меня был 100й пентиум, и никакого намека даже на интернет :)
но в целом, очень понравилась игра, прошел с удовольствием еще раз!)
Исправил. Я вместо >= 2 по ошибке написал === 2 в коде удаления энтитей по spawnflags, из-за этого энтити с флагом not in hard не удалялись на nightmare.

Спасибо за то, что заметили.
аа… черт, да, я даже не догадался попробовать другую сложность.

Абсолютно не за что, Вам спасибо за такой порт!
блин, все равно никак(
или старое сохранение безвозвратно запорото и надо заново проверять?
у меня сейв прям перед выходом, загружаюсь, вхожу в дверь — все тоже самое. (кеш браузера почистил раза 3 уже).

консоль говорит —
Uncaught Error: Host.abortserver Host.js:27
Host.Error Host.js:27
PF.objerror PF.js:22
PR.ExecuteProgram PR.js:810
SV.Physics_Pusher SV.js:1402
SV.Physics SV.js:1722
SV.SpawnServer SV.js:783
Host.Changelevel_f Host.js:542
Cmd.ExecuteString Cmd.js:207
Cmd.Execute Cmd.js:29
Host._Frame Host.js:210
Host.Frame
Старое сохранение не запорото, но E4M4 в этом сохранении будет выглядеть, как в сетевой игре, пока не перейдете на нём на другой уровень. А вы скачали обновленные файлы и Ctrl+F5 нажимали? В консоли build должен быть 41.

А Host.abortserver — не ошибка, а остановка выполнения скрипта до следующего кадра.
на вкладке network, где должны быть имена файлов ПКМ -> Clear browser cache.

Ctrl+F5 не всегда адекватно чистит кеш почему-то. Да и конкретно в той вкладке работать не будет, откроет настройки мультиплеера.

Ни в консоли браузера, ни в консоли игры не нашел build, но надел его при начальной загрузке — (webQuake build 38). Открыл в другом браузере, в котором раньше не открывал, там тоже 38.
38 — это ооооочень старая версия.

Вот здесь на данный момент последняя версия — quaddicted.com/stuff/WebQuake/Client/WebQuake.htm (но конфиг слегка нестандартный). Увы, у меня нет доступа ни к одному из имеющихся серверов, на которых расположен WebQuake, поэтому обновлять версии на сайтах вовремя я не могу, но на Quaddicted админ обновляет довольно часто.

А Ctrl+F5, как и другие горячие клавиши браузера, надо нажимать в строке адреса, так как там нажатия не перехватываются.
да, я там и играл. теперь обновилось, 41я, и на том же сейве все загрузилось.

Про строку браузера не подумал, в теле нажимал))
да, MAP E4M4 не находится на серве просто. MAP E4M5 уже на месте, но все равно не приятно, пришлось перепроходить с 5го уровня 4го эпизода, т.е. с последней руны начинать. А дальше, когда все руны собраны, в полу открывается проход, но он закрыт стеной. Не помню, чтобы такое раньше было.
Стену прошел noclip'ом конечно, но все равно, без читов в данный момент игру не пройти :(
Пройти можно было, но не на nightmare. Как я выше написал, уже можно и на nightmare пройти.
Only those users with full accounts are able to leave comments. Log in, please.