Sometimes it is nice to see progress being made in the smallest chunks. One of the most exciting parts of working on a 3D game is seeing it improve little by little, even when what you as the programmer is minor to other people. Those small details add up and create a fantastic whole.
Tonight I’ve been spending the evening translating old DOS assembly routines back into C and trying to get the math right for drawing floors and walls. After translating some 70 routines, I have the final first results below:
It is probably no big surprise I didn’t get it right the first time, but this isn’t bad for the coming out the gate. Seems we are missing objects, the textures have a mind of their own as I walk around, and things in the distance seem to pop around. But the sky is right, the textures are in the right place, translucent textures (not shown) are working, and the light shading is working very well. Not bad, not bad.
Frame rate is a little low (303 fps compared to the theoretical limit of over 1400), but I am running debug code with a ton of output appearing on the other screen (also not shown). Oh, and the Windows tools are telling me I’m corrupting memory somewhere … nice.
Moving forward ….
Got if fixed now. And the objects are back in. I’m walking around the levels now. However, the game gets funky on the controls when the frame rate is too high, so I backed it down (something DOSBox doesn’t have a problem with).
Upon closer look of the flowing water, it is dependent on your frame rate — the higher the frame rate, the crazier the water flow pushes you. No wonder people are having problems with it.