crypt of decay - spelunker diaries [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

spelunker diaries [Jul. 17th, 2018|01:37 am]
Previous Entry Add to Memories Tell A Friend Next Entry
поскольку вервие обычное сделано добавлением динамических объектов, а не тайлов (глупая идея, я знаю; но вервие высотой 8 пукселей, а тайл 16, так что пришлось), то перепилил уже все колдеты на грид заместо тупорылого цикла по всему, что есть живого. потому что с циклом несколько кинутых верёвок роняли нахер весь фпс в никуда (колижоны в коде проверяются обильно и часто). ну, и монстров с предметами тоже в грид поселил.

заодно соптимайзил рендер: раз уж есть грид, то логично его использовать, чтобы выбрать для рендера только видимые объекты. а поскольку в таком виде рендеру сильно полегчало, то сделал там же сортировку по полю depth. раньше оно учитывалось только при создании объекта, а теперь его можно динамически менять (да, оригинальная игра это использует). и, раз уж есть depth, то выкинул хак с рендером предмета в руках: он теперь обычный предмет в гриде, фигле.

в общем, с примерно двумя тысячами объектов на карте оно всё ещё играбельно: фпс чуть-чуть проседает (уже не плавнота), но играбельно. это, чтобы вы представляли, — примерно 40 повторов расстановки предметов и монстров. то есть, уровень населён x40, на каждой клетке по куче золота и врагов. этого, естественно, ни при каком — даже очень bizarre — режиме быть не может.

учтите, что вышеописаное — это со всеми активными объектами. оригигнал же активно использовал frozen area (то бишь, всё, что за экраном — тупо фризится), а если фриз убрать, то торозил даже с обычным уровнем. если добавить в мою думалку frozen area… вот, добавил ради интереса (активная область даже чуть больше, чем была в оригинале). всё ешё играбельно с приблизительно шестью тысячами объектов (хотя и видно, как фпс проседает).

в общем, запас по скорости такой, что можно вообще не париться.
Linkmeow!

Comments:
From:(Anonymous)
Date:July 17th, 2018 - 08:21 pm
(Link)
Сколько времени у тебя могло бы уйти на написание 3д движка с нуля?
[User Picture]
From:[info]ketmar
Date:July 17th, 2018 - 08:23 pm
(Link)
это слишком неопределённый вопрос. квач2 спокойно пилится за несколько недель. анрыл4 я даже не возьмусь.
From:(Anonymous)
Date:July 17th, 2018 - 11:17 pm
(Link)
джон кармак плачет над двумя неделями дедлайна =)
[User Picture]
From:[info]ketmar
Date:July 17th, 2018 - 11:28 pm
(Link)
специально для тебя поясняю: кармак делал с нуля, и без кучи доступной информации. ты считаешь, что с тех пор ничего не изменилось? в твоём мире ещё и софт, небось, на перфокартах набивают.
From:(Anonymous)
Date:July 31st, 2018 - 06:00 pm
(Link)
ну что ты фигню пишешь, тебя же молодые читать могут.

кармак делал с нуля свою первую цацку. уже командеров кинов он делал не с нуля и с командой. в вольфе дофига кода и подходов с командера кина, код дума я особо не ковырял, но думаю, что и там остатков от вольфа есть.

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

ты всерьез хочешь сказать, что к кудваке кармак подошел с нуля? или ты просто неправильно выразился или я неправильно понял?
[User Picture]
From:[info]ketmar
Date:July 31st, 2018 - 09:10 pm
(Link)
при чём тут это всё? код ничто, алгоритмы всё. основное время у кармака ушло не на то, чтобы код настучать, а на то, чтобы перепробовать кучу разных идей и алгоритмов. это я и имел в виду под «с нуля». а мы уже знаем это всё. так что у него месяцы уходили только на то, чтобы сделать 9e+3 прототипов разных алгоритмов, а я уже знаю, что надо пилить beveled bsp и не ебать себе мозг. и что для сетки можно просто спамить дельтами и ещё меньше ебать себе мозг.

а экспериментов и провереных-отброшеных идей в каждой из квак весьма немало.
[User Picture]
From:[info]ketmar
Date:July 17th, 2018 - 11:30 pm
(Link)
p.s.: если вдруг не дошло: соверменное «с нуля», и тогдашнее «с нуля» — это два очень разных нуля.