Main page

Features

GNet is the main platform, G3d is the 3D part of the platform.

Languages
The engine is fully written in C#.
The exporters plugins are written in C/C++.
The scripts are in C#.

Environment
The VS2005 is used to compile all sources.
To run the SDK samples, you should have installed the Microsoft .Net Framework 2.0 redist or SDK package and the DirectX 9 redist or SDK package.
Go to Microsoft download site to get those packages.

Rendering
The rendering engine is based on DirectX 9. The SDK release used by GNet is the update of August 2006.

The engine is based on nodes like mesh node, light node, camera node. You can develop your own specific node to render 1 special mesh, you access directly to the low-level.
Render/Sampler/Texture states are embedded in order to simplify their usage. You simply push/pop material and shaders properties to apply/restore states.
The renderer uses priorities to sort/batch/render meshes with same "context", like this it improves states changes on your graphics device.
You can define your own rendering multi-pass algorithm by asking to engine to perform supplementary passes.
The BSP file format is supported and Quake 3 maps are rendered with some limitations, this is a specific node.

Characters
You can export character's mesh with their bones.
Use either the modifier Skin or Character Studio Physique into Max to setup/rig your character's bones.
Use the embedded bones capabilities of Maya to export your skeleton and animations.

Animations
Animations are based on keyframes. You can export animations by sampling keys and they are automatically played by the engine.
For instance keyframe controllers are not yet implemented.

Portals engine
I'm currently working on export and render of scenes composed of clusters and portals in order to optimize rendering of closed environments but also to combine open and closed environments.

Terrain rendering
Not yet implemented, it should use L3DT terrain generator.

Shaders
The basic material exported is composed of diffuse, specular, emissive colors with up to 4 textures and rendered with the fixed-function-pipeline.
But with latest graphic cards, it is more interesting to create your own vertex and/or pixel shaders to perform lighting calculations and other special effects.
With the GNet platform, you simply write your shader (for example into FX Composer) in FX, HLSL or directly in ASM. You have just to bind this shader to the mesh's material into the modeler.
If you have specific entry parameters, then you simply write the dedicated plugin shader in C# to get datas from the G3D engine.

Scripting/Plugins
You can extend the engine either directly into the source code, but you can also create scripts in C# and bind them to meshes. Plugins are automatically loaded when scene is loaded.

Sounds/Musics
Sounds/Musics managed through 1 C# wrapper above the excellent Fmod library.

For instance, you can use wav, mp3, ... sounds but also the old mod, s3m, xm, mid modules files.

Physic engine
Physic is managed through 1 C# wrapper above the great Tokamak library.

You simply export mesh with its physic's body (rigid or animated). Box, sphere and cylinders are supported. Generic hull mesh is not yet implemented.

Files
Files are found through callbacks. So you can define and manage your own repository for meshes, plugins, shaders, textures, ...
Zip files are managed through the SharpZipLib C# wrapper.


Exporters
The G3D file format is used to export scenes, lights, animations, bones, materials, shaders, physics.
The Maya exporter is currently compiled for Maya 6.
The Max exporter is currently compiled for Max 7.
The 2 below exporters are strictly identical you can export all graphics parts on either one or the other.
The Blender exporter is not yet implemented.

Snapshots


The simple GNet front-end with 1 sample of watch exported from 3DS Max and attaching 1 scripted plugin to control arrows.

 


2 frames of 1 sample using physics capabilities of engine (helped by the Tokamak library). Each component is bunded by its own physic body geometry which is interacting (Gravity force) with the ground's rigid bogy.

 


Just 1 another mesh to see the bounding box and ball used to perform fast culling.

 


A skinned mesh exported with its bone, animated and displayed.

 


A sphere mapped with 1 material composed of 2 textures (diffuse + normal map), 1 shader is supplied (vertex + pixel shader created in HLSL), the whole thing is exported. In this example, the normal map was created with 2 versions of the sphere : 1 low-resolution sphere and 1 high-resolution with bump details. The HLSL shader was created with FX Composer and directly used into the rendering engine.

 


A last sample with 1 very pleasant house with 1 skybox.

 


Here you can see 1 of Quake 3 map directly loaded by the engine and displayed with the BSP culling method. Hm, 172 fps on my old GeForce 4 Ti 4200 in a window, not so bad.

And You ?

As you can see I'm not a good 3D-artist, so if you are interested by creating some samples with available export plugins, let's do it !
If you are a good game developer then maybe you can help me to do some stuff, like the particles, the BSP portals engine, the shaders from .FX files, the Blender exporter in Python, the terrain rendering node.
And if you want to create 1 full game with the GNet engine then I will try to help you to start and improve some parts of the platform.

CONTACT ME

Download

GNetSDK.exe

Ok ... you want to try it ?
So let's go, the GNet Software Development Kit is HERE.
Download it, install it, look at some G3D samples, maybe you will go further and look at docs, plugins/samples source code.

Requirements

The GNet SDK is running on Windows XP platform with :
- MS DirectX 9 SDK with Managed DX assemblies
- MS .Net Framework 2.0

Powered with
EasyPHP, Dreamweaver and Maya