ePlaice / For the Best Software on the Net

Mainly Free and Open Source Software

Graphics Navigation

Axiom Game Engine | Irrlicht Engine | OpenGL Tao Framework | Bezier Curves | Bifurcation Diagram | Lorenz Attractor |

Valid XHTML 1.1

Latest news

30 Sep 2009: Irrlicht Engine version 1.6 has been released.

Links:

Irrlicht Engine

Nehe Example 22

I was looking for a Games Engine that would take out some of the hard work involved in starting with either OpenGL or DirectX. I have found the Nehe tutorials to be an excellent place to start if you are new to computer Games. Whilst some may dismiss playing computer games as a bit of a waste of time there is also a very serious side to these developments; they make very heavy use of graphics and lead the way in requirements for computing power which drive the computer technology forward. These techniques then spin over into mainstream computing so that we all benefit from advances made in gaming with I guess the ultimate aim of having a desktop that simulates as closely as possible what happens in the real physical world. Examples of this can be seen where pages in books are made to turn just like real book pages as opposed to scrolling down the computer screen. If you are running on a Microsoft Platform and have an interest in Graphics then it is natural to see what DirectX has to offer and compare it with say OpenGL. I tried desperately to stay with C# and SharpDevelop but after a lot of pain I found myself being drawn to Irrlicht which involves C++ and Visual Studio Express. I guess my main reasons for looking at Irrlicht were the need for an integrated approach without myriads of 3rd party libraries which must inevitably lead to instability problems. I was also interested in the seemingly clean cut approach to the development - I have always been in favour of a small core team for development. I also wanted an Engine that performed well and Irrlicht seems to fit the bill.

When I started looking at DirectX I was immediately struck by how few tutorials and examples were available using C# and DirectX. Many of the examples just didn't work properly and it almost seemed like a combination that had attracted some interest a few years ago and then died out. Maybe it's because Microsoft have released XNA, but at the moment I am not even going to look at this option. So, already with DirectX I feel quite confused as to whether I should worry about DirectX because of XNA, also I understand DirectX 10 is only available on Vista and not XP. There is also a third party package called SlimDX - again I don't want to go there at the moment.

Installing DirectX

When I received my Dell computer with XP installed, I was under the impression that DirectX was already installed. I gathered this by using PC Wizard, however when I came to run a few sample DirectX programs or even tried a compilation using SharpDevelop, I got an error (fairly meaningless message which I can't remember). So the next step was to re-install using DirectX version 9.0c March edition. This installed perfectly, but there was no mention of this in the installed program list on Control Panel - is it because it can't be uninstalled or are Microsoft just being coy? So having installed I was pleased to see that DirectX programs were now running and compiles in SharpDevelop were working.

First Impressions

I wanted to have a look at some programs written in C# and using DirectX, so I eventually found CodeSampler. There were only a few examples in C#, but they all compiled and ran first time, which is a lot more than can be said for most of the other sites. Unfortunately, I could not readily find a good set of tutorials as exists on the Nehe site for OpenGL.

  • Due to lack of examples I tried converting one of the Nehe tutorials to DirectX. Even though this was not every difficult I found it fairly complex and rather time consuming
  • I found a Direct3D Control which worked with Forms Designer some time ago; this would have given me the equivalent of SimpleOpenGLControl. However, it was not currently being developed and seemed to be a blind alley.
  • This meant that Forms had to be constructed in Code. Since WPF will someday replace Windows Forms, does this matter?

In summary, I wanted something that avoided the technicalities and allowed me to understand what was happening in the graphics application. Just as I was about to give up on DirectX, I came across a neat Games Engine called Brume. This was more like it and so I progressed a bit further with Brume - mainly because it seemed an ideal candidate for learning about Games Engines using C#.

Why Irrlicht?

I decided to look at some of the Games Engines on offer starting off with the criteria of C# and DirectX support, I quickly came down to a shortlist of Axiom and Brume. Axiom ticked all the right boxes but it seemed like quite a steep learning curve. I then installed Brume tried some of the tutorials and demos. At the end of this I was favourably impressed, but quickly came to the conclusion that this was a dead product. I then looked at Axiom and managed to make a bit of headway so that I even set up a webpage documenting some of my experiences. However, I became exasperated by the swerves in direction of the project and decided this wasn't for me; I needed a stable base. So this is when I bit the bullet and started looking seriously at Irrlicht - I was lucky in that I have some background in C++ but if you are raised on C# it will be a bit of culture shock. So after spending some time converting code from C++ to C# I found myself back in the C++ fold, mainly because I was disatisfied with the other offerings. Why not Ogre then (this is written in C++) - I guess I was put off a little bit by the Axiom C# clone and wanted to try something different.

You Need Microsoft Visual C++ 2008 Express Edition

The first item you need is a C++ compiler and I chose the free Express version. OK you do have to register with Microsoft bt this proved to be a fairly painless experience. I was hoping that SharpDevelop might add a C++ compile but this does not look like it will ever be the case. I had a look at some other open source alternatives but did not go very far, as I found the Microsoft express version met all my needs and exceeded my expectations. I might even be tempted to try the C# express version as long as it's free. Compilations worked first time using the solution files in the Irrlicht download pacakage. Thanks, Microsoft a really nice compilation IDE.