Polygonamy 3D Virtual World History

From: judd@merle.acns.nwu.edu (Stephen Judd)
Subject: Polygonamy (Flaws and all)
Date: 6 Feb 1996 19:04:43 GMT

Well... for what it's worth, here is Polygonamy. I am out of time and also out of memory (there are 512 bytes free between $CE00 and $CFFF), so the program is not as good as it could be. Ah well, it's purpose was to test some ideas I had, and explore their limitations.

There are three objects in the world. I wanted to do five but ran out of memory (I could get some large chunks back with a little code rewrite). One of the objects is static, the others are in motion.

There are still some rough edges, which I have tried to fudge around. Unfortunately they only became apparent at the very end.

To measure how many frames per second the program is getting, move up to the first object. Every 360 degrees is 128 frames, so if you time a full revolution (or two or three) and divide into 128 (times the number of revolutions you have just timed), you will get a good frames per second estimate.

Well, here is a little blurb I wrote while in higher spirits:

Polygonamy

A study in three dimensions.

by Stephen L. Judd --> sjudd@nwu.edu

My goal was to create a 3D virtual world for the C64, e.g. a space populated with various three-dimensional objects, which I could wander around in. I wanted it to be full-screen 320x200 hires bitmapped. Furthermore, I wanted the objects to be solid, and since there are only two colors I wanted to be able to put patterns on the faces. Finally, naturally, I wanted the program to be fast. This was the framework in which I placed myself.

Just a brief history of this project: I have wanted to do a 3D world for a very long time, and have been thinking about it for some time in the back of my head; my imagination was probably first fired the first time I played Elite. I wrote down the necessary equations one afternoon last summer, for a high school student I was teaching, and the equations are very simple. I took a break to get some work of measureable value accomplished, but in October I began work on the graphics algorithm, which was very tough! I worked steadily on this for two months, and in December I finally began to code the graphics. In mid January, I got them to work. Adding the rest took a few weekends more. I have about 128 pages of notes, diagrams, analytical calculations, and BASIC test programs in my C64 notebook; this is my most ambitious project to date and I hope you enjoy the results.

One caveat before we begin: I am primarily interested in the challenge of designing the algorithms, which means I like to come up with my own solutions. Thus, you may find more efficient methods in a graphics book or perhaps in someone else's code; I have examined neither, so I have no idea what the relative merit of my algorithms may be. These are simply my solutions to challenges placed before me. And if you know of a better way to do things, please feel free to email me!

evetS-

--

You can click here to go to CBM Projects and search page: http://members.tripod.com/~ilkerf/cbm.html