spelunker diaries |
[Jul. 17th, 2018|01:37 am] |
поскольку вервие обычное сделано добавлением динамических объектов, а не тайлов (глупая идея, я знаю; но вервие высотой 8 пукселей, а тайл 16, так что пришлось), то перепилил уже все колдеты на грид заместо тупорылого цикла по всему, что есть живого. потому что с циклом несколько кинутых верёвок роняли нахер весь фпс в никуда (колижоны в коде проверяются обильно и часто). ну, и монстров с предметами тоже в грид поселил.
заодно соптимайзил рендер: раз уж есть грид, то логично его использовать, чтобы выбрать для рендера только видимые объекты. а поскольку в таком виде рендеру сильно полегчало, то сделал там же сортировку по полю depth. раньше оно учитывалось только при создании объекта, а теперь его можно динамически менять (да, оригинальная игра это использует). и, раз уж есть depth, то выкинул хак с рендером предмета в руках: он теперь обычный предмет в гриде, фигле.
в общем, с примерно двумя тысячами объектов на карте оно всё ещё играбельно: фпс чуть-чуть проседает (уже не плавнота), но играбельно. это, чтобы вы представляли, — примерно 40 повторов расстановки предметов и монстров. то есть, уровень населён x40, на каждой клетке по куче золота и врагов. этого, естественно, ни при каком — даже очень bizarre — режиме быть не может.
учтите, что вышеописаное — это со всеми активными объектами. оригигнал же активно использовал frozen area (то бишь, всё, что за экраном — тупо фризится), а если фриз убрать, то торозил даже с обычным уровнем. если добавить в мою думалку frozen area… вот, добавил ради интереса (активная область даже чуть больше, чем была в оригинале). всё ешё играбельно с приблизительно шестью тысячами объектов (хотя и видно, как фпс проседает).
в общем, запас по скорости такой, что можно вообще не париться. |
|
|
Comments: |
From: | (Anonymous) |
Date: | July 17th, 2018 - 08:21 pm |
---|
| | | (Link) |
|
Сколько времени у тебя могло бы уйти на написание 3д движка с нуля?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | July 17th, 2018 - 08:23 pm |
---|
| | | (Link) |
|
это слишком неопределённый вопрос. квач2 спокойно пилится за несколько недель. анрыл4 я даже не возьмусь.
From: | (Anonymous) |
Date: | July 17th, 2018 - 11:17 pm |
---|
| | | (Link) |
|
джон кармак плачет над двумя неделями дедлайна =)
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | July 17th, 2018 - 11:28 pm |
---|
| | | (Link) |
|
специально для тебя поясняю: кармак делал с нуля, и без кучи доступной информации. ты считаешь, что с тех пор ничего не изменилось? в твоём мире ещё и софт, небось, на перфокартах набивают.
From: | (Anonymous) |
Date: | July 31st, 2018 - 06:00 pm |
---|
| | | (Link) |
|
ну что ты фигню пишешь, тебя же молодые читать могут.
кармак делал с нуля свою первую цацку. уже командеров кинов он делал не с нуля и с командой. в вольфе дофига кода и подходов с командера кина, код дума я особо не ковырял, но думаю, что и там остатков от вольфа есть.
после дума кармак плавно въехал в квейк и взял с собой абраша до кучи, после софтового движка сделал gl, после этого квейкворлд с нетгеймом вылизывал.
ты всерьез хочешь сказать, что к кудваке кармак подошел с нуля? или ты просто неправильно выразился или я неправильно понял?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | July 31st, 2018 - 09:10 pm |
---|
| | | (Link) |
|
при чём тут это всё? код ничто, алгоритмы всё. основное время у кармака ушло не на то, чтобы код настучать, а на то, чтобы перепробовать кучу разных идей и алгоритмов. это я и имел в виду под «с нуля». а мы уже знаем это всё. так что у него месяцы уходили только на то, чтобы сделать 9e+3 прототипов разных алгоритмов, а я уже знаю, что надо пилить beveled bsp и не ебать себе мозг. и что для сетки можно просто спамить дельтами и ещё меньше ебать себе мозг.
а экспериментов и провереных-отброшеных идей в каждой из квак весьма немало.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | July 17th, 2018 - 11:30 pm |
---|
| | | (Link) |
|
p.s.: если вдруг не дошло: соверменное «с нуля», и тогдашнее «с нуля» — это два очень разных нуля. | |