Ever wondered what it would be like to write your own 3D game engine? Nikolaus Gebhardt did just that with the open source Irrlicht 3D engine, and then again with the Coppercube 3D app and game editor. In this Q&A, Nikolaus provides some insights into the development of these projects.
What was the inspiration for the development of Irrlicht?
I wanted to write a 3D game, but I quickly learned that the options for choosing a 3D engine weren't that great. Back in 2003, you had the choice between "hard to use," "expensive," "out-dated" and "closed source." Or mostly a combination of them. So I decided to write my own 3D engine, with the intention to make it easy to use, free and open source.
What are some of the biggest challenges creating a 3D engine?
Writing a 3D engine is a quite complicated task. Not because the technology is difficult - that's manageable - but because the amount of needed features is pretty high. Take a look at the list of features accumulated in a modern, high level 3D engine today. Or its API documentation. It is a incredible long list of features and technologoy, all put into one piece of software. You'll find everything from materials, particles, user interface, input mangement, sound output, embedded programming languages, cross compilers, shaders, offline light rendering, physics simulation, character animation, different platform and operating system support, terrain and indoor rendering, video drawing, virtual reality device support, and more. The sheer amount of all this is pretty overwhelming.
What has your experience been like with an open source project like Irrlicht?
It was a very positive experience. Irrlicht was one of the more popular 3D engines back then and had an incredible and friendly community. Which is partly still true today, by the way. The software project which I had started originally more than 10 years ago has grown into a big beast, and although I personally don't really work very much on it myself today, the community and the remaining Irrlicht Team still does. Irrlicht has been used in a lot of interesting software, including for example a visualzation project for the LHC, robot simulators, architecuture programs, but of course lots and lots of games, including for example one of the most popular Minecraft clones out there. And lastly, it is also the core of my own commercial 3D app, CopperCube, a program for creating 3D games without programming.
How do you see engines like Irrlicht and Coppercube positioned against engines like Unity and Unreal?
A lot of people ask me how our small 3D editor 'CopperCube' - which is using Irrlicht on some of its supported platforms as base - survives against giants like Unity or Unreal. I honestly don't really know because I didn't actually use Unity and Unreal myself. But I assume CopperCube has probably a bit different target audience: You can create games with CopperCube pretty easily, with just clicking around. The system is simple, and users don't get overwhelmed by too many features, or a too complicated editor. Maybe that's the reason. People also told me numerous times that our WebGL support is still the best around. It could be also this. But at least CopperCube is still used quite a lot and gets licensed by enough people so that we can continue to develop it further and push out free updates. So basically, I don't see Unity or Unreal as competition.
What are some of your favorite projects, books, tutorials or blog posts on Irrlicht and Coppercube?
I can recommend to directly read the documentation which comes with both, Irrlicht and CopperCube. Irrlicht's tutorials are really easy to understand, and you don't need to read a book in order to use it. That was one of its original goals, when I started writing it. So if you want to visit a website or get more information, see the official Irrlicht forum, or take a look into its documentation. You get everything directly at http://irrlicht.sourceforge.net/ , for free. Same for CopperCube, its website and community is here: http://www.ambiera.com/coppercube/.