On this page I want to introduce you to my own 3D-Engine.
Originally it is designed not only to show and walk in 3D space, but some
day it should become a complete 3D 3rd person roleplaying game. Until
now it features:
+ about 20 frames on a 80486 DX/2 with 80 MHz and a window size of 317x145
pixels (without lightsources)
+ independent and intersecting planes with four vertices
+ planesizes up to 2000x2000
+ bitmaps up to 256x128 pixels
+ transparent walls, transparent pixels
+ moving objects, walls and floors, controllable by an
input-textfile
+ bitmap-animations on planes
+ polygon-monsters: it runs, but is still too slow
+ camera can look in EVERY direction and zoom
+ "Vertigo"-effect
+ smooth sideward movement when walking against a wall
+ stepping on specific planes can initiate animations,
movements etc.
+ you can walk over and under bridges
+ non-horizontal floor-planes
+ non-vertical walls
+ you can give the characters created smooth movement
with a movement editor + every character can get 16 groups of vertices
(like channels) that can be modified with a specific matrix each frame
(e.g. left leg, right leg, hips, left arm, right arm, head, and so on as
you like!)
AND since the latest upload:
- point lightsources!
- I couldn´t wait to upload
this new version, so it only features one source that moves along a line.
After it stops you can move it around with the keys <g,h,j,t,z,u>
negative aspects:
- half a frame slower in protected mode
- very unhandy 3D-Editor, very complex and buggy
- buggy polygon-character editor
- too slow with polygon-figures
- sometimes the version with the
point-light-sources crashes...
- light-source routines are not
so fast till now
The engine is designed to handle a multiplayer dungeon
game with not so much elements of shooting and get shot, but to create
a chilling atmosphere. Last night I added point-lightsources and was astonished
about the mood it suddenly created:
Dark
tunnels that might hide mighty foes or rich treasures disappeared into
the darkness and only a small surrounding was lit.
Although the routines slow down the engine very much,
I can imagine a lot of things to optimize, so that a small number of lightsources
(~5) could probably be used for one plane at once. Of course over a whole
labyrinth there could be much more. Currently I am also rewriting the polygon-routines
for the player-character and monsters: It should work with an affine mapper,
only triangles and a simple combination of distance and flat-shading. I
hope that it will run fast enough.
When I wandered through the twilight in the tunnels I also imagined appropriate sounds to be played. Some time ago I added an easy script-language that handles all actions of the objects in the game. For example if you walk on a plane the moving of an object could be initiated (also delayed) or if sound-routines are implemented, different songs could be played, doors could shut with a bang or torches go suddenly out.
I hope that all these features add to a unique atmosphere of the game. Since I think my engine can never run faster than common 3d shooters I want to specialize more on the gameplay and mood, which I think is too often neglected. By the way, the whole game should be designed more like an role-playing game like the old Ultima Underworld. Maybe also with a parser and stuff like that.
I hope that when my game is finished, it is not too old
in comparison to other games...
For
the ones who are interested in it:
* I use 16-bit Z-Buffering
* vertical scanline-algorithm
* texture-routine can handle clipped polygons with up
to five vertices
* most parts of the clipping-algorithm are done in 2d
* Polygons on a polygon-character are NOT perspectively
correct calculated (who cares?!)
* no fpu used within the whole polygon-routine
* nevertheless close to subpixel
and subtexel accuracy.
* point-lightsources are interpolated
every 16 pixel
More pictures from the new engine with lightsources
So far this demo does not show polygon-figures, because
I am working on an affine mapper for these planes. Also this labyrinth
has no moving objects. I did not have time to convert an old labyrinth
that showed all these features, but it will surely with the upload of the
next version. I am sorry for that. But since the last version the speed
of the engine was more than doubled (larger window and higher frame rate).
New EXE-file (New42) for point-lightsources (9-29-97)
This is only the new EXE file. You need to have downloaded the engine-files
from above before. Just copy the EXE in the same directory.
Keep in mind: This version crashes a lot. So
don´t start it with other files opened on you machine.
I am in no way responsible to anything that might
be the result of starting th demo!
After the program has started, it takes a few
seconds (depending on you machine) to calculate a light-table. Don´t
get nervous. You can usually take an extended look at the labyrinth before
an error occurs. This version should only give you a first impression.
I hope that these bugs will be fixed soon.
This demo shows three lightsources,
one them moving.
Please let me know if something is wrong with the files (missing, cut or anythig)
Der Algorithmus der Engine (lang & deutsch)...
A small tmap-demo-program in BP 7.0 (source only).