Wednesday, January 27, 2010

Direct 3D11 Engine

The last few weeks I've been playing with the thought of starting a new rendering engine based on D3D11 and the SlimDX library. I even started porting some parts of my XNA based engine: TXnaGE!

So how does that fit into the context of Borg? Well a game engine or (rendering engine) doesn't quite fit in the Borg philosophy: 1. Borg is completely client agnostic, 2. Borg is all about the server side  framework and simple client side connection oriented helper functions. But ... the main problem is that people stumbling upon Borg want to see something. You might be surprised that even in the field of software engineering "Seeing is believing" still holds true but that's the way it is.

Now, a few "seeing" related problems arise immediately. First you can't exactly show or see a server framework unless you are ready to download it and dig through the source. Next, Borg is inherently tied to game development and games are all about seeing stuff getting rendered, in such a context not having a visual representation is a pretty bad thing. At last but not least, the developers evaluating Borg must have a quick start path where they can relatively easy and fast get something done - that "something" is again a rendered scene representing a part of the virtual Borg World.

While the Borg Server project is still client agnostic we need to provide some sort support (at least through tutorials) to game developers. Therefore my orientation towards the rendering area. Actually on the Borg Development roadmap is even a fully blown MMORPG game, so we need a game engine anyway.

Why not pick up something already implemented, an working open source engine? It might sound strange but there are not so many out there. Most of them are either not really open source and the licensing limitation are unacceptable. A great deal of them are without officially supported .NET language bindings. The rest of them (well actually only three engines that could possibly qualify) are either not actively developed or have IMHO design and implementation issues. I know that the folks participating in those engines wouldn't agree with me , but the reader should note that I am personally active in the field of game engine development for at least a decade and therefore at least to some degree qualified for such conclusions. of course I might be completely wrong but that was just my personal opinion.

Nevertheless I decided to start working on a new D3D11 engine and once it's working do some initial tutorials and examples for Borg. If this is going to be the official Borg client engine will decide the Borg community.

In my next blog I will share a few problems with D3D11 development so stay tuned...

No comments:

Post a Comment