🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

About an Engine

posted in noaktree leaves
Published January 14, 2005
Advertisement
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 LightsDEShaderLight			DE2NALight;	// Second Nearest Active LightsDEShaderAmbientLight		DEAmbient;	float4x4			DEWorldMatrix;float4x4			DEWorldViewProjMatrix;


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

Neil
Previous Entry Introduction
Next Entry The Life Aquatic
0 likes 1 comments

Comments

Gaiiden
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.
January 16, 2005 07:42 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement