• Advertisement
Sign in to follow this  
  • entries
    149
  • comments
    510
  • views
    94849

About an Engine

Sign in to follow this  

145 views

I have modified my journal template to display three links in the header. The first entitled, "DE Progress Page" takes you to a page displaying the current progress of my engine (The Depth Engine). The second link takes you to a screenshot page. The third is a link to my games page where you can download some of my games.

The Depth Engine is my latest project. I have been full time on it since the end of November, 2004. Previous to that I had many different parts of working engine code scattered about the place with which I used to make games. The Depth Engine is an attempt to standardize my code palette, develop a stable tool chain, decrease dependence on DirectX components, and hopefully learn more along the way (which I already have).

I plan to release DE to the public as a set of static libraries when Alpha is achieved. I'll then set up an alpha testing website using PHP and MySQL for bug tracking, etc. That's the plan.

DE uses C++ classes to provide an interface for the developer. To see a list of the classes and a brief description of them you should check out the DE Progress Page. A series of tools are being created for this engine which will allow, for example, drag and drop material (basic and shader) assignment of mesh and sub meshes. Exporters for 3DS Max and Milkshape have been created for DE's animated and static models file formats. Also a physics editor will help assign rigid body physics objects to models, create bounding types, as well as create ropes and cloth for easy import into the engine classes. The rendering engine currently only uses DirectX 9 however care has been made, during development, to support OpenGL at a later time. This includes doing all math calculations using a platform independent library.

The sound and input are based on DirectSound and DirectInput. I may switch the sound to a platform independent library later (any suggestions?). I have no plans to add network support in the alpha version.

Most recently I have been working on the DEFXShader class. The screenshot on my progress page shows a static model with a NPR shader applied. The engine automatically sends the two nearest lights and other stuff to the shader. You can see below how the HLSL FX shader receives the lights, etc.


// DELighting structs
// ************************************************************
struct sDEShaderLight
{
int Type;
bool Active;
bool LightingActive;
float4 Position;
float4 Diffuse;
float4 Specular;
float4 Direction;
float Attenuation;
float Range;
float Theta;
float Phi;
float Falloff;
};
struct sDEShaderAmbientLight
{
bool Active;
float4 Color;
};

// Variables
// ************************************************************
// Sent by user
texture ToonTexture;

// Sent by parent DEFXShader Object
sDEShaderLight DE1NALight; // Nearest Active Light
sDEShaderLight DE2NALight; // Second Nearest Active Light
sDEShaderAmbientLight DEAmbient;
float4x4 DEWorldMatrix;
float4x4 DEWorldViewProjMatrix;




Please feel free to make comments or suggestions about the DE.

Neil
Sign in to follow this  


1 Comment


Recommended Comments

FMOD is an awesome library - but it requires a license to use commercially. An expensive license. Worth checking out anyways tho, cause it's just a great library.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement