bonkmaykr

@bonkmaykr@canithesis.org

20 Male
CEO Canithesis Interactive, sysadmin Worlio LLC
wipEout and THE FINALS fan
Linux enthusiast, Java / C# / C++ Dev
Old computer freak, FSF donor
Missouri, United States

I made the Firestar Mod Manager for Playstation Vita. Currently working on a danmaku shooter game called "Time Falcon". My posts can range anywhere from deep nerd thoughts to brainless shitposting.

Give me liberty or give me death
XMPP/Jabberbonkmaykr@worlio.com
Embark IDmadaraosenpai#5926

43 following 25 followers

0 ★ 0 ↺

bonkmaykr »
@bonkmaykr@canithesis.org

A working 68040/060 with an FPU for the Amiga 1200 is nearly half a hundred dollars if you're lucky. Amiga hardware is expensive in general these days so big deal I guess but it seems a bit ridiculous considering similar games already on the hardware had no such requirement (because they weren't PC backports, of course).

On the other hand, the visible playfield in TF is no greater than 360x640, the signed 16-bit integer limit is 32k. Accuracy on the PC should not noticeably suffer, we have a resolution of 0.00153% and can increase it more if we tighten the world boundaries closer to the center.

So I'm considering converting world simulation to use 16.16 fixed point math. But with the option to compile as floating point and with different precision levels, for future games if the engine is reused. Done using a typedef within a header file that swaps the precision using the compiler definitions.

The problem is fixed point performance. All drop-in fixed-point replacements for floating-point numbers are slow, not by a significant margin on today's hardware, but absolutely significant on any CPU old enough to not have an FPU. Thus kind of defeating the point. It wouldn't be good enough to run on a 68020 or 030 and would hurt performance on the 68040+, unless those builds are compiled with FPU support which creates incompatible demo files. I don't know, I guess I'll have to experiment.

I have my eyes on https://github.com/MikeLankamp/fpm/ but will need some time to make a final decision.

...
0 ★ 0 ↺

bonkmaykr »
@bonkmaykr@canithesis.org

https://github.com/gbmhunter/MFixedPoint looks like another potential option, but still has that performance penalty. I think that's an inevitability at this point. But if the game is optimized well enough then I guess the 5x to 10x performance penalty is worth it, it's not like we're in 3D. Potentially we'll reach playability on 020 / 386 level hardware and still have decent ish performance going up to the 060 / Pentium 1. I'll put together a stress testing environment to determine if this is the case.

If I do end up having to make both an FPU and fixed-point version of the engine, as a worst case scenario, then the demo record will need to contain some flags about the settings the engine was built with when recording the game session.

History