I am currently involved in a new project at DePaul University – the Azul game engine.
The goal of the project is to create a game engine that is accessible as the best possible learning tool for a budding game programmer. We have only had a couple basic meetings, but here is the basic idea. A game engine has many different moving parts – let’s generalize things and say it has an Input system, a File system, a Memory system, and so on.
Our goal is to make a 100% open source project that is built in terms of separate modules that can easily be pulled out. So if you’re interested in seeing how an Input system may look, you could come to our site and pull out the Input system by itself. Each individual system would have the library as it is used in Azul, as well as a sample Test solution that will be full of unit tests, so the person could see how those systems are tested.
I think this is a fascinating idea. My game engine course at DePaul has already won me over on Test-Driven Development this quarter, and Azul is helping me even more. As it stands, we are at such an early stage that much of my time is being spent thinking about the game architecture and how we want to structure things in general. I am busy reading up on several books on game engine design (and software architecture in general) and am finding the entire experience extremely educational. It gives me a chance to get involved in making some very big decisions about how to build a project, with the watchful way of Professor Ed Keenan giving us all guidance.
We are probably several months away from having something to show off, but that definitely doesn’t mean that no work is happening. On the contrary, there is a TON of work to be done. We have a game in mind as our goal, which will help drive us in a particular direction (and gives us a great end goal too). But as work happens, I will post here to update.
Needless to say, this also means my older game engines that I have written about here is moot for the time being. This is too good an opportunity to pass up.