Войти
ПроектыФорумОцените

OpenLara - движок классического Tomb Raider (alpha 3) (34 стр)

Страницы: 129 30 31 32 33 34
#495
20:58, 14 янв. 2022

Panzerschrek[CN]
> Насколько от этого пострадала PC версия?
Оригинальная игра использует fixed-point арифметику, но для рендера, насколько я понимаю, floating-point. Формат 18:14. Для текстур и шейдинга использую 8-битную дробную часть, что визуально можно заметить в виде дрожания текстур и "зубчатого" затенения. Но на 2.9" экране это не сильно бросается в глаза.

> Да это хуже, чем в Doom (320x200)
Doom для GBA тоже выходил, но работал в разрешении 240х128 также с текстурированием двух пикселей за раз. Можешь сравнить.

> Зачем это? Компилятор не умеет в оптимизацию?
Компилятор не видит полной картины и городит весьма локальные оптимизации. Он плохо видит load/store multiple возможности, когда за одну инструкцию можно читать или писать сразу несколько регистров. А это очень важно, в случае CPU без кеша. Не брезгует работой со стеком, когда можно использовать простую арифметику и т.д. В целом же, переписывание узких мест на ассемблер даёт понимание того, как нужно правильно компоновать код и структуры, чтобы и компилятору дать возможность оптимизировать.

Vlad2001_MFS
> А на symbian какой-нибудь планов нет?
Есть, пару раз садился за Symbian порт, но отвлекался. Когда-нибудь сяду плотно :)

skalogryz
> есть какой-то общий код использующийся для всех платформ?
Ещё есть roadmap проекта, там описано зачем всё это переписывание затевалось. Код который сейчас использует GBA вскоре станет основным, он уже используется Ti-Nspire, DOS и 3DO портах.

> казалось бы "простые вещи" которые от платформы не должны зависеть
я тоже так думал, но там код испещрён floating-point арифметикой и был написан в борьбе со сном, без понимания общей картины. Теперь это понимание сформировалось и всё должно быть написано гораздо проще и понятнее для меня самого )


Страницы: 129 30 31 32 33 34
ПроектыФорумОцените