GNet is the main platform,
G3d is the 3D part of the platform.
The engine is fully written in C#.
The exporters plugins are written in C/C++.
The scripts are in C#.
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.
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
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.
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 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.
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.
Not yet implemented, it should use L3DT terrain generator.
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
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.
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 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 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 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.
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.
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
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
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.
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.
The GNet SDK is running on Windows XP platform
- MS DirectX 9 SDK with Managed DX assemblies
- MS .Net Framework 2.0