Как стать автором
Обновить

Комментарии 101

месье знает толк в извращениях.
Зато в каких!
Ну все-же не мультиплеер на bat'никах писать :)
мультиплеер в ближайших планах.
скоро эти извращения будут обыденными
BFG 9000, предусмотрено?
Алсо, добавьте зеленых титизенов…
BFG — легко. зеленые титизены — в ближайших планах.
прикольно, значительно лучше, чем в прошлый раз. При ходьбе обнаружил, что можно защелкать анимацию, если быстро нажимать вперед. Ну и, конечно, хотелось бы видеть просто плавное движение.
При ходьбе обнаружил, что можно защелкать анимацию, если быстро нажимать вперед.
Это специально предусмотренное действие. Причин несколько:
1. Позволяет преодолевать длинные коридоры, не надо ждать окончания анимации
2. Если анимация вдруг заглючит — её можно сбросить
Unit.prototype.rcFrameRender = function (fn) {
	if (this.rcInterval) {
		clearInterval(this.rcInterval);
	}
	if (fn) {
		this.rcInterval = setInterval(fn, 1000/this.maze.cfg.fps);
	}
	return this;
}
еще одно предложение — может стоить ввести минимальную толщину стен, а то не очень приятно выглядят стены толщиной в один пиксель :)
Из топика):
Стены построенные не по нанотехнологиям, а из нормального толстого кирпича будут в одной из следующих версий)
первая мысль ScreenSaver Win 95
Первая мысль — Siemens A35
не успел)
Nokia 3310 тоже неплохо было бы.=)
А на Siemens S25 оно было даже цветным. Правда цвета было всего три :)
Как он безбожно лагал на моей четверке… Хнык, ностальгия :'(
Wolfenstein 3D на 3 года раньше вышел Windows 95 и работал под DOS. :)
я играл в него давольно много, но больше всёравно напоминает этот скрин сейвер
Но в Вульфе стены — толстые кубические, а вот в винде — как раз тонкие. Не хватает только ящерок и додекаэдров.
ага. добавил в топик заметку про него. на самом деле большинство примеров Канвас — именно попытка повторить Wolf3d
Опера 10.5 в режиме канвы догоняет хрома, а в режиме HTML оставляет всех позади.
У меня что-то 10.5 эксепшены в логи кидает…
У меня сначала не запускался, я открыл Dragonfly чтобы посмотреть, на чем он вываливается, и, о чудо, с драгонфлаем заработало :)
действительно только с драгонфлаем открыает почему-то
ох уж эта Опера)) у меня нету, не могу отдебажить. видимо, придётся ставить?..
Не стоит — это бета. В ней много чего не работает. Только нервы потратите. Вот выйдет финалка — тады и посмотрим что к чему (:
if (!confirm('Вы уверены, что хотите активировать «Читер мод»?')) return false;
if(window.prompt('Нужен пароль') != 1) return false;

:)
это старый код… видимо, у вас в кэше он остался с прошло раза? в этой версии все не так то просто)
Жаль, что мы в разных странах. Я бы предложил вам работу.
Так он и написал — «ищу удалённую» работу.
Засмотрелся на надписи, заблудился %)
По ту сторону монитора :)
в планах))
Я пятнадцать лет назад такую игру делал на паскале, прочитав книжку А. ЛаМота об играх. Подросло новое поколение и делает то же самое новыми средствами. Впрочем, это и есть технический прогресс — спиралевидное аккумулирование маразма )))
Вы действительно не замечаете различие между тем, что вы делали на паскале, и тем, что сделал TheShock?
А что? Есть какое-то офигенное различие? Может с годами математика поменялась, а мужики-то не знают?
Раздница — ЛаМот хорошо описал оптимизацию, которую могли использовать создатели игр.

Можно ускорить этот лабиринт в 2 раза по производительности, если немного разобраться с технологиями, которые использует браузер для рендеринга. :)
можно и раз в 10, наверное. Только лучше пусть такой оптимизацией браузеры занимаются — оптимизируешь полгода под Opera 10.50, а выходит 10.70, которая шлет твою оптимизацию куда подальше и работает еще медленнее :)
Звучит как: я тут код написал, но он работает медленно на 4х ядерном Core i7, на AMD чуть быстрее, но… оптимизировать я не буду — пусть этим разработчики процессоров занимаются…

неа. Разработчики компиляторов (они этим и занимаются, кстати). Вы же не асме пишете, я надеюсь? :)
Приведу пример:
for( i=0; i<func(n); i++)…
 …
k = func(n);
for( i=0; i<k; i++)…
от компилятора скорость никак не зависит…

Оптимизация в первую очередь идёт ПОД компилятор/процессор/браузер… А разработчики браузеров вам всего-лишь предоставляют возможности по оптимизации, которыми вы можете пользоваться, если знаете, умеете и желаете.
Мы с Вами говорим о разных вещах. Но на уровне браузера, кстати, приведенный код тоже можно оптимизировать. И у меня подозрение, что Chrome/Opera уже это делают.

Одно дело, когда речь идет об оптимизации стандартных конструкций — тут больше зависит от самого разработчика. Другое дело — когда о оптимизации под платформу (IE, Firefox, Opera, Safari). Здесь же от разработчика ничего не должно зависеть — платформа должна максимально под него подстраиваться. Это не означает, что нужно писать как попало — это означает, что не нужно предпринимать дополнитеьных приседаний там, где они излишни.
Если разработчик идиот — то и код будет тормозить, как-бы платформа (браузер) не подстраивалась…

Если вы говорите о гонках скорости интерпретатора JS, то я говорю о том, что вне зависимости от скорости выполнения — есть рекомендации, с помощью которых можно ускорить процесс выполнения программы.

Пример — в PHP ++$i работает быстрее, чем $i++ ;)
p.s.s. писал на 3D движок асме лет 12 назад ;)
Автору респект!
По возможности — добавьте стрейф. Для «лабиринтов» очень полезен.
А что такое «Шпилить!»? :)
Ахтунг! Дас киндер дер шуле нихт шпаренгеен!
1. Шпи́лить
от немецкого «spielen» – играть.
Например: Пойдем пошпилим в бильярд!
Разговорная лексика

2. Шпилить
Заниматься сексом.
Например: Я её знаю, я прошлым летом её в гараже шпилил.
Молодежный сленг

3. Шпи́лить
Нюхать кокаин низкого качества.
Жаргон наркоманов
Браво, киндер. :)
про старенький проц улыбнуло
НЛО прилетело и опубликовало эту надпись здесь
IDCLIP
Странный момент. Интересно, что там не так?
впервые проявилось еще в Stage1. Опера не хочет динамически менять стиль границ у таблицы. Таким образом в редакторе карт хотя фактически границы рисуются, но опера их не отображает. Приходится забирать эту таблицу и ставить на ее место её же. Тогда она перерисует её всю. Закомментируйте эту строку и попробуйте поредактировать карту в опере)
Напишите баг-репорт норвежцам — это что-то ненормальное…
Добейтесь абсолютной плавности и производительности во всех современных стандартных браузерах. Если это невозможно, тогда бросайте заниматься идиотизмом. А если уж так хочется писать трехмерные игры, изучайте DirectX.
Если человек сам написал рендерер, то понять D3D для него вряд ли составит какую-то сложность. Обратное верно далеко не всегда.
Возможно и так. Но пока мне кажется, что автор просто ставит перед собой неправильные цели.

В мое время многие даже еще в школе баловались и писали на паскале трехмерные игры. Считаете ли вы рисование 3d родными средствами паскаля (через канву и тому подобное, без сторонних библиотек D3D и OpenGL) осмысленным действом? Нет, это просто детское стремление написать игру с помощью тех инструментов, которыми научились пользоваться. Конечно, это поднимает опыт начинающему программисту. Опытному программисту заниматься этим глупо.
Автору респект и уважуха
спасибо)
Используется трассировка или растеризация?
интересно, чем они отличаются в контексте Canvas?
Родных средств для построения 3D сцен в Canvas, насколько мне известно, нет, — только работа с обычными битмапами. Поэтому или использовать отдельные либы, или писать визуализацию руками. Тут и встаёт вопрос, какой метод использовать, первый или второй.
Судя по таким комментам в коде:
// ./lib/rayCaster/unit.js

возможно, трассировка. Автор молчит по этому поводу…
видимо, таки трассировка)
Мда, просто супер. Сколько примерно дней потратили на написание этого чуда?

Бажки:
1. Нарисовал карту tr.im/PrG7 нажал на С пишет что выхода в ней нет, хотя он есть — ради интереса сам прошел.
2. После нажатия на С управление отключается и стрелочки не работают. Приходится обновлять страницу. Chrome.
принято. разберусь)
1. пофиксено)
А на вопрос сколько времени заняло так и не ответили! :)
ой… прошу прощения)))
впринципе, можно посмотреть историю коммитов, согласно которой я приступил к написанию Stage 2 поверх Stage 1 8 февраля и с перерывами исал до сегодня. То есть где-то 10 дней)

Первый Stage я написал за 1-2 дня
у меня подтупливает, может надо еще точить или это мой браузер Фокс 3.018?
Так со всеми новыми играми, тормозят жутко, нужен абгрейд.
я понимаю все нюансы нижесказанного, но
когда я сидел на версии фокса 2.0x, то он был для самым крутым браузером, в основном в плане быстродействия. А сейчас ужас — это не лиса, а черепаха.
Open Source — это хорошо, конечно. Но OS без единого комментария — это как-то странно. Или Вы считаете, что названия переменных и производимые действия с «магическими константами» все очевидны? :)
о да, есть такая проблема. у меня в планах добавить Proger-Guide, где непонятные функции будут вести на описание с картинками, или откомментированы)
Open Source — это когда любой может написать документацию и закоммитить в проект :)
Сначала побегал — потупил, затем вспомнил старый добрый способ «правой стороны» т.е. когда идешь всегда по одному краю стены. итог:

Да, как бы снова не началось :) Кстати вот тут можно посмотреть как люди настойчиво придумывали изващенные лабиринты которых почти и не встретишь…
Вот тут
Комментарий #comment_2354084 (Забыл в ссылке указать)
tr.im/Ptt6 но обычно правило руки — хорошо, да)
прошу прощения, tr.im/PtvB
пс. пофиксил алгоритм автопрохождения, теперь, вроде, правильно проверяет) жмите «с»


Как то простенько)) Когда один раз прошелся по кругу — оценил что центр не большой и можно наугад походить :)
ну да, но правило руки уже не действует) мне больше нравится алгоритм камушков. (смотрите TombRaider.js)
хотя он и не такой очевидный
Небольшое замечание. У вас проецирование делается «влоб», от этого выходит эффект «рыбий глаз» — горизонтальные линии по стенам выходят искривленными, натянутыми на сферу. Вам бы по тангенсу считать, тогда будет прямо. Это старый прикол, на которые все софт-рендерерописатели наталкиваются.
на самом деле это не совсем так. покажу на примере

первый уровень. идем до первого поворота направо, потом до тупика прямо, поворачиваем направо, делаем один шаг и разворачиваемся на 180 градусов.

Рыбий глаз не убран:


Рыбий глаз убран:

поиск в моём коде строки «removeFish: data.angle»

Проблема, видимо, в том, что я использую очень большой угол — 100 градусов, в то время, как та же игра от Оперы использует 60 градусов. Я осознано пошёл на лёгкую деформацию изображения, чтобы отчётливо было видно есть ли поворот справа и слева.
Maze = function () {
    [...]
    this.cfg = {
        angle : 100,
кстати, этот эффект можно использовать в игре. взял какой-то итем — хопа и зрение как рыбий глаз))
Зато видишь на 200 градусов ;)
да, 200 градусов — тоже прикольный эффект, но рыбий глаз — он чуть из другой оперы (как на картинке выше). хотя интересно посмотреть будет на 360 градусов…
нет, автор реализовал угол обзора только до 180 градусов, но даже так выглядит ужасно))
кстати, тут можно увидеть и более грубый эффект размазывания краёв при большом углу)
добавьте эффект рыбиго глаза…
Круто конечно но вот webgl и o3d для такого. Благо фокс и вебкит уже позволяют.
думаю, вполне можно добавить webgl третьим движком для рендеринга)
вот как надо работу искать =)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории