FixedToSingle(); InvSqrt(); Result:= SingleToFixed();
!
в виде строкового представления чисел?
Не пойдёть.
Нужно что-то *быстрое*. Настолько, чтобы любые скриптовые языки скрежетали зубами от бессильной злости (я какое-то время назад делал кое-какие тесты по неоптимальной обработке данных проходом по массиву объектов, и был просто убит когда жаваскрипт обошёл паскаль в скорости
).
Короче, я хочу не просто сделать лучше, чем майнкрафт. Я хочу растоптать его, и, как это по русски, teabag его трупик в лучших культурных традициях онлайн-гейминга.
Задним числом, идея про собственные флоаты вручную была просто ужасная. Это столько условных переходов на одну арифметическую операцию, что просто тошнит
Всем спасибо за поддержку
Остановился на представлении всего двумя типами данных: 32-битными целыми и 16.16 фиксированными для векторов, коэффициентов и прочая, вкупе с небольшим набором специализированных функций (типа длины вектора). Нужный уровень детализации - за счёт релятивистской системы иерархических систем координат, где планета в целом - один миллиметр (где в метре 1024 милиметра), чанк - 1/65536 милиметра. Ограничивает радиус планеты до тысячи километров где-то, но я по любому ненавижу реализм в играх. Такой огромный мир нафиг не нужен, достаточно радиуса в 50-100 км.
Это стократ проще и быстрее, чем эмулировать плавающую запятую.