crypt of decay - May 16th, 2019 [entries|archive|friends|userinfo]
ketmar

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

May 16th, 2019

being a smartass [May. 16th, 2019|03:30 pm]
[Tags|]

потратил день на то, чтобы вспомнить, что микрооптимизации — зло. в третьекваче зачем-то сделали микрооптимизацию для дотпродуктов на axial planes при обходе BSP. ну, оно не особо надо, но раз есть — я и себе упёр. в итоге день пытался понять, почему трэйсер пропускает некоторые стены. ну, немного перестарался, добавив туда от себя потому что.

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

по дороге запилил проверку на «самый высокий пол» тоже через BSP. в оригинале для этого используется блокмап, но у меня в тестовом коде блокмапа тупо нет, а бсп есть. и, в принципе, есть мнение, что с бсп как минимум не хуже. а то и лучше.

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

кстати, с новым трэйсером будет иметь смысл выделять полиобъекты в отдельные модельки со своим BSP — как сделано в кваче для всех нестатичных частей уровня. это и удобней, и более гибко в итоге. правда, для вращающихся, возможно, придётся делать какое-то шаманство типа динамических плоскостей-крышек.

трэйсер, по ходу, очень похож на настоящий уже: научился в высоты, умеет запрыгивать на ступеньки, и не пролетать насквозь, если слишком высоко. правда, ему всё равно надо будет два режима. потому что в думе движение, по сути, джвадэ: сначала на плоскости, и только потом вверх-вниз. это имеет одно досадное последствие: умение монстров забираться на ступеньки зависит от их скорости. ну, там очень своеобразная логика, и работает она только при таком разделении. а если трэйсер не останавливается у ступенек, а запрыгивает и трэйсит дальше, то логика меняется. и монстры могут выйти оттуда, откуда они в оригинале выйти не могут. в принципе, мелочь, может я и просто на это забью.

как полагается, объём пиздеца в коде дума я недооценил — как и объём усилий, нужных для замены этого пиздеца чуть меньшим пиздецом. но пока надежда есть, и процесс движется.
Link3 meows|meow!

navigation
[ viewing | May 16th, 2019 ]
[ go | Previous Day|Next Day ]