Void Engine Interlude

For the last 9 months or so, I have been mostly working on the Void Engine posts, and as I am about to embark on writing the editor, I thought it might be nice to have a little recap of where we are with what the engine can currently do.

Up to now, it has been mostly me laying down the framework for the engine, base classes, interfaces and utilities for the engine to be able to do what it does. Let's have a quick glance over the posts that have got us to the point we are at now, about to create the editor.

Tutorial 1

This was really an introduction to how I am laying out the solution, a few programming basics and introduces the Transform class that is used to hold all objects, position, scale and rotation data.

Check it out here.

Tutorial 2

This post was all about serialization of objects, not really needed in the engine at this point, but as I knew I wanted to have loadable scenes and a scene manager, I felt it was better to get this stuff in early and be aware of it.

Check it out here.

Tutorial 3

This post looked at the asset manager. Having an asset manager the intrinsic ContentManager, and indeed, enable us to have more than one ContentManager means we can also use it to build content at runtime too, perlin noise or alpha maps for example.

Check it out here.

Tutorial 4

In this post we looked at the input manager and game services in general and the base classes we will use to create them going forward. We covered keyboard, mouse, game pad, touch and accelerometer input.

Screen shot shows mouse input, the blue square stays under the mouse and when clicked turns yellow.

Check it out here.

Tutorial 5 

In this post we looked at creating custom pipelien importers. This enabled us to have a uniform way of rendering mesh's as well as import skinned mesh data.

Check it out here.

Tutorial 6 

We really start to get into some nitty gritty stuff here, showing how we can render with multiple cameras, have those cameras only render certain objects. We cover the base class for a lot of the objects too, BaseModelObject, BaseGameComponent etc. We also cover the creation of Primitives at runtime, cubes, quads, planes, cylinders, sphere, capsules and many more.

Tutorial 7

We now move to 2D rendering, sprites, text, and even animated sprited and we cover a key frame sprite animation system here too. The editor for this will form part of the Void Engine Editor we are writing next.

Check it out here.

Tutorial 8

In this post we look at creating an Audio Manager, managing audio volume for music, SFX, 3D sound as well as a master volume level. Using the audio manger we can call audio assets using a meaningful name.

Check it out here.

Tutorial 9

This post covers C# scripting and the Roslyn scripting engine we have in the VoidEngine now, along with a Coroutines system that works similar to that used in the Unity3D engine.

Check it out here.

Tutorial 10

Here we create a BaseGame class. In this class we can now bring together all the above posts under one managed game class. I traditional XNA/MonoGame you would simply now have your Game class derive from the VoidEngine BaseGame class and have all the lovely functionality built in to your game.

Check it out here.

We now, at this point have a functional scene manager in the engine. 

The scene above, along with all the cameras, the C# scripts, the post processing (bottom left camera is black & white) the avatar controllers, are all loaded in from JSON files into the scene.

Check it out here.

The next post is going to be on the base UI I have started to build for the editor, if you have not spotted them already I post on my twitter account from time to time @NemoKrad

I am hoping to, on average try and produce at least one post each month, I have slowed up recently with a change in my work circumstances, and general live shenanigans, but I can't wait to get stuck into writing the editor, creating a deferred lighting engine, writing our first game with the engine!! 

I am so excited by it all, and the fact that you guys are helping support or even just follow what I am doing just means the world to me, thanks for reading.


Become a patron to

Unlock 17 exclusive posts
Be part of the community
Connect via private message