Friday 7 September 2007

Destinatum Engine Alpha 1.0 First official release

Ok its been a long time since my last update on this as ive been very busy pretty much re-writing the core. i have now almost fully integrated a freeware physics engine called Newton which can be found at http://newtondynamics.com/ it has been rated as one of the best physics engines on the market, and as a free piece of middleware i think this excellent.




VIDEOS!!!!





So in the 2 months or so since my last update all my character movement is completely controled by force and torque as opposed to just setting the position every frame, this allows for smoother movement, is much more accurate, and allows me to pass data to the physics engine to control all sorts of things such as projectiles, gravity, pretty much any physics action which has a real world representation it will be possible to do in this engine (although some will require me to code them into it, but the foundation has been layed).

In adition to this, i have implemented a materials system through the newton engine, which basically allows me to assign a material to an object with specific properties like elasticity, softness, and friction. with a multitude of customisable features allowing for different objects of different materials to react more accurately with the physical world (details of all this can be found in the documentation)

aside from these changes in order to make the physics system as accurate as possible the entire engines scale has had to be completely rewritten to be accurate to real world values i.e 1 unit = 1 meter and 1 unit of mass = 1 kilogram...... therefore some of the artwork previously used in the engine can no longer be used and has been replaced by some placeholders for now, just until my artists can magic me up some art..... looks abit lame with a 2 meter high block in place of an animated character, but the support for it is still there so not all is lost.

Now that the functionality of this is almost as i want it, it is time to work on getting the graphics looking sweet, need to add some decent lighting, shadowing, texturing, pixel / vertex shading, so hopefully some good things to happen in the comming months.


It is availible for download here: Destinatum Engine (right click and save as)

the bug tracking data base is located here:Mantis please sign up and submit any bugs / feature requests you may find /have







Controls

The engines basic controls use Direct Input and are as follows

W - Move character forward
A - Strafe left
S - Move character backwards
D - Strafe right

Left Arrow Key - Rotate left
Right Arrow Key - Rotate right

F2 - Toggle fullscreen
F3 - Change controls

Z - Toggle debug info

Left mouse button click - Selects an object (for use when viewing debug info)

It is possible to congiure the controls to whatever you want from the menu, it also supports any controller device setup correctly within windows

if the controls dont seem to be working, delete all of the files in this directory, and then load the engine up again, everything should be working fine

"Program Files\Common Files\DirectX\DirectInput\User Maps"


Lighting

In the "data" folder is a list of lights to be referenced by the engine, list in here all lights to be loaded at startup make sure the filename follows the current format

"Lights/point.dat"

This MUST point to a valid dat file detailing a light

In each folder in the lights folder is a dat file containing the lights properties,i have included 3 templates for 3 different types of lights, all of the values can be chopped and change, it will involve alot of tweaking to get right

only is support for 8 lights at the moment, can add as many as you want, but only the first 8 will be displayed

eventually it will be possible to switch between these and have multiple light sources



Textures

ALL textures must go in the "Textures" folder and must be in the .bmp format


Audio

ALL Audio must go in the "Audio" directory and is currently only supported in the .wav format

please note that audio is currently supported by the engine, but its functionality is temporarily disabled until i have time to make this into a propper feature and can link it in to things like material collisions, footsteps, shots and story sequences, this page is just a placeholder for now.


Adding a mesh


in the "data" folder is a list of entity's to be referenced by the engine in the file "Entitys.dat", list in here all objects to be loaded at startup make sure the filename follows the current format

"media/box2m/box2m.dat = Skinned" for entitys which are animated using a mesh hierarchy created using something such as biped

or

"media/floor/floor.dat = Static" for non-player controlled entity's which although may be textured, have no animations nor are user controlled

This MUST point to a valid dat file detailing a mesh

The very first mesh in the list will always be the players character object.< /P >

in each folder in the media folder is a dat file containing the objects properties

All objects should be created using the scale 1 Unit = 1 Meter

Currently the only supported mesh type is Direct X's .X format, these files can be created in a wide variety of 3D modelling programs including 3D studio Max and Maya.

If using 3D studio max there is an exporter availible called "Panda" and is availible from the following page
http://www.andytather.co.uk/Panda/directxmax.aspx

There is another application availible by a company called "Right Hemisphere" called "Deep Exploration". this is a very usefull application that allows importing / editing / exporting between a variety of different modelling packages and the .X file format. it seems to work better than "Panda" for some aspects.



Mesh Properties

The meshes dat files take on the following format.

xPos = 0.0f
yPos = 250.0f
zPos = 20.0f
xScl = 1.0f
yScl = 1.0f
zScl = 1.0f
xRot = 0.0f
yRot = 0.0f
zRot = 0.0f
collisionType = Box
boundOffsetX = 0
boundOffsetY = 1
boundOffsetZ = 0
boundOffsetRotX = 0
boundOffsetRotY = 0
boundOffsetRotZ = 0
boundX = 1
boundY = 2
boundZ = 1
xFilePath = ./media/box2m/box2m2.X
static = false
pinUpVector = true
Mass = 1.0
Material = Player
NULL


For more info on these properties check the included documentation, is far too much text and graphic to include in this blog



No comments: