Monthly Archives: March 2013
Now finally I have some simple shapes like cube / plane on the screen. Math related classes has been done right now I am using SimpleMath underneath which will be replaced by SIMD math later on. Plan is to replace it with DirectXMath and later on with my own SIMD math . I want to get things running as soon as possible and refine / optimize things along the way after getting some initial things running.
This is taking longer than expected because I kind of keep expanding the goals with this newer version of the engine. I will post more details on this soon on a dedicated page for new version the engine.
Its been almost 2 weeks now that I have started with Direct3D11. So far it seems much better and cleaner than DirectX9. I am sticking only to Direct3D SDK inside Windows 8 SDK only and not including anything from DirectX SDK to comply to Windows 8 Store requirements. This means I can’t use those very handy D3DX utility classes and functions anymore and have to write everything from scratch. That includes many things like D3DXMaths texture loader supporting almost all image types, mesh file parser (x files, sdkmesh, etc. ). I am thinking to use DirectXTK for texture loading and even simplemath for now which I can replace later on with SIMD based directxmath.
So far I have Device initialization , enumeration , settings , etc. have been done. This time instead of writing whole thing myself I took a couple of files from the DXUT library inside old DirectX SDK and ported it for only Windows 8 SDK. Another benefit that I got is that now I also have DXUTGUI library ported so I now have some basic GUI also in new engine. It may not be the ideal GUI solution but for debugging and tech demos it’s an easy way to have things like combo box, sliders , etc. Again this porting made possible only by new cleaner Direct3D11 API. I tried same thing during DX9 time but after spending 10 days or so with no good results I gave up ,because so much of messy code and so much of checking that needs to be done in DX9.
I am writing the new renderer so it will take some time to get all things working again but I am focusing on getting render up and running fires as soon as possible.
I am done with this current version of the engine. I am thinking to go for next version (based on DirectX 11) from scratch but of course I will be using some of the code base from current version (resource loading, scene mgt, oct tree, etc) but still it will mostly be a completely new engine from ground up and new architecture supporting multi threading. Also I will start integrating some 3rd party libraries to make the engine ready as soon as possible for a current gen game. Fmod is already integrated. Next will be PhysX or Havok for physics and maybe some 3rd party library for importing 3d stuff from multiple file formats (fbx, collada, etc), maybe some network library, etc. I may/mayn’t replace these things later as I get time for these parts of the engine. But for now my main focus will be on graphics and rendering techniques.