Вот что мне ответил AloneCoder
Привет, вот что я написал Sayman'у:
---
В цитадели, как мне кажется, рассчитываются координаты стен на экране, а между ними происходит натягивание текстуры линейно (там специфическое искажение). Мой метод из Wolf 2004 лучше не рассматривать вообще - он показал себя очень тормозным. Вот новый - другое дело, его можно использовать прямо готовыми процедурами. Там и точность достаточная, и особо быстрее и не сделаешь. На SjAsm его в читабельном виде написать невозможно из-за отсутствия параметрических меток - пришлось бы писать 8 раз практически один и тот же кусок кода (сканирование в разных направлениях) или пользоваться псевдометками типа 5f (и то не факт, что их хватит).
Исходник в аласме ещё одну проблему решает - там перед запуском собственно игры конвертируются текстуры из графического формата в координаты. Этот конвертор написан на ассемблере. К сожалению, ни одна известная мне связка кросс-тулзов не позволяет выполнить ассемблерную программу и использовать её результат в линковке. А аласм позволяет.
Wolf 2004 переписывать на современный движок очень не хочется, хочется сделать что-то новое на новом уровне, но нет художника и композитора соответствующего уровня (нужно не "текстуры", а игровой мир, и не "музоны", а саундтрек), хотя есть люди, которые готовы заплатить за игру реальные деньги.
А для оригинального Спектрума, для которого я писал новый движок, вообще отдельная проблема - в 48К помещается очень мало графики, так что надо придумать такой геймплей, чтобы можно было обойтись малым количеством. Но движок поддерживает и АТМ Турбо.
Никакой математический сопроцессор для такой игры не нужен - он не ускорит игру даже на 5%.




Ответить с цитированием