The Sunburn Engine
I really enjoy all aspects of game development. From building the tools to designing the story, each aspect of the process plays an important role in the final product. When I used to develop mainly in Flash, game engines were primarily focused on managing assets, levels, and 2d physics. Now, however, it’s more alluring to add in that 3rd dimension.
It’s relatively straight-forward in 2d. However, when I made the move to XNA and 3d, that extra axis made games a whole heckuvalot more complex. The first aspect I focused on was developing a lighting/shadows system. As I researched and explored tutorials, demos, and sample code, I realized one major thing: I am no good at math. And I’m not talking 1+1=5. I’m talking about vector math and trig. Not to mention the theories behind lighting, reflections, and even physics.
While I really wanted to learn the techniques, they continually moved higher and higher above my head. I then started looking at game engines. With a very small budget (leaving Unity out for now), I found that Synapse Gaming’s Sunburn Engine fit all my needs and is actually quite powerful!
While their site tells you volumes about the capabilities of the system, I’ll just skim over some important features. First and foremost, each license requires you to display the Sunburn splash screen, so if you aren’t cool with that, this engine is not for you, though most major game engines require something similar anyways. Secondly, the engine works out-of-the-box on Windows, XBox, and Windows Phone 7. It also supports both 3d and 2d games with lighting available for both.
Sunburn supports both forward and deferred rendering and it is extremely easy to swap the two. Just change one line of code and change the content importer for one item. Lightmapping is also available to help ease the run-time computations. It also supports transparent objects and you can write custom shaders to support reflection and refraction. The real-time shadows can be modified to higher quality levels as well.
Out of the box, the engine has a very simple editor that can be accessed from the windows build of your game. The editor allows you to import models, edit your scene, manage simple physics, edit terrain, edit materials, edit lighting, and edit some special post-processing for HDR and bloom. With a bit of tweaking, it is possible to edit multiple scenes if your game supports multiple levels.
One of my favorite features of the engine is its ability to get out of your way. Using XNA and C#, the rendering and object management is handled by Sunburn, but it’s all done separately. This means I can code classes and hierarchies however I want and then hand everything off to the engine for rendering. They don’t force you to use their custom APIs for everything, just for the rendering processes. On top of that, they do also have a system for creating custom components which can be attached to your models and objects at run-time and can execute their own specific code.
IndieFreaks Game Framework
This framework works in tandem with Sunburn to give you access to more features. This includes input management, hardware instancing, additional cameras, a sprite system, GUI and menu system, Mercury Particle Engine, and a few additional post-processing effects. It also includes a more open system for physics. Logic systems give you access to abstract networking support for XBox live, local sessions, and singleplayer sessions, as well as steering behaviors, finite state machines, and goal driven AI.
I haven’t had much opportunity to truly play with all the features of the engine yet, but I will certainly be covering it more in the near future! It seems like a very powerful rendering system that allows developers to keep the standards of C# and XNA while making use of the additional functionality Sunburn offers. The editor, while not as fully featured as most major game engine editors, still gives you plenty of control over your levels. Certainly check this out if you are working in XNA and don’t have a large budget!