EXTENDED NEWS

02-26-1999
Wrote the square root routine.
02-09-2000
Wrote a neat little algorithm for squaring a fixed-point number. I intend to use this to make a faster distance calculator. Changed the copyright notice to reflect the current year.
02-01-2000
Finished the vertical intersection routine.
01-29-2000
Started the intersection routine. Wrote a quick new tangent routine. Finished the horizontal portion of the intersection routine. The distances to walls are now stored in an array, which will allow for easier blitting of sprites and more general flexibility.
01-27-2000
Created a very sleek and specific multiply routine, which may turn out to be all I need. DOOM 83 is now in its newest cycle of rebirth, complete with the usual bunch of newfound optimizations.
12-18-1999
I apologize for my sporadic updates. I've been without Internet access for a while. I have been working on the next complete overhaul with new optimizations. I am still in need of good multiplication and division routines, as these are a significant portion of the code. Please notify me if you can offer any assistance.
10-19-1999
Fixed the square root routine to work with very large values.
10-13-1999
Changed the distance calculator so it works with square root rather than cosine. It's a lot faster and more accurate and means I might be able to trash the cosine routine and its 1 KB table.
09-11-1999
Successfully implemented texture mapping. It is quite fast thanks to a little self-modifying code. Posted a screenshot in the Screenshots section.
09-06-1999
Started work on the texture mapper. It will be hard to produce correct results while still keeping the code fairly fast.
08-20-1999
Wrote a little program to extract pictures and textures from monochrome bitmaps. If anyone is interested in generating graphics for me, please let me know.
08-12-1999
Made the render routine draw vertical columns in groups of two, to speed rendering. Started adapting textures from the original DOOM WAD. Texture mapping should be coming soon.
08-04-1999
Made the walls appear taller on screen. Previously they had looked stretched horizontally. Fixed the distance calculator for values very close to 90 and 270 degrees.
08-02-1999
Finally got graphical output from the new engine. See the output in the Screenshots section below. This time there is no fisheye effect. Stumbled upon a HUGE optimization, but it will take a few days (at least) to implement. Posted two new screenshots: the new title screen and the latest graphical output.
07-28-1999
Finished the new vertical intersection routine.
07-26-1999
Finished work on the new horizontal intersection routine. It is much more complete than the last one and has good error checking. It hopefully runs a bit faster thanks to the new trig routines.
07-23-1999
Decided to get off my lazy rear and get some work done. Started work on the new rendering engine, namely the part that find a horizontal intersection between a ray and a wall.
07-07-1999
Wrote the divide routine. I don't know why it works.
07-02-1999
Finally wrote the multiply routine. The way it works is still kind of stupid, and I'll still be searching for a better way. A divide should be completed shortly.
06-27-1999
Wrote routines to quickly get new tangent and cosine values. I am still in need of 16-bit signed integer multiply and divide routines. If you can find some, please notify me.
06-12-1999
Sorry about the lack of updates. I've decided to overhaul all the existing code from top to bottom. So far I've completed writing all the tangent and cosine routines. They ought to work better with the way I've set everything up.
05-14-1999
The rendering engine is now functional. It still suffers from "fisheye effect", in which walls near the edge of the screen appear farther away than they should. I posted a screenshot of the output, which can be viewed in the Screenshots section. The program is not yet ready for a public release, but if you want to play with it, let me know.
05-06-1999
Fixed a few errors in the rendering routine. Started a preliminary wall-drawing routine.
04-29-1999
The rendering routine now finds vertical intersections, and calculates the distance. The closer distance is used to determine the height of the wall on the screen.
04-26-1999
Fixed the distance calculator to work with funky values like 0, 90, 180, and 270 degrees.
04-23-1999
Overhauled most of the existing code to be better suited for a major optimization. The program now calculates the distance to horizontal ray intersections.
Other:
Fixed an error with this page being displayed in the Opera web browser.
04-18-1999
Well, I did corrupt a few routines, but I fixed them, including a few hard-to-find bugs. In my opinion, the code is very solid, but we'll see what my tester, Draven4XX, has to say about it.
04-15-1999
Optimized all existing code. It's a little cleaner and should run substantially faster. Now I need to check it to make sure I didn't corrupt anything.
04-13-1999
I took some major steps forward in the project today. I fixed a few errors in the code, strung all the routines together, and finally got some correct numbers. I now know that the code and the theory behind it are sound, and the engine is becoming more solid by the day. I hope to release a demo within the next three weeks.
04-12-1999
DIVIDE_FP now handles negatives, but I think the code could be better. If anyone wants to see (and hopefully improve upon) it, send me some mail. Now, assuming there are no flaws in the existing routines (a big assumption), a playable demo may be in sight.
04-07-1999
Finally solved the divide problem, with the code to prove it. My solution may be a bit inelegant, but it is functional. A few preliminary tests show it to be accurate at least with positive numbers. It won't handle negatives yet, but that should be fixed in the next few days. I'll then be able to continue with RENDER_SCENE, although I'm not willing to set a date for its completion (this project has already had more than its fair share of unexpected obstacles.)
03-31-1999
Fixed MULTIPLY and DIVIDE to work better with my existing code, because they're from another source. I solved the divide problem, if only in theory.
03-27-1999
Sorry about the delay between posts. I haven't gotten very much done in the past few days. I have, however, found some routines for multiplication and division of 16-bit integers. The only problem is that the division routines gives truncated values if using fixed-point numbers. As soon as I can find a (fast, elegant, correct) solution to this, I can proceed.
Other:
Added an Extended News page. This will show all news entries while the News section on the main page will show only the seven most recent.
03-18-1999
Optimized and cleaned up TANGENT a bit. Generated a cosine table. Wrote a routine to extract the cosine.
03-16-1999
Started work on the rendering routine, which is called RENDER_SCENE. Completed the section that tests a ray for horizontal intersection with a wall. This code may be buggy because I am unable to test it right now, but it at least assembles and runs without errors. The only part not completed in the horizontal intersection code is the one that calculates the distance between the player and the wall. I'm still trying to decide the best way to do this. After that, I'll have to write the code for vertical intersection (which will be mostly cut & paste) and then the actual rendering to the screen. When I have this done, I'll put in some simple controls and release a demo. (Probably non-clipped and non-texture-mapped.)
By the way, the program size is now about 2.4K, most of which is the tangent table.
03-14-1999
Fixed what was hopefully the last mistake in TANGENT. It should be accurate enough for what I want to do, but it will definitely need some tweaking. Now I've got to get to work on the main rendering loop. That should take a few days, at least.
03-13-1999
Fixed an error with this page being displayed in Netscape Navigator.
03-10-1999
Fixed all errors in and tested the tangent routine. Gives answers to a very high precision, even with fixed-point numbers. TANGENT is now a fully functional routine, although it may need a little optimization.
03-08-1999
Generated a tangent lookup table. Wrote a routine to extract the tangent.
Other:
Site went up. (http://members.tripod.com/mikendave/doom/) Authored four original sections: News, About, Screenshots, and Contact. Posted first screenshot.

[ back to main page ]