About bugle4D, in a Q&A format. |
bugle4d: what is it ?
bugle4d is the attempt to create in C++, a object-oriented engine to work with 4-dimensional objects.
4D, you say ? I thought D no. 4 was time ?
Well, yes and no. This is a attempt to
represent 4 spatial dimensions. Obvouisly it does not exist in
the real world.
It is a mathamatical abstraction.
Its pretty pointless then.
In the sense of conventionial games, yes.
But in a more non-conventional sense, let us remember Star
Wars and the Millenium Falcon.
They were always trying to get into hyperspace. Hyperspace is
mathematically defined as more than 3 spacetial dimensions: n-space,
where n > 3, in other words. So theoretically, you could pop
into 4-space, travel somewhere, and the pop back out, just like
in Star Wars. Naturally you would have to learn some kind of
astrogation or have a astrogation module programmed in, but it
still represents a definite possibility in a
game.
Thats very interesting, but we arn`t talking the real world here. This is a 2D screen. How will you get 4-space into a 2D screen ?
With Yankee inginooity. <BG>
Seriously speaking, it is a very real handicap. The math of
course is known; it is essestially the same as
3D-2D perspectiv projection; but putting a 4D-3D-2D operation
through is not going to look very good in the final product.
However, that does not really matter to me- its doing it
thats the cool part.
Hasn`t it already been done before ?
Actually yes, it has. Mostly in Java, to be
honest; when I was looking for 3d source code, I could not find
any "real" programming language code
for multi-dimensional work. The only partially comparable work
that I have come across is Hollasch`s work, which
is a full-software wireframe and raytraced 4D engine. In
contrast, mine is designed to sit on top of OpenGL for the 3D-2D
component. Mine is much simpler.
Whats with "bugle" ?
I needed a name for a 3D(unfinished) engine
that I was working on, so I looked around my room and noticed my
bugle.
Naturally I gave it to my 4D engine.
If there`s any questions, email me.